운영체제

컴퓨터 시스템과 운영체제


  • 컴퓨터 시스템의 운영
  1. 컴퓨터 시스템의 자원을 제어 및 관리
  2. 응용 프로그램들의 실행을 도와주는 소프트웨어
  • 사용자 지원
  1. 사용자의 명령을 해석하여 실행
  2. 사용자와 하드웨어 사이의 매개체 역할 수행

CPU의 동작 모드


  • 슈퍼바이저 모드(커널 모드 :: Kernel)
  • 운영체제의 커널이 동작되는 모드
  • 하드웨어를 직접 제어할 수 있는 CPU 명령어 사용 가능
  • 보호 모드(사용자 모드)
  • 응용 프로그램이 동작되는 모드
  • 하드웨어를 직접 제어할 수 있는 CPU 명령어 사용 불가능
  • 시스템 호출 : 응용 프로그램이 운영체제에게 서비스를 요청하는 메커니즘

커널(Kernel)


  • 운영체제의 핵심 요소
  • 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역활

  1. 일체형 커널(monolithic kernel)
  • 운영체제의 모든 서비스가 커널 내에 포함됨
  • 장점: 커널 내부 요소들이 서로 효율적으로 상호작용을 할 수 있음
  • 단점: 한 요소에 있는 오류로 인해 시스템 전체에 장애가 발생할 수 있음
  • UNIX, Linux
  1. 마이크로 커널(microkernel)
  • 운영체제의 대부분 요소들을 커널 외부로 분리
  • 커널 내에는 메모리 관리, 멀티태스킹, 프로세스 간 통신 등 최소한의 요소들만 남김
  • 장점: 새로운 서비스를 추가하여 운영체제를 확장하기 쉬움. 유지보수가 용이하여 안정성이 우수함.
  • 단점: 커널 외부 요소들 사이에는 IPC를 통해야만 하므로 성능 저하가 발생함.

운영체제의 구성


  1. 프로세스 관리자 (실행중인 프로그램 관리)
  • 프로세스를 생성, 삭제, CPU 할당을 위한 스케쥴 결정
  • 프로세스의 상태를 관리하여 상태 전이를 처리
  1. 메모리 관리자
  • 메모리(주기억장치) 공간에 대한 요구의 유효성 체크
  • 메모리 할당 및 회수
  • 메모리 공간 보호
  1. 장치 관리자
  • 컴퓨터 시스템의 모든 장치(키보드, 디스크, 네트워크 장치…)를 관리
  • 시스템의 장치를 할당, 작동 시작, 반환
  1. 파일 관리자
  • 컴퓨터 시스템의 모든 파일을 관리
  • 파일의 접근 제한 관리
  • 파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수

운영체제의 유형


  1. 일괄처리(batch processing) 운영체제
  • 작업을 모아서 처리
  • 사용자와 상호작용 없이 순차적으로 실행
  • 효율성 평가: 처리량, 반환시간
  • 반환시간: 작업의 생성 시점부터 종료 시점까지의 소요시간
  • 처리량: 주어진 시간 안에 처리된 작업의 수
  • Ex, OMR
  1. 대화형 (interactive) 운영체제
  • 시분할 운영체제라고도 함
  • 일괄처리 운영체제보다 빠르지만 실시간 운영체제보다는 느린 응답시간
  • 이용자에게 즉각적인 피드백을 제공
  1. 실시간(real-time) 운영체제
  • 가장 빠른 응답시간
  • 처리의 결과가 현재의 결정에 영향을 주는 환경에서 사용
  • Ex, 우주선 비행 시스템, 미사일 제어, 증권거래 관리 시스템, 은행 입출금 시스템 등에 사용
  1. 하이브리드(hybrid) 운영체제
  • 일괄처리 운영체제대화형 운영체제의 결함
  • 이용자는 터미널을 통해 접속하고 빠른 응답시간을 얻음
  • 대화형 작업이 많지 않을 경우 백그라운드에서 배치 프로그램 실행
  • 현재 사용되고 있는 대부분의 대형 컴퓨터 시스템은 하이브리드 운영체제

운영체제의 역사


  • 1940년대 : 초기 전자식 디지털 컴퓨터
  • 운영체제가 존재하지 않음
  • 기계적 스위치에 의해 작동
  • 1950년대 : 단순 순차처리 및 단일흐름 일괄처리
  • 한 번에 오직 하나의 작업만을 수행
  • 최초의 운영체제 등장
  • 1960년대 : 멀티프로그래밍
  • 멀티프로그래밍, 시분할 처리 개념
  • 다중 대화식 사용자 지원
  • 1970년대 : 멀티모드 시분할
  • 일괄처리, 시분할 처리, 실시간 처리를 지원하는 멀티모드 시분할의 보편화
  • 근거리 지역 네트워크(LAN)의 실용화
  • 정보보호 및 보안문제의 증대로 암호화의 중대성 대두
  • 네트워크의 대두와 함께 클라이언트 / 서버 모델 확산
  • 1990년대 : 병렬처리 및 분산처리
  • 순차처리를 벗어나 분산 및 병렬 처리 발전
  • 그래픽 사용자 인터페이스 (GUI)의 강화
  • 선점형 멀티태스킹, 멀티쓰레딩, 가상 메모리의 보편화
  • 2000년대 : 모바일 및 임베디드 운영체제
  • 모바일 운영체제 보편화
  • 가전제품을 위한 임베디드 운영체제의 보편화
  • 고속화, 고기능화, 경량화 방향으로 발전
  • 네트워크 기반의 분산 및 병렬 운영체제의 보편화
  • 클라우드 환경의 운영체제