운영체제/운영체제 시작하기

운영체제란 무엇인가?

iOS Developer 2025. 1. 4. 15:09

운영체제란 무엇인가?

컴퓨터에서 실행되는 모든 프로그램은 반드시 하드웨어 자원을 필요로 한다. 예를 들어, 1+2를 계산하는 프로그램은 CPU가 필요하다. 이미지를 저장하는 프로그램은 하드 디스크가 필요하다.

이처럼 프로그램이 실행되기 위해 필요한 요소(자원)를 시스템 자원 혹은 자원이라고 부른다. CPU, 메모리, 보조기억장치(하드 디스크 등), 입출력 장치 등 컴퓨터 부품은 모두 자원에 해당한다.

그리고 이러한 자원을 프로그램이 적절히 사용할 수 있도록 할당해 주고, 프로그램이 올바르게 실행되도록 관리하는 특별한 프로그램이 바로 운영체제(Operating System)이다.


커널 영역과 사용자 영역

운영체제도 인터넷 브라우저나 게임처럼 결국 하나의 프로그램이다. 다만 아주 특별하기 때문에 부팅 시 메모리에 적재될 때 별도의 공간인 커널 영역(kernel space)에 올라간다.
반면, 사용자가 직접 실행하는 응용 프로그램(워드 프로세서, 메모장, 인터넷 브라우저 등)은 사용자 영역(user space)에 적재되어 동작한다.

운영체제는 커널 영역에 상주하며, 사용자 영역의 프로그램들이 필요로 하는 자원을 할당하고 안정적으로 실행되도록 돕는다.

image

 

(그림출처: 혼자 공부하는 컴퓨터 구조+운영체제)


운영체제의 역할

1) 메모리 자원 관리

메모리에는 보통 여러 개의 응용 프로그램이 동시에 적재된다. 워드 프로세서, 인터넷 브라우저, 메모장 등을 동시에 실행하면 최소 3개의 프로그램이 사용자 영역에 존재하는 셈이다.
프로그램이 실행되려면 일정한 메모리 공간이 필요한데, 이 공간을 어떤 주소부터 어떤 범위까지 할당할지를 결정하는 것이 운영체제의 중요한 업무이다. 실행이 끝난 프로그램의 메모리를 해제하는 것도 운영체제가 담당한다.

image

 

(그림출처: 혼자 공부하는 컴퓨터 구조+운영체제)


2) CPU 자원 관리

CPU는 여러 프로그램이 동시에 요청할 수 있는데, 이때 어떤 프로그램부터 CPU를 사용하게 하고, 얼마나 오랫동안 CPU를 사용할지를 결정하는 일 역시 운영체제가 맡는다.
한 프로그램만 CPU를 독점하면 다른 프로그램은 제대로 동작할 수 없으므로, 운영체제는 공정하고 효율적인 CPU 스케줄링을 수행해 프로그램들이 원활히 처리되도록 한다.

image

 

(그림출처: 혼자 공부하는 컴퓨터 구조+운영체제)


3) 입출력(I/O) 자원 관리

입출력 자원(프린터, 키보드, 디스플레이 등)을 여러 프로그램이 동시에 쓰려 할 때 충돌이 일어나지 않도록 조정하는 것도 운영체제의 기능이다. 예를 들어 워드 프로세서와 메모장이 동시에 프린터를 사용하면 문제가 생기므로, 운영체제가 순차적으로 사용하도록 제어한다.

imageimage

 

(그림출처: 혼자 공부하는 컴퓨터 구조+운영체제)


운영체제와 정부의 비유

운영체제를 정부에 비유하곤 한다. 정부는 한 나라의 토지, 인력, 자금 같은 자원을 효율적으로 배분하고, 국민이 따라야 할 규칙을 제정해 국가를 유지한다.
운영체제도 마찬가지로, 응용 프로그램에 자원을 효율적으로 배분하고, 프로그램들이 지켜야 할 규칙을 마련해 컴퓨터 시스템 전체를 관리한다.

또한 정부에 여러 부처가 나뉘어 존재하듯, 운영체제 역시 각기 다른 자원을 관리하는 기능 모듈로 구성된다. 가령, 어떤 모듈은 CPU를 관리하고,어떤 모듈은 메모리를 관리하고, 또 다른 모듈은 하드 디스크를 관리한다.

image

 

(그림출처: 혼자 공부하는 컴퓨터 구조+운영체제)


정리

운영체제는 응용 프로그램과 하드웨어 사이에서 핵심적인 중재자 역할을 수행한다. 프로그램에 필요한 자원을 적절히 할당하고, 여러 프로그램이 동시에 돌아가도 충돌 없이 관리하며, 컴퓨터 시스템이 안정적으로 동작하도록 돕는다.

이러한 역할 덕분에 우리는 여러 작업을 동시에 수행하면서도 프로그램들을 유연하게 사용할 수 있다.