컴퓨터 공학 기본/운영체제 (OS)

02. 운영체제의 역사 (1950~1960)

백악기작은펭귄 2023. 4. 15.
반응형

운영체제의 역사 (1950~1960)

1950년대: OS 부재

첫 번째 컴퓨터인 ENIAC이 탄생. 이 때는 하나의 컴퓨터에서는 특정 실행시간 동안 응용 프로그램 하나만을 처리하는 것이 당연했고, 따라서 응용 프로그램이 스스로 리소스 관리를 하였기 때문에 OS가 필요치 않았다.

 

1960년대 초반: 배치 처리 시스템의 출현

점점 사용자가 많아지고, 응용 프로그램의 수 또한 늘어났다. 그러나 여전히 한 번에 하나의 프로그램만을 구동시킬 수 있었기 때문에 특정 프로그램을 실행시키기 위해서는 실행되고 있는 프로그램이 종료될 때까지 기다려야 하는 상황이 발생했다. 이러한 문제를 해결하기 위해 배치 처리 시스템(Batch Processing System)이 등장했다.

 

이는 여러 응용 프로그램을 미리 등록시켜 놓으면 순차적으로 실행시켜주는 시스템으로, 기존처럼 프로그램의 종료를 기다리다가 사람이 수동으로 새로운 프로그램을 실행시켜주지 않아도 되었기에 생산성을 크게 늘릴 수 있었다.

 

그리고 이러한 배치 처리 시스템을 구현하기 위해 컴퓨터의 자원과 응용 프로그램의 동작을 관리하는 체계가 필요해졌고, 이것이 바로 운영체제의 시초라고 볼 수 있다.

 

물론 이때는 사람이 등록한 순서대로 프로그램을 실행시켰기 때문에, 비효율적인 실행이 이루어지는 경우도 많았다.

 

1960대 후반: 새로운 개념의 제안

1960년대 후반에 접어들면서, 시분할 시스템(Time Sharing System)멀티 태스킹(Multi Tasking), 멀티 프로그래밍(Multi Programming)이라는 새로운 개념이 제안되기 시작했다. 이 둘은 자세한 내용은 다를 수 있지만, 큰 개념의 범주에서는 다음과 같은 아이디어를 가진다.

 

"CPU의 사용 시간을 잘게 쪼개어 여러 응용 프로그램이 동시에 실행될 수 있도록 함"

 

각각을 좀 더 자세히 보면 다음과 같다.

 

1. 시분할 시스템
기본적으로 다중 사용자를 지원하기 위한 개념으로, 컴퓨터 응답 시간을 최소화하는 시스템이라고 할 수 있다.

 

기존의 배치 처리 시스템에서는 현재 실행 중인 응용 프로그램이 모두 종료되어야 다음 응용 프로그램이 실행될 수 있었다. 이 경우 다음에 실행되는 응용 프로그램이 사용자와의 커뮤니케이션을 하는 프로그램이라면 사용자 입력과 컴퓨터의 출력 간의 term이 너무 길어질 우려가 있다.

따라서, CPU 사용 시간의 분할을 통해 응답 시간을 획기적으로 줄이는 것이 요구되었고, 이를 해결하기 위해 등장한 개념이 시분할 시스템인 것이다.

2. 멀티 태스킹

시분할 시스템과는 약간 다르게, 사용자가 아닌 응용 프로그램에 초점이 맞춰진 개념으로, 단일 CPU에서 다중 응용 프로그램의 병렬 실행을 가능하게 하는 시스템이다.

 

물론 당시에는 한 시점에는 한 개의 응용 프로그램이 실행되는 것이 (기술적으로도 인식적으로도) 당연하였기 때문에 실제적인 병렬 실행을 지원하는 것은 아니지만, CPU 실행 시간을 매우 잘게 쪼갬으로써 '사람이 보기에' 병렬적으로 실행되는 것처럼 보이게 만드는 것이 목표이다.

 

3. 멀티 프로그래밍

위 두 가지 개념과 유사하지만, 시간 대비 효율성에 좀 더 초점을 맞춘 개념이다. 이는 시분할 시스템, 멀티 태스킹과 함께 사용함으로써 전체적인 실행 시간을 줄일 수 있을 것으로 기대되었다.

 

CPU에서 어떠한 응용 프로그램이 동작할 때, 해당 프로그램이 저장 매체에서 데이터를 읽어오는 등 CPU 외적으로 실행되는, 비교적 오래 걸리는 작업을 수행하는 경우, 다른 응용 프로그램이 그 시간 동안 먼저 실행되는 방식이다.  멀티 태스킹과 이름이 유사해 혼동되곤 하지만, 그보다는 병렬 실행의 의미에 더 가까운 개념이라고 할 수 있다.

 

위 세 가지 개념이 당시 실제로 구현된 것은 아니지만, 이러한 개념의 출현은 추후 운영체제 발전의 큰 영향을 끼쳤고, 현재 사용되는 병렬 프로그래밍 방식의 아이디어를 제공했다.

반응형

'컴퓨터 공학 기본 > 운영체제 (OS)' 카테고리의 다른 글

01. 운영체제  (0) 2023.04.15
04. 운영체제 구조: 시스템 콜  (0) 2023.04.15
03. 운영체제의 역사 (1970~2000)  (0) 2023.04.15

댓글