1-2. OS의 역사

10000001a·2021년 3월 13일
0

운영체제 정리

목록 보기
2/7

no OS

컴퓨터가 처음 나왔을 때에는 운영체제가 존재하지 않았다.

프로그래머들이 코드를 손으로 적어서 건네주면 OCR 카드에 코드를 표시하는 작업을 해주는 사람들이 있었다고 한다. OCR 카드에 표시한 후에 리더기에 넣으면 프로그래머가 작성한 프로그램이 메모리에 적재된다.

하지만, 아직 프로세서는 적재된 프로그램이 기계어가 아니기 때문에 작동시킬 수 없다. 따라서 컴퓨터 운영자는 컴퍼일러, 링커, 로더와 같이 코드를 기계어로 변환해주는 프로그램을 리더기에 넣어서 프로그램을 작동시킨다.

이후 해당 프로그램의 결과가 프린터에 찍힌다.

Batch Processing

(일괄 처리 시스템)

Batch processing은 최초의 OS라고 할 수 있다.

컴퓨터 운영자는 하나의 프로그램을 돌릴 때마다 컴파일러, 링커, 로더와 같이 프로그램이 프로세서에서 돌아갈 수 있게 해주는 프로그램을 카드에 넣어야했다. 이러한 과정을 줄이고자 Batch Processing (일괄 처리 시스템)이 나오게 되었다.

Batch processing은 메모리에 컴파일러, 링커, 로더를 가지고 있어서 운영자가 해당 프로그램을 카드 리더기에 넣어줄 필요가 없다.

이와 같이 메모리에 기본적으로 적재되어있는 컴파일러, 링커, 로더를 Resident Monitor라고 부른다.

Multiprogramming

(다중 프로그래밍 시스템)

이 당시 컴퓨터에는 하드디스크가 만들어졌고, 메인보드가 반도체로 바뀌면서 메모리가 더 커지게 되었다.

이러한 변화 속에서 이전 운영체제와 같이 하나의 프로그램이 CPU와 I/O를 동시에 사용하게 되었다. CPU보다 I/O가 느리기 때문에 CPU는 Idle 상태가 많아졌다.

이러한 비효율성을 줄이기 위해 메모리에 여러개의 프로그램을 적재시킨 시스템이 Multiprogramming System이다.

program A가 CPU를 할당받아 사용하고 있다가 I/O를 사용해야 해서 할당받게 되면 CPU는 program B로 스위칭하여 효율을 높인다.

Multiprogramming System이 나오게 되면서 OS에서는 CPU 스케줄링, Memory management, Protection과 같은 것들에 대해 대비할 필요가 생겼다.

Time Sharing System(TSS)

(시공유 시스템)

60년대 후반 모니터와 키보드가 만들어졌다. 이에 따라, 컴퓨터와 유저간의 상호작용이 가능해졌고 이러한 컴퓨터를 Interactive computer라고 한다.

해당 시기에 컴퓨터는 굉장히 비쌌기 때문에 여러명의 유저가 동시에 사용하기 위해 하나의 컴퓨터에 단말기를 연결하여 사용했다.

이러한 구조에서 Multiprogramming System을 사용한다면 user1의 프로그램이 computer의 CPU를 사용하고 있을 경우 나머지 이용자들의 프로그램은 전혀 처리가 진행되지 않을 것이다.

이를 해결하기 위해 나온 것이 Time Sharing System이다.

TSS는 유저들이 1초에도 여러번 CPU를 할당받을 수 있기 때문에 마치 유저가 컴퓨터를 혼자 사용하는 느낌을 제공할 수 있다.

Multiprogramming System과의 차이점으로는 Multiprogramming은 프로그램이 I/O로 넘어가야만 다른 프로그램에 CPU를 할당하지만 TSS는 일정 시간이 지나면 다른 프로그램으로 스위칭 된다.

80년대에 나온 UNIX와 현대의 우리가 사용하는 Windows 모두 TSS를 기반으로 만들어진 OS이다.

TSS가 나오면서 Process간 통신이 가능해졌고, 통신을 위해 동기화(Synchronization)가 필요해졌다. 또한, 메인 메모리가 부족해지는 문제가 발생하여 하드 디스크의 일부를 메인 메모리처럼 활용하는 가상 메모리(Virtual Memory)와 같은 기술들이 나오게 되었다.

profile
잘 부탁드립니다!

관심 있을 만한 포스트

0개의 댓글