운영체제 2장
- 운영체제 종류와 역할 -
운영체제의 종류는 운영체제의 발전 과정을 보면 알 수 있다. 맨 처음의 컴퓨터는 운영체제를 가지고 있지 않았다. 사용자가 일일이 모든 상황을 컨트롤 해야만 컴퓨터를 사용할 수 있었다. 이런 점에서 매우 불편함을 느꼈고 컴퓨터 자체에서 관리를 해주는 프로그램을 만들 필요성을 있었다. 따라서 최초의 운영체제가 탄생했다. 처음에 나온 운영체제는 일괄처리 운영체제이다. 처리해야 할 데이터를 일정 기간 또는 일정량 정리하여 일괄 처리하는 것이었다. 하지만 일괄처리만으로는 불편함을 없앨 수 없었다. 그래서 나온 것이 다중프로세서 운영체제이다.
다중 프로그래밍 시스템에서 메모리에 더 많은 유저 프로그램을 가동시키고 싶었다. 또한 한 명의 유저 프로그램이 쉬면 다른 유저의 프로그램이 실행할 수 있도록 관리하여 CPU와 I/O를 할당해주어 효율을 높이고자 하였다. 그래서 CPU 스케쥴링과 메모리 관리를 해줄 수 있는 다중 프로세서 운영체제가 만들어진 것이다.
이후 나온 시스템이 실시간 시스템이다. 실시간 운영체제인 RTOS를 사용한다. 다른 말로는 대화형이라고도 한다. 상호 작용이 가능하기 때문이다. 이 시스템의 운영체제는 한번에 여러 사람이 동시에 사용할 수 있게 해준다. 정해진 Time Deadline에 의해 천 분의 일초 정도 같은 아주 짧은 시간마다 switching을 해주어 마치 여러 동시에 모든 작업이 수행되고 있는 것처럼 보여준다. 실제로는 천 분의 일초마다 강제 전환으로 프로세서를 바꾸어가면서 CPU가 할당되고 있는 상황이다. 이렇게 되면 메모리 관리가 중요해지고 하드디스크의 일부를 main memory처럼 인식할 수 있게 하는 가상메모리가 사용된다. 또한 동기화라는 개념이 중요시 여겨진다. 현재 공장 자동화나 군사, 항공 등 실시간 반응이 필요한 분야에서 많이 사용되고 있다.
이제 운영체제가 하는 역할을 알아보자
앞선 장에서 운영체제를 정부에 비유했다. 그만큼 운영체제는 컴퓨터에 있어서 없어서는 알될 만큼 많은 역할을 하고 있다.
Process management
프로세스는 메모리에서 실행 중인 프로그램이다. 보통의 경우 컴퓨터가 실행되면 아직 대부분의 프로그램들은 하드디스크에 보관이 되어있다. 그러다 우리가 더블클릭을 하거나 다른 동작을 하여 프로그램을 실행하게 되면 하드디스크에서 프로그램이 메모리로 옮겨지게 된다. 그러면 프로세스가 되는 것이다. 운영체제는 이렇게 올라온 프로세스에게 CPU를 할당해야한다. 그런데 CPU는 하나이기 때문에 어떤 프로세스를 실행시킬지는 운영체제가 결정을 한다. 따라서 Process management라고 하면 CPU의 스케쥴링을 해주는 역할을 한다고 할 수 있다.
Main memory management
앞에서 말한 프로그램이 프로세스가 되려면 메인 메모리로 프로그램이 올라와야한다. 운영체제는 이 과정에서 역할을 한다. 프로그램에게 메모리 공간을 할당하고 다시 하드디스크로 보내주는 역할을 수행하는 것도 운영체제이다. 메모리의 공간이 한정되어 있으므로 프로세스를 잘 적재하는 것도 중요한 역할이 된다.
File management
파일이라고 하는 것은 Track/sector로 구성된 디스크를 논리적 관점으로 표현한 것이다. 파일을 생성하고 삭제, 디렉토리 생성, 삭제 등 파일에 관련된 역할을 수행하는 것도 운영체제가 한다.
Secondary storage management
하드디스크나 플래시 메모리와 같은 보조기억장치에 대한 관리도 운영체제가 맡아서 한다. 빈 공간에 대한 관리나 저장 공간 할당, 디스크 스케쥴링과 같은 역할을 수행한다.
I/O device management
장치 드라이브나 입출력 장치의 성능 향상을 위한 역할을 수행한다. 프로세스가 I/O의 사용이 필요하면 적절하게 연결해주는 역할을 한다.
이외에도 운영체제는 보호나 네트워크 등 하는 역할이 많이 있다. 하지만 제일 중요하게 하는 역할은 바로 프로세스 관리와 메모리 관리 부분이다. 우리는 이 부분을 중점적으로 배울 것이다.
메인 메모리에 연결된 파란색 선들이 운영체제가 관리를 하는 대상이된다. (운영체제 이름의 파란선 제외)
'운영체제' 카테고리의 다른 글
운영체제 6장 - 프로세스 관리(3) : 쓰레드 및 프로세스 동기화 - (0) | 2017.04.17 |
---|---|
운영체제 5장 - 프로세스 관리(2) : 스케줄링 - (0) | 2017.04.16 |
운영체제 4장 - 프로세스 관리(1) - (2) | 2017.04.16 |
운영체제 3장 - 이중 모드 및 하드웨어 보호 - (0) | 2017.04.16 |
운영체제 1장 - 운영체제란? - (1) | 2017.04.13 |