운영체제: Introduction

Page content

방통대 운영체제 공부하면서 작성한 글 입니다. 강의를 들으면서 공룡책으로 공부할 예정 입니다. 작성 임시단계이니 많은 참고는 하지말아주세요! 부족한 글 입니다.

Operating System: Introduction

운영체제란?

운영체제는 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 시스템 소프트웨어이다. 운영체제 시스템 소프트웨어가 없던 시절에는 프로그래머가 하드웨어의 자원을 잘 알아야했고, 여러 응용 프로그램이 하드웨어의 자원을 공유하는 경우 자원을 각 운영체제에게 분할하는 경우가 어려웠다고 한다.

운영체제의 역사
  • 1940년대: 초기 전자식 디지털 컴퓨터, 운영체제가 존재하지 않음, 기계적 스위치에 의해 작동
  • 1950년대: 단순 순차처리 및 단일흐름 일괄처리: 한번에 오직 하나의 작업만을 수행, 최초의 운영체제(IBM)
  • 1960년대: 멀티프로그래밍, 시분할 처리개념, 다중 대화식 사용자 지원
  • 1970년대: 멀티모드 시분할
    • 일괄처리, 시분할 처리, 실시간 처리를 지원하는 멀티모드 시분할의 보편화
    • 근거리 지역 네트워크(LAB)의 실용화
    • 정보보호 및 보안문제의 증대로 암호화의 중요성 대두
  • 1980년대: 분산 네트워크
    • 운영체제 기능이 하드웨어 자체에 포함된 펌웨어 개념의 대두
    • 2개 이상의 프로세서를 이용하는 멀티 프로세서 환경의 대두
    • 네트워크의 대두와 함께 클라이언트 / 서버 모델 확산
  • 1990년대: 병렬 처리 및 분산처리
    • 순차처리를 벗어나 분산 및 병렬 처리 발전
    • 그래픽 사용자 인터페이스(GUI)의 강화
    • 선점형 멀티태스킹, 멀티 스레딩, 가상 메모리의 보편화
  • 2000년대 이후: 모바일 및 임베디드 운영체제
    • 시스템은 고속화, 고기능화, 경량화 방향으로 발전
    • 다양한 통신망의 확대와 개방형 시스템의 발달
    • 운영체제는 다양한 기능 지원, 확장성과 호환성 극대화, 사용자 편의성 높임
    • 네트워크 기반의 분산 및 병렬 운영체제의 보편화
    • 클라우드 환경의 운영체제
    • 64비트 CPU에 호환되는 64비트용 운영체제
    • PDA, PMP, 스마트폰, 태블릿 등의 모바일 장치 대중화로 모바일 운영체제 보편화
    • 가전 제품을 위한 임베디드 운영체제의 보편화
CPU 동작모드
  • 슈퍼바이저 모드(커널 모드)
    • 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용하지 못한다.
    • 운영체제의 커널이 동작되는 모드
  • 보호 모드(사용자 모드)
    • 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용하지 못한다.
    • 응용 프로그램이 동작되는 모드
시스템콜, System Call
  • 응용 프로그램이 운영체제에게 서비스를 요청하는 메커니즘
  • 보호 모드 -> 시스템 콜 -> 슈퍼바이저 모드 -> 커널 동작 -> 하드웨어 제어
  • 커널 모드 -> 시스템 콜 -> 사용자 모드 -> 응용 프로그램 동작
커널, Kernel
  • 운영체제의 핵심요소
  • 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할
  • 대표적인 구성 방식: 일체형 커널, 마이크로 커널
일체형 커널, Monolithic Kernel
  • 운영체제의 모든 서비스가 커널 내에 포함 된다.
  • 장점: 커널 내부 요소들이 서로 효율적으로 상호 작용을 할 수 있다.
  • 단점: 한 요소에 있는 오류로 인해 시스템 전체에 장애가 발생할 수 있다.
  • 예: UNIX, LINUX 운영체제
