운영체제 역사

윤상준·2022년 2월 11일
0

운영체제

목록 보기
2/20
post-thumbnail

초기 컴퓨터 (1940년대 말 등장)

건물 하나에 컴퓨터 하나가 겨우 들어갈 정도로 크기가 컸다.

또한 사용법이 어려워 일반인들은 사용하지 못했고 전문적으로 다루는 직군인 오퍼레이터가 존재했다.

이 당시 컴퓨터는 별도의 운영체제가 존재하지 않던 No Operating System 이었다.

작동 방법

1. 입력 장치 (Card Reader)

  • 오퍼레이터가 종이에 프로그램을 코드로 적어 전산실에 전달한다.
  • 전산실에서 종이에 작성된 코드에 맞게 OCR 카드에 구멍을 뚫는 방식으로 프로그램을 OCR 카드로 옮긴다.
  • 입력 장치 (Card Reader)가 그 구멍을 통해 코드를 파악한다.

2. 메모리 (Memory)

  • 처리기가 입력 장치 (Card Reader)에서 읽은 코드를 통해 파악한 내용을 메모리에 저장한다.

3. 컴파일러 (Compiler)

  • 오퍼레이터가 구멍 뚫린 카드로 구성된 컴파일러를 다시 입력 장치 (Card Reader)에 넣는다.
  • 처리기가 컴파일러를 실행시키면서 메모리에 저장되어있던 내용을 기계어로 변경한다.

4. 프로세싱 (Processing)

  • 처리기가 기계어를 실행한다.

5. 프린터 (Line Printer)

  • 실행 결과가 프린터에 찍혀 출력된다.

이 모든 과정이 오퍼레이터가 직접 컴퓨터에 입력하면서 진행된다.

Batch Processing System (일괄 처리)

Batch ?

꾸러미라는 뜻으로, 프로세스를 일괄 처리한다는 뜻이다.

초기 컴퓨터의 작동 과정을 컴퓨터 메모리에 넣어 자동화한 것이 Batch Processing System이다.

Resident Monitor

Resident : 거주라는 뜻으로, 이 프로그램이 항상 프로세서 안에 거주한다는 의미이다.

메모리 안에 들어있는 프로그램으로써, 메모리에 상주하여 일괄적인 일을 처리하는 역할을 수행했으며, 이를 최초의 운영체제라고 할 수 있다.

Multiprogramming System (다중 프로그래밍)

등장 배경

컴퓨터 메모리에는 OS와 User Program이 들어있는데, Batch Processing System은 Resident Monitor를 제외하고 하나의 어플리케이션만을 메모리에 올릴 수 있었다.

하나의 어플리케이션을 수행하기 위해서는 CPU (계산 담당)와 I/O 장치 (입출력 담당)가 동작해야 한다. 문제는 Batch Processing System에서는 CPU가 동작할 때 I/O 장치는 동작할 수 없고, I/O 장치가 동작할 때 CPU는 동작할 수 없다. 즉, 둘이 동시에 동작할 수가 없다.

특히 CPU가 동작하지 않는 상태를 Idle 상태라고 하는데, I/O 장치의 속도는 CPU에 비해 매우 느려서 Idle 상태의 비율이 매우 높았다.

컴퓨터는 매우 비싼 자원이었기 때문에 더 효율적인 사용 방법을 고민하게 되었고, 그로 인해 등장한 개념이 Multiprogramming System이다.

다중 프로그래밍

이름처럼 메모리에 여러 어플리케이션이 한번에 올라가는 시스템이다.

하나의 어플리케이션에서 CPU가 동작하고 있다면, I/O는 놀고 있지 않고 다른 어플리케이션에서 동작하도록 한다.

즉, CPU의 Idle 상태를 최대한 줄이도록 한다.

다중 프로그래밍을 통해 메모리에 여러 어플리케이션을 올리면서 여러 이슈가 생겼다.

CPU 스케쥴링 (CPU Scheduling)

여러 개의 어플리케이션이 있을 때, 효율성을 위해 CPU를 최적의 위치에 배치할지 선택하는 이슈.

메모리 할당

새로 실행하는 프로그램을 어느 메모리에 할당할 지 선택하는 과정.

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

60년대 후반 ~ 70년대로 접어들면서, 모니터와 키보드를 통해 컴퓨터 - 사용자 간의 상호작용이 가능해졌다. 하지만 여전히 비싼 가격으로 인해 하나의 컴퓨터에 여러 개의 단말기 (Terminal)를 연결해서 사용했다.

실제 프로세서는 Host Computer에만 존재하며, 각 사용자들은 모니터와 키보드만을 가지고 이 프로세서를 공유하며 사용했다.

기존의 문제점

간단하다. 한 명의 사용자가 CPU를 사용하고 있으면 나머지 사용자들은 CPU를 사용할 수 없다.

왜? CPU는 단 하나 뿐이니까! CPU 사용을 끝낼 때 까지 기다려야만 했다.

시분할 시스템

CPU가 하나의 프로그램을 수행하는 시간을 제한하고, 그 시간이 지나면 무조건 다음 프로그램으로 넘어가도록 (Switching) 하는 방식이다.

이 때 Switching의 주기를 매우 빠르게 설정하면 (ms 단위로), 각 사용자들은 마치 하나의 CPU를 온전히 사용하는 듯 한 경험을 할 수 있다.

하나의 컴퓨터를 같이 사용하므로 여러 사용자들 끼리 메시지 혹은 데이터를 주고 받는 등의 상호 작용이 가능해졌다. 즉, 프로세스 (Process)간의 통신이 가능해졌다.

profile
하고싶은건 많은데 시간이 없다!

0개의 댓글