thumbnail
운영체제 역사
OS
2022.02.03.

1. 운영체제가 없던 시절

운영체제의 발전은 하드웨어 발전과 밀접한 관계를 가지고 있습니다. 하드웨어가 성능과 용량이 커질수록 더욱 효율적으로 사용하기 위해 운영체제가 발전한다는 뜻입니다!


1940년대 말에서 1950년대 초 컴퓨터 구조는다음과 같습니다. 카드 리더기에 천공 카드 등으로 코딩한 프로그램을 올리면 카드 리더기가 읽고 메모리에 올립니다. 그 이후에는 리더기를 비운다음에 컴파일러 프로그램 카드를 올려서 메모리에 올려서 기계어로 번역할 수 있도록 합니다! 이후 기계어를 처리한 이후 프린터에 출력합니다!

Card reader(입력) > memory(적재) > processing(처리) > line printer(출력)

이때 당시에는 운영체제가 존재하지 않았습니다. 지금의 운영체제가 하는 일들을 사람이 직접 했습니다. 프로그램을 메모리에 적재하는 걸 컴퓨터가 스스로 할 수는 없을까? 라는 고민에서 Batch processing system이 등장하게 됩니다!


2. 일괄 처리 시스템(Batch processing system)

일괄 처리 시스템은 처음부터 어떤 일련의 일들을 메모리에 올리는 것입니다. 그 당시 용어로는 이러한 일련의 일들을 처리하는 프로그램을 resident monitor라고 불렀습니다. 이 녀석은 메모리에 상주하면서 기존에 오퍼레이터라는 직업을 가진 사람이 하는 일들을 대신 해줬습니다. 즉 최초의 OS는 resident monitor라고 볼 수 있습니다.

3. 다중 프로그래밍(Multiprogramming system)

CPU IDLE 상태란 cpu가 아무것도 안하고 쉬고 있는 상태를 의미합니다. 일괄 처리 시스템에는 배치 시스템 하나 유저 프로그램 하나가 돌아갑니다. 근데 프로그램이 작동할때 연산->출력->연산->출력의 과정을 생각해보면 CPU가 연산을 끝내면 유휴 상태에 들어갑니다. 그 당시 컴퓨터 한대 가격은 매우 비싼데 아무것도 안하고 쉬고 있으니깐 조금 불편할 수도 있습니다. 또한 CPU는 빠른 데, I/O는 느립니다. 이것은 CPU의 IDLE 상태가 많아짐을 의미합니다.

이러한 문제점을 해결하고자 여러 프로그램을 메모리에 동시에 올리는 생각을 합니다. 이것이 다중 프로그래밍 시스템입니다. IDLE TIME을 최대한 줄이기 위해서 CPU를 효율적으로 사용하는 방법을 고안합니다. 다중 프로그램(메모리에 여러 프로그램 적재), CPU scheduling을 통한 성능 개선 등이 있겠습니다.

이제부터는 프로그램 적재 전략, CPU 스케줄링 전략(CPU scheduling), 메모리 관리, 보호(프로그램 간의 영역 침범) 등 많은 부분을 신경써야합니다. 하지만 이러한 고민들은 결국 OS 발전에 큰 영향을 끼칠 것입니다!

4. 시공유 시스템(Time-sharing system aka tss)

컴퓨터가 귀한 시절에는 하나의 컴퓨터에 여러 단말기를 붙여 작업을 하곤 했습니다. 하지만 다중 프로그래밍 환경에서는 A라는 사람이 A단말기를 이용해 컴퓨터를 이용하고 있는데 다른 B 단말기를 이용하는 사용자 B가 CPU를 점유하고 있으면 A는 아무것도 못하고 기다려야 합니다. 이러한 문제를 해결하기 위해서 시공유 시스템이 등장하게 됩니다.

시공유 시스템은 CPU를 여러 프로그램마다 수십 ms에서 수백 ms마다 번갈아가면서 작업을 하며 돌아가는 방식을 의미합니다. 이러한 시공유 시스템을 이용해 여러 사용자가 동시에 컴퓨터를 사용할 수 있는 효과를 볼 수 있었습니다.

이러한 시공유 시스템을 통해 Interactive system(대화형 시스템)이 가능해졌고, 사용자간의 통신(프로세스간 통신)이 가능해졌고, 가상 메모리, 동기화 같은 개념이 생겼습니다.


1970년대에 대표적인 tss의 예로는 unix가 있습니다! 또한 지금 사용하는 대부분의 운영체제는 tss 계열이고, 80년대 나온 ms-dos 같은 경우에는 일괄 처리 시스템에 가깝습니다.

5. OS 기술 천이

  • 컴퓨터 규모별 분류:
    • Supercomputer > Mainframe > Mini > Micro (1970년대 기준)
    • Supercomputer > Server > Workstation > PC > Handheld > Embedded(최근에는 이러한 기준으로 분류됩니다.)

천이는 옮기어져 바뀌다. 라는 뜻입니다. 기존의 고성능 컴퓨터들을 효율적으로 사용하기 위해 만들어진 OS 기술들이 시간차를 두고 일괄처리, 다중 프로그래밍, 시공유를 거쳐 Handheld(노트북,태블릿,스마트폰), Embedded(가전제품 등등)에도 적용되고 있습니다. 이러한 현상을 교수님은 천이라고 말씀하신 것 같습니다.

시공유에서 운영체제의 발전이 멈춘 것은 아니고 고등 컴퓨터 구조(Advanced Computer Architectures)의 등장에 따라 고등 운영체제도 등장하게 되었습니다. 이 고등 운영체제는 다음 챕터에서 다루도록 하겠습니다!

참고

Simplicity is the ultimate sophistication🛸
@ 2022 le2sky, Powered By Gatsby.