마이크로 커널, Micro Kernel
  • 운영체제의 대부분의 요소들을 커널 외부로 분리
  • 커널 내에는 메모리 관리, 멀티 태스킹, 프로세스 간 통신(IPC) 등 최소한의 요소들만 남김.
  • 장점: 새로운 서비스를 추가하여 운영체제를 확장하기 쉽다. 유지 보수가 용이하며 안정성이 우수하다.
  • 단점: 커널 외부 요소들 사이는 IPC를 통해야만 하므로 성능 저하가 발생한다.
운영체제의 구성

컴퓨터 시스템의 자원의 성격에 따라서 구분

  • 프로세스 관리자
  • 메모리 관리자
  • 파일 관리자
  • 장치 관리자

프로세스 관리자

  • 프로세스를 생성, 삭제, CPU 할당을 위한 스케쥴을 결정한다.
  • 우리가 사용하는 응용 프로그램은 보조 저장장치에 파일 형태로 존재한다.
  • 사용자가 사용하려면 메모리에 로드를 해야하고, 로드가 되면 파일 형태에서 프로세스 형태로 올라온다.
  • 프로세스의 상태를 관리하며 상태 전이를 처리한다.
  • 프로세스란: 실행중인 프로그램을 이야기한다.
  • 스케쥴링: 동시에 프로세스가 CPU 를 할당하며 연산을 수행하는데 필요한 스케쥴러

메모리 관리자

  • 메모리(주기억장치) 공간에 대한 요구의 유효성 체크
  • 메모리 할당 및 회수
  • 메모리 공간 보호
  • 역할: 메모리에 적재된 응용 프로그램들의 충돌이 일어나지 않도록 유효성을 체크하여 응용 프로그램에게 안전하고 적절하게 메모리를 할당

장치 관리자

  • 컴퓨터 시스템의 모든 장치를 관리
  • 시스템의 장치를 할당, 작동 시작, 반환 (드라이버를 이용하여)

파일 관리자

  • 컴퓨터 시스템의 모든 파일을 관리
  • 파일의 접근을 제한하고 관리한다
  • 파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수
  • 예) 데이터 파일, 컴파일러, 응용 프로그램, 운영체제
운영체제 유형

응답시간의 속도, 데이터 입력 방식에 따라 분류

  • 일괄처리 운영체제
  • 대화형 운영체제
  • 실시간 운영체제
  • 하이브리드 운영체제

일괄처리(batch processing) 운영체제

  • 작업을 모아서 처리
  • 사용자와 상호작용 없이 순차적으로 실행
  • 효율성 평가: 처리량, 반환시간
  • 작업하는 동안 사용자가 끼어들지 못한다.
  • 처리량: 주어진 시간안에 처리된 작업의 수.
  • 반환시간: 작업의 생성 시점부터 종료 시점까지의 소요시간 예) ORM 답안지, 한번에 몰아서 처리한다. 초기의 운영체제(단순)

대화형(Interactive) 운영체제

  • 시분할 운영체제라고도 한다.
  • 일괄처리 운영체제보다 빠르지만 실시간 운영체제보다는 느린 응답시간
  • 이용자에게 즉각적인 피드백을 제공한다.
  • 시간을 균등하게 분배하여 여러 작업들을 번갈아가면서 하는 방식이다.
  • 응답시간: 요청한 시점부터 첫번째 반응이 시작되는 시점까지의 소요시간 예)

실시간 운영체제(RTOS)

  • 가장 빠른 응답시간
  • 처리의 결과가 현재의 결정에 영향을 주는 환경에서 사용
  • 예) 우주선 비행 시스템, 미사일 제어, 증권거래 관리 시스템, 은행 입출금 시스템 등에 사용

하이브리드 운영체제

  • 일괄처리 운영체제와 대화형 운영체제의 결합
  • 이용자는 터미널을 통해 접속하고 빠른 응답시간을 얻음
  • 대화형 작업이 많이 않을 경우 백그라운드에서 배치 프로그램을 실행
  • 현재 사용되고 있는 대부분의 대형 컴퓨터 시스템은 하이브리드 운영체제이다.
  • 예) 현대의 운영체제