171212 운영체제 (1) - RYUDONGJIN/Memo_wiki GitHub Wiki

운영체제(Operating System)

  • 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램.
  • 사용자와 하드웨어 간의 전반적인 상호작용을 하면서 컴퓨터가 실행되는 동안 항상 수행되는 프로그램.

운영체제의 역사

  • 수작업 -> 단일 프로그래밍 -> 다중 프로그래밍 & 시분할 -> 모바일 OS & 실시간 시스템

운영체제의 목적

  1. 사용자가 컴퓨터를 편리하게 사용하게 하는 것
  2. 컴퓨터 하드웨어가 효율적으로 사용되는 것

컴퓨터 시스템의 처리 구조

User <=> Application <=> Operating System <=> Hardware

사용자의 관점에서 좋은 운영체제

  • 사용의 용이성에 중점을 두고 자원 이용의 극대화에 중점을 둔 운영체제

시스템의 관점에서 좋은 운영체제

  • 하드웨어와 친밀하면서 자원을 효율적으로 할당해주는 자원 할당자 역할을 하는 운영체제

일괄처리 시스템 (Batch System)

  • 초기의 컴퓨터가 동작하는 방식. 물리적으로 콘솔에서 수행을 하던 방식에 사용하던 시스템. 비슷한 것은 주기적으로 한번에 묶어서 처리

다중 프로그램 시스템 (Multi-Programmed System)

  • CPU가 수행할 작업을 항상 가지도록 하는 방식. 먼저 하드디스크나 SSD에서 여러개의 프로그램을 선택해서 메인 메모리(RAM)에 적재. 이후에 메모리 내에 있는 작업 중에서 하나를 선택해 차례대록 실행. 첫번째 작업이 끝나면 현재의 작업을 중단하고 다시 첫번째 작업이 CPU를 차지하는 방식

시분할 시스템 (Time-Sharing System)

  • 다중 프로그래밍의 장점을 채택하여 확장한 시스템으로서 프로그램이 수행이 되고 있을 때 아주 짧은 주기로 CPU를 각각의 프로그램에 할당을 해주는 방법. 프로그램이 수행이 되고 있는 동안에도 상호작용할 수 있다.
  • 예를 들어 Linux와 같은 운영체제는 여러 명의 사용자가 동시에 한 대의 컴퓨터에 접속을 해서 서로 다른 처리를 할 수 있도록 해준다.

작업 스케줄링 : 보조기억장치에 프로그램이 저장되어 있고 그 중 일부를 선택해서 메모리에 적재하는 전략 CPU 스케줄링 : 메모리에 올라온 작업들 중에서 무엇부터 실행할지 고르는 전략 일괄처리 시스템은 상호작용이 필요없는 큰 단위의 작업들을 수행할 때 사용