본문 바로가기
IT 및 프로그래밍

운영체제의 발전 과정과 유형 중 발전 과정에 대하여 - 1

by 데이터 석사 2024. 10. 20.

운영체제의 발전 과정을 살펴봄으로써 운영체제의 공통점들과 운영체제가 왜, 어떻게 개발되어 왔는지 이해가 가능하다. 특히 운영체제와 하드웨어는 서로 밀접하게 관련되어 있으므로 하드웨어 발전과 함께 살펴보자.

운영체제의 발전 과정과 유형 중 발전 과정에 대하여 - 1

운영체제의 발전 과정 - 1

컴퓨터 시스템의 성능을 업그레이드하려고 운영체제는 계속 발전해 왔다. 그 발전 과정을 하나씩 살펴보면 현재 사용 중인 운영체제의 기능이 만들어진 배경을 이해할 수 있을 것이다.

1940년대 운영체제 없음

사용자가 기계어로 직접 프로그램을 작성하여 실행하는 작업별 순차 처리 시스템을 이용했고, 아직 운영체제 개념이 존재하지 않았다. 컴퓨터에 필요한 모든 일을 프로그램에 담았다. 모든 일을 예약으로 진행하여 문제가 생겨났다. 예시를 들면, 컴퓨터에 오류가 발생하여 예약한 1시간이 지나면 하던 작업을 모두 멈추고 다른 사용자에게 넘겨주고 계속 기다려야 한다. 그와 반대로 더 일찍 마치면 나머지 시간은 비어 있게 되어 시간이 낭비되었다. 그리고 카드 판독기에 판독의 시작 및 종료 시점, 데이터 해석 방법 등을 포함하고 프로세서에는 명령어 저장 방법, 연산 대상, 결과 저장 위치와 방법, 출력 시점과 위치 등을 모두 명령어로 명시적으로 표현했다. 

1950년대 일괄 처리 시스템

자동차 제조회사 GM에서 1952년 초 운영체제의 효시인 IBM 701을 개발했다. IBM 사용자협회인 SABRE가 1957년까지 IBM 704를 위한 자체 운영체제를 개발했으며, 1955년에는 GM과 북아메리카 항공사가 IBM 704를 공동으로 개발했다.

 

초기 운영체제인 일괄 처리 시스템은 작업을 해제하는 시간 낭비와 올리는 시간을 줄이는 데 관심을 집중했다. 그래서 데이터가 생겨날 때마다 바로 처리하지 않고 일정 기간 또는 일정량이 될 때까지 전부 모아 두었다가 한꺼번에 작업하여 작업 준비 시간을 줄였다. 이것을 위해 일괄 처리, 버퍼링, 스풀링 등 수단을 추가하였다.

일괄 처리는 직렬 처리 기술과 같다. 사용자가 펀치 카드와 동일한 오프라인 장치에 일을 저장하여 처리 시스템인 오퍼레이터에 제출한다. 그러면 오퍼레이터에서 비슷한 일들을 그룹으로 묶어 전부 일괄 처리한다. 예시를 들면 포트란, 코볼, 포트란 순서로 작업을 실행해야 한다고 하자. 이때 포트란, 포트란 코볼 순서로 작업하면 포트란에서는 단 한 번만 준비 작업을 하면 되므로 준비 시간 낭비를 줄일 수 있다. 즉 작업 준비 시간을 줄이려고 데이터가 발생할 때마다 바로 작업하지 않고 데이터를 일정 기간 혹은 일정량이 될 때까지 모아 둔 후 한꺼번에 작업하는 것이다.

 

다음은 일괄 처리의 장점이다.

- 많은 사용자와 프로그램이 컴퓨터 자원을 공유가 가능하다.

- 시시각각 수동으로 개입하고 감독하여 컴퓨터의 자원의 유휴의 회피가 가능하다.

- 컴퓨터 자원을 덜 이용 중일 때는 작업 처리 시간을 교대할 수 있다.

 

반대로 일괄 처리의 단점은 작업에 우선순위를 주는 것이 까다롭고, 입출력장치가 프로세서보다 속도가 느려 프로세서가 가끔 유휴 상태가 된다. 또 준비 작업들의 유형이 같아야 하고, 작업에 유형의 전부를 입력할 수 없다는 것이다.

 

