운영체제의 역사

yeonjkim·2021년 11월 2일
1

운영체제

목록 보기
2/11

운영체제의 등장과 발전

예전부터 우리가 알았던 컴퓨터의 모습이 지속되어왔던 것은 아니다. 컴퓨터는 1940년대 말부터 등장하여 점차 발전해 나갔는데, 지금부터 그 양상을 살펴볼 것이다.

1. OS가 없던 컴퓨터

현재의 컴퓨터는 hdd에 프로그램이 있고, os가 hdd의 프로그램을 메모리에 적재하는 역할을 한다. 그러나 처음부터 os가 있던 것은 아니다.

프로그램이 실행되기까지의 과정을 보면 컴파일이나 링킹, 로드와 같은 과정을 거치는데, os가 없는 컴퓨터에서는 이와 같은 일을 operator가 직접 하게 되어있었다.

프로그램 수행 과정은 (1) 카드 리더기에 소스 코드를 올려 메모리에 소스 코드를 적재하고, (2) 다시 카드 리더기에 컴파일러를 올려 소스 코드를 기계어로 번역한 뒤 (3) cpu에서 실행한다. (4) 그 뒤 실행 결과를 출력장치를 통해 받는다.

현대 컴퓨터에서는 소스 코드를 작성하고, 이를 컴파일러로 돌리고, 링킹하는 과정은 os가 실행하도록 되어있지만 os가 없는 system에서는 이 과정을 operator가 한다. 다음에 나올 batch processing system에서는 이 과정을 resident monitor가 수행한다.

2. Batch Processing System : 최초의 OS

Batch Processing System에서 Batch라는 영단어가 일괄처리되는 이라는 뜻을 갖듯이, 이 시스템이서는 resident monitor라는 프로그램이 소스 코드와 컴파일러, 링크의 과정을 operator 대신 수행한다. 이 batch processing system이 최초의 OS인 것이다.

3. Multi Programming

다중 프로그래밍은 cpu와 메모리의 활용 문제를 극복하기 위해 도입되었다.
예를 들어 아래와 같은 간단한 소스코드가 있다고 가정해 보자.

int main(void)
{
    int i = 0;//cpu
    i++;//cpu
    printf("%d", i);//io장치
    return (0);
}

위의 코드를 보면, cpu의 ALU(연산장치)를 이용하는 코드 부분이 있고, printf와 같은 i/o 장치를 쓰는 코드가 있다.

cpu는 굉장히 빠른 시간 내에 연산을 하는 반면, i/o 장치는 cpu의 속도를 따라가지 못한다. 또 연산 결과를 다시 메모리에 로드하고, 다른 변수의 값을 hdd에서 가지고 오는 메모리 적재의 속도도 cpu작업과는 많은 차이가 난다.

i/o장치나 메모리 적재와 같은 속도가 느린 작업을 진행중일 때 cpu는 유휴상태(idle)일 수밖에 없는데, 이와 같은 유휴 상태의 낭비를 줄이고자 multi programming이 도입되었다.

위와 같은 상황에서, job A는 i/o operation을 진행중이다. 이 때 cpu의 Idle을 줄이고자 다중 프로그래밍을 도입해 cpu가 job B를 진행하고 있도록 한다. 이것이 다중프로그래밍이다.

또, 여러 개의 job을 도입할 때, 어떤 job을 어떤 순서대로 실행하면 좋을지 고려하는 cpu scheduling이나, job들이 서로의 영역을 침범하지 않도록 하는 메모리 관리보호의 기능도 multi programming os에서 도입되었다.

4. Time Sharing System(TSS)

Time Sharing System(TSS, 시공유시스템) : 컴퓨터 기술의 발전으로 모니터와 키보드가 도입되었고, 이를 이용해 하나의 컴퓨터에 여러 개의 단말기(터미널)을 연결하여 여러 사용자가 이용할 수 있도록 한 시스템.

컴퓨터의 비용 문제로 인해 하나의 컴퓨터로 여러 사용자가 이용할 수 있도록 설계함.

위처럼 하나의 메모리에 여러 명의 사용자가 연결하여 각 사용자 당 일정 시간동안 cpu를 점유할 수 있게 하는, 시간 공유 시스템(시공유 시스템).

1/100초 동안 1명의 user가 점유할 수 있고, 총 n명의 유저가 있다면 각 유저는 1초에 cpu를 100/n번 할당받을 수 있다.

이러한 시공유 시스템은 현대의 여러 운영체제에 영향을 미쳤다. unix와 linux, window 등의 운영체제가 시공유시스템의 영향을 받았다. 현재 사용되고 있는 거의 대부분의 system은 TSS를 기반으로 한다.

이 TSS로 인해, 메모리의 중요성이 부각되며 HDD의 일부를 main memory처럼 이용할 수 있게 하는 가상메모리와 프로스세간 통신, 동기화(어떤 유저의 process를 선행하고, 후행해야 하는지에 대한 이슈)에 대한 이슈가 중요시되었다.

0개의 댓글