Computer Science/Operating System

[운영체제] 운영체제의 발전사(배치 처리 시스템, 시분할 시스템, 멀티 태스킹)

HJChung 2021. 2. 6. 16:34

운영체제의 발전사를 보면서 각각의 운영체제의 기능들이 어떻게 발전해왔는지, 어떤 트렌드가 있었는지 알아보았다.

1950년대)

ENIAC: 첫 번째 컴퓨터

이 때는 운영체제가 없었다. 1개의 응용 프로그램을 실행시키기도 바빴으려 이 응용 프로그램이 직접 시스템 자원을 제어하였다. 

1960년대 초기)

이 때는 프로그램 종류도 많아지고, 사용자도 슬슬 많아지기 시작했다. 

예를들어, 철수가 '예상 실행 시간이 12 시간'인 <프로그램1>을 실행하고자 하며, 영희가 '예상 실행 시간이 1분'인 <프로그램2>를 실행하고자 한다. 이 때 철수가 먼저 프로그램1을 실행시킨다면 영희는 1분 만에 끝나는 작업임에도 불구하고 철수의 프로그램이 다 끝날 때까지 직접 뜬 눈으로 기다려한다. 

이러한 불편함을 해결하기 위해 <배치 처리 시스템(Batch Processing System>을 기반으로 하는 운영체제가 출현했다. 

※ 배치 처리 시스템이란, 

그냥 여러 프로그램을 일단 다 등록시켜두고, 끝나면 순차적으로 실행되도록 하게 하는 시스템이다. 

 

이렇게 배치  처리 시스템이 있으면서 영희는 뜬 눈으로 기다리지 않고, 우선 등록시켜 둔 다음 다른 일을 하다가 오면 되지만, 여전히 순차적으로 실행되기 때문에 앞선 프로그램의 실행이 다 끝나야지만 뒤에 등록된 것이 실행된다는 한계가 있다. 

즉, 배치 처리 시스템의 단점은

- 앞단에 실행시간이 많이 필요한 응용 프로그램이 실행될 경우 컴퓨터 응답시간이 오래 걸릴 수 있다. 

- 그리고 CPU가 필요없는 시간대에도 응용 프로그램이 CPU를 점유하고 있을 수 있기 때문에 총 실행 시간도 오래 걸릴 수 있다.

 

1960년대 후반)

그래서 <시분할 시스템(Time Sharing System)과 멀티 태스킹(Multi Tasking)이라는 새로운 개념이 제안되었다. (아직 운영체제로 구현되지는 못함)

 

※ 시분할 시스템과 멀티 태스킹이란 

응용 프로그램이 CPU를 사용하는 시간을 잘게 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법을 말한다. 

시분할 시스템과 멀티 태스킹은 서로 목적은 약간 다르지만, '시간을 잘게 쪼개서 실행시킨다'는 점에서 유사하며, 보통 시분할 시스템과 멀티 태스킹을 유사한 의미로도 많이 사용한다. 

시분할 시스템은 다중 사용자를 지원하는 것이 목적이며, 다중 사용자를 지원하기 위해선 컴퓨터 응답 시간을 최소화 해야하는데 이에 적절한 시스템이다. 

 

멀티 태스킹은 단일 CPU에서 여러 응용 프로그램의 병렬 실행을 가능하게 하는 것이 목적이며 시간대비 CPU 사용률을 높이는데 적절한 시스템이다.

이는 뒤에 정리할 스케쥴러와 밀접한 관련이 있는 내용이다. 

 

1970년대 초기)

UNIX OS라는 제대로 된 운영체제가 등장했다. 이 UNIX 운영체제는 현대 운영체제의 기본 기술인 멀티 태스킹, 시분할 시스템, 멸티 프로그래밍, 다중 사용자 지원 등을 모두 포함한 최조의 운영체제이다. 

 

1980년대)

개인용 컴퓨터의 시대이며 1980년대 초반은 아직 터미널 환경(CLI)이었지만 중후반에는 GUI환경이 되었다. 

 

1990년대)

GUI환경의 응용 프로그램시대(엑셀, 워드 프로세서 등), Windows OS 대중화

네트워크 기술 발전 - WWW(월드와이드웹) 인터넷 대중화

오픈소스운동 활성화 시작

 

2000년대 이후)

오픈 소스 활성화

가상머신, 대용량 병렬 처리 등의 활성화