도서 개발 공부/정보 처리 기사 필기

4. 프로그래밍 언어 활용 - 응용 SW 기초 기술 활용(운영체제)

캐티시 2022. 4. 13. 18:11

1. 운영체제 (OS; Operating System)

: 컴퓨터 시스템의 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 편리하게 사용할 수 있도록 환경을 제공하는 프로그램들의 모임

컴퓨터 시스템 내 운영체제의 위치

  • 시스템 소프트웨어의 일종
  • 컴퓨터 사용자와 하드웨어 간의 인터페이스

 

- 운영체제의 성능 평가 기준

  • 처리 능력 (Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간 (Turnaround Time) : 시스템에 작업을 의뢰하고부터 처리가 완료될 때까지의 시간
  • 사용 가능도 (Availability) : 시스템을 사용하고자 할 때 즉시 사용 가능한 정도
  • 신뢰도 (Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

 

- 운영체제의 주요 기능

  • 자원 관리 
    • 프로세스 관리 : 프로세스의 생성과 제거, 시작과 정지뿐 아니라 프로세스의 스케줄링 및 동기화 관리
    • 기억 장치 관리 : 프로세스에게 메모리 할당 및 회수
    • 주변 장치 관리 : 입출력 장치 스케줄링 및 관리
    • 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리
  • 자원의 스케줄링 기능
  • 사용자와 시스템 간의 인터페이스
  • 각종 하드웨어 및 네트워크 관리 및 제어
  • 데이터 및 자원의 공유 기능
  • 시스템 오류 검사 및 복구
  • 자원 보호 기능
  • 입출력 보조 기능
  • 가상 계산기 기능 : 한 대의 컴퓨터를 가상 운영체제를 이용해 여러 대의 컴퓨터처럼 사용하도록 하는 기능

 

- 운영체제의 종류

  • 단일 작업 처리 시스템 (Single Tasking System) : 하나의 작업이 컴퓨터 시스템을 독점해 사용하는 방식
  • 다중 작업 처리 시스템 (Multi-tasking System): 여러 프로그램을 열어 두고 다양한 작업을 동시에 진행하는 방식

149-150. Windows/UNIX/LINUX/MacOS

1) Windows

: 1990년대 마이크로소프트 사가 개발한 운영체제

 

- Windows의 특징

1. 그래픽 사용자 인터페이스 (GUI; Graphic User Interfrace)

: 키보드로 명령어를 직접 입력하는 CLI(Command Line Interface)방식이 아닌 마우스로 원하는 기능을 선택하여 작업을 수행하는 편리한 방식

 

2. 선점형 멀티태스킹 (Preemptive Multi-tasking)

: 동시에 여러 프로그램을 실행할 때, OS가 각 작업의 이용 시간을 제어하여 작업이 완료되거나 실행 중 문제가 발생하면 해당 작업이 차지하는 자원을 반환해오는 방식

  • 하나의 응용 프로그램이 CPU를 독점하는 것을 방지 -> 시스템 다운 없는 안정적인 작업이 가능

 

3. 플러그 앤 플레이 (PnP; Plug and Play

: 컴퓨터에 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 OS가 자동으로 구성해주는 기능

 

4. OLE (Object Linking and Embedding)

: 한 응용 프로그램에서 만들어진 개체를 다른 응용 프로그램이 자유롭게 연결하거나 삽입하여 공유할 수 있는 기능

 

5. 255자 까지 제공하는 파일명

: VFAT(Virtual File Allocation Table)을 이용해 최대 255자까지의 파일명을 지원

  • 특수문자(\ / : * ? " < > |)를 제외한 모든 문자 및 공백 문자가 가능
  • 한글의 경우 최대 127자까지 지원

 

6. Single-User 시스템

: 한 컴퓨터를 한 사람이 독점하여 사용하는 방식

 

2) UNIX

: 1960년대 AT&T의 벨 연구소, MIT, General Electronic이 공동 개발한 운영체제

- UNIX의 구조

  • 커널 (Kernel) : OS의 가장 핵심적인 부분
    • 컴퓨터가 부팅될 때 주기억장치에 적재되어 상주하면서 실행
    • 하드웨어 보호, 프로그램과 하드웨어 간 인터페이스 등의 기능 담당
  • 쉘 (Shell) : 사용자의 명령어를 인식하여 명령을 수행하는 명령어 해석기
    • 시스템과 사용자 간 인터페이스 담당
    • 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 보조 기억장치에 존재
    • 파이프라인 기능 지원, 입출력 재지정을 퉁해 입력과 출력의 방향 변경이 가능
    • 공용 Shell 또는 직접 만든 Shell을 사용 가능

 

※ UNIX의 프로세스간 통신 방식

  • 시그널 : 초기 UNIX 시스템의 방식, 간단한 메시지를 이용해서 통신
  • 파이프라인 : 한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신
  • 소켓 : 프로세스 사이의 대화를 통한 쌍방향 통신

 

- UNIX의 특징

  • 시분할 시스템을 위해 설계된 대화식 운영체제
  • 소스가 공개된 개방형 운영체제
  • 대부분 C언어로 작성 -> 이식성과 호환성이 높음
  • 크기가 작고 이해하기 쉬움
  • 다중 사용자(Multi-User), 다중 작업(Multi-tasking) 지원
  • 다양한 네트워킹 기능으로 통신망 관리용 운영체제로 적합
  • 트리 구조의 파일 시스템
  • 전문적인 프로그램 개발에 용이
  • 다양한 유틸리티 프로그램 존재

 

3) LINUX

: 1991년 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제

- LINUX의 특징

  • 프로그램 소스 코드가 무료로 공개되어 있음 -> 원하는 기능의 추가 및 재배포가 가능
  • UNIX와 완벽하게 호환
  • 대부분의 특징이 UNIX와 동일

 

4) MacOS

: 1980년대 애플 사가 UNIX를 기반으로 개발한 운영체제

- MacOS의 특징

  • 아이맥, 맥북 등 애플 제품에서만 사용가능한 운영체제
  • 드라이버의 설치 및 제거 과정이 단순하다

 

※ 파일 디스크립터

: 시스템이 파일 관리를 위해 필요로 하는 파일에 대한 정보를 가진 제어 블록 (FCB; File Control Block)

  • 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조를 가짐
  • 보통 보조 기억장치에 저장되어있다가 해당 파일이 open될 때 주기억장치로 옮겨짐
  • 파일 시스템이 관리하며 사용자가 직접 참조할 수 없음