[CS] 운영체제, 프로세스
Computer Science

[CS] 운영체제, 프로세스

반응형

참 많이 들어본 용어이고 그냥 어렴풋이 알고 있는 단어들이지만 설명이나 정확하게 알고 있지는 않았는데 그 단어의 의미를 알게 되어 좋은 기회 였던것 같습니다.

자체(하드웨어)는 스스로 할 수 있는 일이 없습니다. 하드웨어의 설계를 바탕으로 하드웨어에게 일을 시켜야만 그 의미가 있습니다. 하드웨어에게 일을 시키는 주체가 바로 운영체제입니다.

그냥 운영체제 하면 윈도우, 맥 떠올리기 쉽지만 이렇게 정의해서 설명하기 쉽지 않습니다.

 

1.  운영체제

 

운영체제가 없다면, 응용 프로그램이 실행될 수 없습니다. 응용 프로그램은 컴퓨터를 이용해 다양한 작업을 하는 것이 목적인고, 운영체제는 응용 프로그램이 하드웨어에게 일을 시킬 수 있도록 도와줍니다. 하드웨어를 구성하는 일을 하는 CPU, 자료를 저장하는 RAM, 디스크 등의 시스템 자원을 관리하는 주체가 바로 운영체제입니다.

  • 프로세스 관리(CPU)
  • 메모리 관리
  • I/O(입출력) 관리 (디스크, 네트워크 등)

운영체제의 구조 모식도

 

2.  응용 프로그램: 운영체제를 통해 컴퓨터에게 일을 시키는 것

 

응용 프로그램이 운영체제를 통해 컴퓨터에게 일을 시키려면, 컴퓨터를 조작할 수 있는 권한을 운영체제로부터 부여받아야 합니다. 권한을 부여받고 난 후에는, 운영체제가 제공하는 기능을 이용할 수 있습니다. 응용 프로그램이 운영체제와 소통하기 위해서는, 운영체제가 응용 프로그램을 위해 인터페이스(API)를 제공해야 합니다. 응용 프로그램이 시스템 자원을 사용할 수 있도록, 운영체제 차원에서 다양한 함수를 제공하는 것을 시스템 콜(System call)이라고 부릅니다.

스마트폰에서 사용자에게 어떤 디바이스(카메라 등)의 사용을 허락받는 화면을 본 적이 있을 겁니다. 이와 마찬가지로, 응용 프로그램 역시 운영체제가 프린터 사용을 허가해주지 않는다면 사용할 수 없습니다. 워드프로세서 프로그램이 프린터를 사용해서 인쇄하기 위해서는, 워드프로세서 프로그램은 운영체제로부터 프린터 사용에 대한 권한을 부여받아야 합니다.

응용 프로그램이 프린터 사용에 대한 권한을 획득한 후에는, 프린터를 사용할 때 필요한 API를 호출해야 합니다. 이 API는 시스템 콜로 이루어져 있습니다.

 

모든 응용 프로그램이 시스템의 자원을 마음대로 사용한다면, 해커에 의한 공격에 무방비한 상태가 됩니다. 악의적인 목적을 가진 프로그램이 디스크의 모든 민감한 정보에 접근하거나, 내 스마트폰의 특정 앱이 카메라를 아무때나 실행해서 촬영한다고 생각하면 끔찍합니다. 따라서, 응용 프로그램은 권한에 대한 관리가 필요합니다. 또한 여러 사람이 하나의 기기를 사용하는 경우에는 사용자를 관리하는 일도 매우 중요합니다.

응용 프로그램이 실행되고, 시스템 자원을 사용할 수 있도록 권한 사용자를 관리합니다.

 

소위 공룡책이라 불리는 Operating System Concepts 책을 추천합니다. 정리된 한글 문서도 존재합니다.

 

3.  프로세스(Process)

 

운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스라고 부릅니다. 사용자가 애플리케이션을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당 받아 애플리케이션의 코드를 실행합니다. 이때 실행되는 애플리케이션을 프로세스라고 부릅니다. 예를 들어 Chrome 브라우저를 두 개 실행하면, 두 개의 프로세스가 생성됩니다. 이렇게 하나의 애플리케이션은 여러 프로세스(다중 프로세스)를 만들기도 합니다. 그렇기에 작업 관리자에 들어가면 프로세스 목록을 확인 할 수 있습니다.

반응형