[CS] 운영체제 (컴퓨터 과학 수업 18/40)

Ham S. J·2022년 12월 3일
0

CS

목록 보기
13/25

초기 컴퓨터는 프로그램 가동에 인력(입력이나 다음 프로그램 실행 등)이 필요하였다.
하지만 컴퓨터는 빠른 속도로 개발되고 개선되어 이 인력이 투입되는 과정이 오히려 비효율적여졌다.
그래서 자동으로 다음 프로그램을 실행하는 등의 수행을 입력할 필요가 있었고,
이는 '운영체제'라는 존재의 필요성을 느끼게된 계기이자 운영체제가 개발되도록 야기시켰다.

OS(운영체제, Operating System)는 또한 하나의 프로그램이다.

단 하드웨어에 대한 특별한 권한을 가지고 있어 다른 프로그램을 실행, 관리하는 일을 수행할 수 있다.

초기 OS는 1950년대에 컴퓨터의 기능이 강력해지면서 시작되었다.
일괄처리(Batch Processing)을 구현한 OS가 등장했고, 사람이 순서에 맞게 다음 프로그램을
실행시키지 않아도 알아서 그 기능을 구현하였다.

컴퓨터가 대중화되면서 다양한 하드웨어와의 결합(펀칭 입력기, 프린터 등)이
이루어졌으며 이는 다양한 오류를 발생시켰다.
이러한 오류는 OS가 소프트웨어 프로그램과 하드웨어 주변 장치의 중개자로서 역할을
해야할 필요성을 대두시켰으며 실제로 OS는 중개자로서의 단계를 밟게 된다.

Device Driver(장치 구동기)라 불리는 API로 소프트웨어에 대한 추상화를 제공했고
표준화된 매커니즘으로 I/O(입, 출력 하드웨어)들과의 대화가 가능해졌다.

Atlas는 많은 프로그램이 하나의 CPU에서 동시에 진행되며 시간을 공유할 수 있도록 했다.
이는 멀티태스킹이라 불리는 기능이다.

하나의 CPU에서 동시에 많은 프로그램을 돌리기 위해선 메모리 할당이라는 장애물을 넘어야 했다.
이는 각 프로그램에 자체 메모리 블록을 할당함으로써 기능이 구현되었지만,
이러한 메모리 블럭이 비순차적일 수 있어 혼란을 야기할 수 있다는 한계도 또한 생겼다.

사람은 어떻게든 해결책을 찾아낸다는 말 처럼,
이는 곧 운영체제가 해당 메모리의 주소를 '가상화' 함으로써 해결되었다.

실제로 할당되는 메모리 주소가 아닌, 가상화한 숫자를 부여함으로써
개발자들에게 메모리가 연속적으로 보이게 하고, 유연성을 부여하며 혼란을 중재했다.

가상 메모리(Virtual Memory)와 동적 메모리 할당(Dynamic Memory Allocation)의 개념이 등장했다.
프로그램 별로 메모리가 할당된다는 것은 메모리의 안정성을 부여하고 바이러스나
악의적 소프트웨어로부터 보호하는데도 유용하게 사용된다.

Atlas의 한계점을 느낀 개발자들은 Unix라는 OS를 개발한다.
이 Unix가 가진 대표적인 두 가지 도구는 '커널'과 추가적으로 제공되는 프로그램, 라이브러리이다.
커널은 I/O를 다루는 기능인 메모리 관리와 멀티태스킹 등의 OS 핵심 기능을 했다.

Atlas를 개발하며 오류와 관련된 코드만 작성했다고 표현하던 Unix의 개발자는
'커널 패닉'이라는 개념을 등장시켰다. '패닉' 상태는 오류가 발생하면 사용자에게 컴퓨터를 '부팅'시키라고뜨는 상태로 실제로 오류가 발생할 경우 '패닉' 상태에 들어가며 부팅을 요구했다.

1981년, MicroSoft의 MS-DOS가 초기 가정용 컴퓨터를 거의 '점령'하는 OS였으나,
최근에는 Apple OS X, Linux, Window 10, IOS, Android등의 운영체제가 다양하게 생태계를 이루고 있다.

profile
즐겁게 귀엽게 코딩합시다 !

0개의 댓글

관련 채용 정보