버퍼링은 프로세서와 입출력장치의 속도 차이로 생긴 유휴시간이 없도록 입출력장치 별로 입출력 버퍼를 두어, 프로세서에서 계산할 때 같은 순간에 다른 작업을 입출력하는 아주 간편한 수단이다.

 

프로세서가 계산을 시작하는 순간 입력장치가 다음 입력을 바로 받아들이도록 명령했다고 하자. 그러면 프로세서와 입력장치가 동시에 작동된다. 출력에서도 이와 비슷한 버퍼링을 실행할 수 있다. 출력장치가 데이터를 받아들일 동안 프로세서가 데이터를 만들어 버퍼에 담는다. 프로세서가 다음 데이터를 준비하고 있을 때 입력장치가 입력하면, 프로세서는 데이터를 즉시 처리할 수 있고 입력장치는 다음 데이터를 읽을 수 있어 시스템 성능이 업그레이드된다.

 

스풀링은 속도가 빠른 디스크를 버퍼처럼 이용하여 입출력장치에서 미리 읽는 것이다. 스풀링은 성능에 직접적으로 지원해 준다. 프로세서에 일정한 디스크 공간과 테이블만 있으면 하나의 연산 작업과 다른 입출력 하는 일을 중복해서 작업할 수 있다. 이처럼 스풀링은 프로세서와 입출력장치가 고효율로 처리할 수 있도록 한다. 특히 프로세서 중심 작업과 입출력 중심 작업이 혼합된 상황에 좋다.

버퍼링이 컴퓨터 하드웨어의 일부분인 버퍼를 이용한다면, 스풀링은 별개의 오프라인 장치를 이용한다는 점이 다르다. 버퍼링이 하나의 입출력 작업과 그 작업의 연산만 함께 할 수 있는 반면에, 스풀링은 여러 작업의 입출력과 연산을 같이할 수 있다.

1960년대 다중 프로그래밍과 시분할과 다중 처리 및 실시간 시스템

이때 운영체제의 특징은 장치 독립성을 사용한 간편한 하드웨어 관리와 다중 프로그래밍, 시분할, 다중 처리, 실시간을 사용한 시스템의 처리 능력 업그레이드이다. 다중 처리 시스템은 하나의 시스템에서 프로세서를 여러 개 이용하여 처리 능력을 높인 것이다. 실시간 처리 시스템은 바로 응답한다는 특징이 있고, 시분할 시스템은 다중 프로그래밍 시스템에서 프로세서 스케줄링이라는 개념을 추가한 것이다. 일정한 프로세서 이용 시간을 나눠주어 빠른 응답이 가능하므로 사용자와 대화하는 수단으로 여러 프로그램을 수행한다. 그리고 다중 프로그래밍 시스템에서는 여러 프로그램을 메모리에 할당 적재한 후 프로세서를 번갈아 나누어줘 프로세서의 이용을 극대화하면서 여러 프로그램을 동시에 수행한다.

 

이 시기에 미항공사의 SABRE 예약 시스템을 만들었다. 이 시스템은 거리가 먼 사용자가 단말기를 사용하여 중앙 컴퓨터 시스템과 통신하는 트랜잭션 처리 시스템의 효시이다. 트랜잭션 처리 시스템은 사용자와 컴퓨터 시스템이 대화를 하되, 사용자의 상대적 쉬운 요청 사항에 컴퓨터가 빠르게 응답하는 것이다. 여기서 사용자 단말기를 컴퓨터의 온라인이라고 한다.

결론 및 요약

운영체제는 컴퓨터 시스템의 성능을 개선하기 위해 발전해 왔다. 1940년대에는 운영체제가 없었고 사용자는 기계어로 직접 프로그램을 작성했고 1950년대에는 일괄 처리 시스템이 등장하여 작업 준비 시간을 줄였으며, 1960년대에는 다중 프로그래밍, 시분할, 다중 처리, 실시간 시스템이 등장하여 시스템의 처리 능력을 향샹시켰다.