cs study/운영체제

2. 운영체제 : 운영체제의 역할과 이해

지그농 2026. 2. 11. 18:42

 

해당 내용은 이것이 컴퓨터 과학이다 with CS 기술면접을 학습한 기록입니다.

 

목차
1. 운영체제의 역할
2. 시스템콜과 이중 모드 (User Mode / Kernel Mode)

 

 

1. 운영체제의 역할

운영체제는 매우 많은 종류와 다양한 기능이 있지만, 제공하는 핵심적인 기능은 유사하다.

이러한 핵심적인 기능을 담당하는 부분을 커널이라고 하며,

자동차의 엔진과 같은 핵심부라고 할 수 있다.

 

운영체제의 큰 그림 (출처 : 이것이 취업을 위한 컴퓨터 과학이다)

 

 

운영체제의 전체 구조를 살펴보면,

사용자는 응용 프로그램을 통해 시스템을 사용하고,

그 내부에서 커널이 하드웨어 자원을 관리하며 중간에서 동작한다.

 

운영체제의 핵심적인 역할은 크게 두 가지로 정리할 수 있다.

 

  1. 프로세스 및 스레드 관리
    1. 프로세스와 스레드
    2. 동기화와 교착 상태
  2. 자원 할당 및 관리
    1. CPU 관리 : CPU 스케쥴링
    2. 메모리 관리 : 가상 메모리
    3. 파일 / 디렉터리 관리 : 파일 시스템

1-1. CPU 관리 : CPU 스케쥴링

CPU는 한정된 자원이기 때문에, 여러 프로그램이 동시에 실행되는 환경에서는

모든 프로그램이 CPU를 즉시 할당받아 사용할 수 없다

따라서 어떤 프로그램이 CPU를 먼저 사용하고, 얼마나 오래 사용할지에 대한 기준이 필요하다.

 

운영체제는 이러한 문제를 해결하기 위해 CPU 스케줄링을 통해

실행 중인 프로그램들이 공정하고 합리적으로 CPU를 할당받을 수 있도록 관리한다.

 

이 과정에서 운영체제는 CPU의 할당 순서와 사용 시간을 결정한다.

 

 

1-2. 메모리 관리 : 가상 메모리

운영체제는 새롭게 실행하는 프로그램을 메모리에 적재하고, 

종료된 프로그램은 메모리에 삭제하며,

동시에 메모리 공간이 낭비되지 않도록 효율적으로 관리한다.

 

이러한 메모리 관리를 위해 대부분의 운영체제는 가상 메모리(Virtual Memory) 기술을 활용한다.

가상 메모리는 실제 물리 메모리의 크기보다 더 큰 메모리를 사용할 수 있는 것처럼 보이게 하여,

한정된 메모리 자원을 보다 효율적으로 사용할 수 있도록 한다.

 

 

1-3. 파일/디렉터리 관리 : 파일 시스템

운영체제는 보조기억장치를 효율적으로 관리하기 위해 파일 시스템(File System)을 활용한다.

파일 시스템을 통해 보조기억장치에 저장된 정보는 파일과 디렉터리 단위로 구조화되며,

사용자는 이를 쉽게 접근하고 관리할 수 있다.

 

이러한 구조 덕분에 운영체제는 물리적인 저장 방식과 관계없이,

사용자와 프로그램이 일관된 방식으로 데이터를 다룰 수 있도록 지원한다.

 

 

더보기

운영체제는 CPU, 메모리, 보조기억장치뿐만 아니라 입출력 장치와 캐시 메모리와 같은 다양한 하드웨어 자원도 함께 관리한다.

이를 위해 운영체제는 일부 입출력 장치에 대해 장치 드라이버를 제공하고, 하드웨어에서 발생하는 이벤트를 처리하기 위한 인터럽트 서비스 루틴을 관리한다.

또한 여러 장치와 CPU 캐시 사이에서 데이터 불일치가 발생하지 않도록 캐시 메모리의 일관성을 유지하는 역할도 수행한다.

 

1-4. 프로세스 및 스레드 관리

출처 : 이것이 취업을 위한 컴퓨터 과학이다

 

프로세스는 운영체제에서 실행 중인 프로그램을 의미하며, 독립적인 메모리 공간과 자원을 할당받는다.

 

스레드는 이러한 프로세스 내부에서 실제 작업을 수행하는 실행 흐름 단위로,

하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.

 

메모리에는 여러 프로세스가 동시에 적재될 수 있으며,

운영체제는 각 프로세스에 필요한 자원을 할당하고,

