본문 바로가기

Computer Science/OperatingSystem

운영체제(OS) 역할

운영체제(Operating System) 역할

운영체제는 일반적으로 자원 관리자(Resource manager)라고 정의됩니다. 이는 컴퓨터에 있는 CPU, 메모리, 디스크 등의 자원을 관리하여, 일반 사용자들이 컴퓨터를 사용할 수 있도록 지원해줍니다.

 

위 사진은 운영체제의 초기 상태를 보여줍니다. 이때, test.c라는 파일을 만들어서 저장할 때 운영체제가 어떠한 동작을 하는지 확인해보도록 합시다. 우선, 사용자가 해당 파일을 저장하려고 한다면, 사용자의 저장 요청은 운영체제로 전달되고, 운영체제는 비휘발성 메모리인 디스크에 이 소스코드를 저장합니다. 

 

조금 더 자세히 살펴보자면, 운영체제가 디스크의 일부 공간(4KB, 디스크 블록)을 할당받고, 디스크 블록에 파일의 내용을 저장합니다. 또한, 파일의 속성 정보(만든 시간, 만든 사람, 접근 제어 정보 등)를 저장하기 위한 공간을 inode에 저장합니다. 이후, 파일 이름인 test.c와 (파일의 속성 정보가 들어있는) inode 간에 연결하고, inode와 (파일 내용이 들어있는) 디스크 블록을 연결합니다. 

 

즉, 다시 말해 운영체제는 디스크에서 디스크 블록을 할당 받아 파일의 내용을 기록하고, inode를 할당받아 파일의 속성 정보를 기록한 후, 파일의 이름과 inode와 디스크 블록을 연결합니다. 

 

만일 파일의 크기가 7KB 였다면, 아래 사진과 같이 디스크 블록을 2개 할당받게 됩니다.

 

그럼, 이제 test.c 파일을 컴파일 한 후 실행하려고 할 때 운영체제는 어떠한 동작을 할까요? 

우선, 컴파일을 하여 test 라는 실행 파일을 만들었다고 가정합시다. 그럴 경우, 아래와 같이 디스크 블록에 test 파일에 대한 내용이 담기고, inode에 파일에 대한 속성이 담기게 된 후, 아까와 동일하게 연결 과정을 거칩니다. 

이후, 이 프로그램을 실행하기 위해서 운영체제가 해당 내용을 메모리에 적재시켜줍니다. 그런 후, CPU에 register들이 각각의 instruction을 읽어 동작하게 되는 것입니다. 이때, 스케줄링은 흔히 순서대로 동작하는 Round-Robin 방식을 사용합니다.

 

위 예제를 통해 간단히 운영체제가 하는 일에 대해 알아보았지만, 실제로 운영체제가 하는 일은 매우 많기 때문에 하나씩 알아가보도록 하겠습니다.