스레드는 할당된 자원을 이용해 프로세스의 작업을 수행한다.

 

운영체제는 이처럼 동시에 실행되는 여러 프로세스와 스레드가 올바르게 동작할 수 있도록

실행 순서를 제어하고, 각 요청에 대해 자원을 적절하게 배분하는 역할을 수행한다.

 


 

2. 시스템콜과 이중모드

운영체제는 사용자를 위한 프로그램이라기보다는,

사용자가 실행하는 응용 프로그램이 올바르게 동작하도록 돕는 프로그램이라고 이해했다.

 

응용 프로그램이 직접 하드웨어 자원에 접근하지 않도록 제어하면서,

필요한 자원을 안전하게 사용할 수 있도록 관리하는 역할을 수행한다

 

이러한 구조를 가능하게 하기 위해 운영체제는 시스템 콜(System Call)과 이중 모드(Dual Mode)라는 개념을 사용한다.


2-1. 시스템콜과 수행 방식

 

 

이미지 출처 : 혼공 - 운영체제란?
 

[운영체제란?] 커널의 개념, 이중 모드와 시스템 호출

운영체제는 사용자를 위한 프로그램이 아닌 사용자가 실행하는 프로그램을 위한 프로그램입니다. 즉, 사용자가 실행하는 응용 프로그램이 올바르게 실행되도록 돕고 필요한 자원을 할당해 주

hongong.hanbit.co.kr

 

 

운영체제 역시 하나의 프로그램이기 때문에 메모리에 적재되어 실행된다.

다만 사용자 프로그램과는 달리 시스템의 안정성과 보안을 책임지는 매우 중요한 프로그램이므로,

메모리 내의 커널 영역(Kernel Space)에 별도로 적재된다.

 

이와 달리 사용자 응용 프로그램이 적재되는 영역을 사용자 영역(User Space)이라고 한다.

사용자 프로그램은 직접 커널 영역의 코드에 접근할 수 없으며,

운영체제의 기능을 사용하기 위해서는 반드시 시스템 콜을 통해 요청해야 한다.

 

시스템 콜은 응용 프로그램이 운영체제의 서비스를 요청하기 위한 공식적인 인터페이스로,

미리 정의된 호출 형태를 가진다.

.

출처 : 이것이 취업을 위한 컴퓨터 과학이다

 

 

시스템 콜이 호출되면 컴퓨터 내부에서는 다음과 같은 과정이 수행된다.

  1. 소프트웨어 인터럽트 발생
  2. CPU의 커널 모드 전환
  3. 운영체제 코드 실행
  4. 사용자 모드로 재전환

이미지 출처 : 혼공 - 운영체제란?

 

운영체제에는 인터럽트를 발생시키는 특정 명령어가 존재하며,

자원에 접근하는 입출력 명령어가 대표적이다.

이러한 명령어에 의해 발생하는 인터럽트를 소프트웨어 인터럽트(Software Interrupt)라고 한다.

 

시스템 콜이 발생하면 CPU는 인터럽트 처리 과정과 마찬가지로
현재 수행 중인 작업의 상태를 백업한 뒤 커널 영역으로 전환하여
인터럽트를 처리하기 위한 운영체제 코드를 실행한다.
이후 작업이 완료되면 다시 사용자 모드로 복귀하여 사용자 영역의 코드 실행을 재개한다.

 


2-2. 이중모드

사용자 영역에 적재된 코드를 실행할 때의 CPU 실행 모드를 사용자 모드(User Mode)라고 하며,

커널 영역에 적재된 운영체제 코드를 실행할 때의 모드를 커널 모드(Kernel Mode)라고 한다.

이미지 출처 : 혼공 - 운영체제란?

 

 

이처럼 CPU의 실행 모드를 사용자 모드와 커널 모드로 구분하여

동작하도록 설계한 구조를 이중 모드(Dual Mode)라고 한다.

이를 통해 사용자 프로그램이 시스템 자원에 직접 접근하는 것을 방지하고,

운영체제는 시스템의 안정성과 보안을 유지할 수 있다.

 

 

이미지 출처 : 혼공 - 운영체제란?

 

사용자 모드는 운영체제의 서비스를 직접적으로 제공받을 수 없는 실행 모드로,
자원에 접근하는 명령어를 실행할 수 없다.

 

반면, 커널 모드는 운영체제의 서비스를 제공받을 수 있는 실행 모드로,
CPU가 커널 모드에서 명령어를 실행할 경우 자원에 접근하는 명령어를 포함한
모든 명령어를 실행할 수 있다.