CS Lecture Operating System

운영체제
핵심 구조 한 번에 이해하기

하드웨어와 프로그램 사이에서 자원을 관리하고, 프로세스·메모리·입출력을 조율하는 OS의 핵심 개념을 강의 흐름으로 정리합니다.

Definition & Purpose

운영체제는 무엇을 하는가?

하드웨어소프트웨어를 연결

운영체제는 하드웨어 위에 설치되어 CPU, 메모리, 저장장치 같은 자원을 관리하고 사용자가 프로그램을 실행할 수 있는 환경을 제공합니다.

처리 능력

단위 시간 내 처리량 향상

반환 시간

요청 완료까지 시간 단축

사용 가능도

필요한 자원을 빠르게 제공

신뢰도

정확하고 안정적인 결과

CPU & Memory Hierarchy

빠른 장치일수록 작고 비싸다

CPU

프로그램 실행에 필요한 연산을 수행하는 중앙 처리 장치입니다. OS는 CPU를 어떤 프로세스에 언제 배정할지 결정합니다.

1

레지스터

CPU 내부, 가장 빠른 임시 저장 공간

2

캐시 메모리

CPU와 RAM 사이 속도 차이를 완화

3

RAM

실행 중인 프로그램 정보를 저장하는 휘발성 메모리

4

SSD / HDD

데이터와 프로그램을 오래 보관하는 보조기억장치

Kernel & System Call

커널은 OS의 핵심 엔진

커널의 역할

  • CPU 스케줄링
  • 메모리 관리
  • 입출력 관리
  • 파일 시스템 관리
  • 보안과 하드웨어 추상화

사용자 모드

일반 프로그램이 실행되는 제한된 영역입니다. 하드웨어와 핵심 자원에 직접 접근하지 못합니다.

시스템 콜

사용자 모드 프로세스가 파일, 장치, 프로세스 제어 같은 기능을 커널에 요청하는 공식 통로입니다.

fork(), wait(), read(), write()

Process & Thread

프로세스는 실행 중인 프로그램, 스레드는 실행 흐름

프로세스

OS로부터 독립적인 메모리 공간을 할당받아 실행되는 프로그램 단위입니다.

Code
Data
Heap
Stack

스레드

프로세스 내부에서 실제로 실행되는 흐름의 단위입니다. 여러 스레드는 코드·데이터·힙을 공유하고 각자 스택을 가집니다.

공유 영역

개별 Stack

PCB & Lifecycle

OS는 PCB로 프로세스를 기억한다

PCB에 저장되는 정보

  • 프로세스 상태
  • PID / 부모 PID / 자식 PID
  • Program Counter
  • 스택 포인터
  • 우선순위와 메모리 제한

문맥 교환 후에도 이어서 실행할 수 있는 이유는 실행 위치와 레지스터 정보가 PCB에 저장되기 때문입니다.

프로세스 상태 흐름

생성

준비

실행

종료

대기 상태는 입출력이나 이벤트를 기다리며 CPU를 잠시 내려놓은 상태입니다. 이벤트가 끝나면 다시 준비 큐로 이동합니다.

Multiprocess vs Multithread

여러 작업을 처리하는 두 가지 방식

멀티 프로세스

  • 장점: 한 프로세스 장애가 다른 프로세스에 덜 영향
  • 단점: 메모리 사용량과 문맥 교환 비용 증가
  • 공유: IPC가 필요해 상대적으로 복잡
안정성 중심 구조

멀티 스레드

  • 장점: 자원 효율적이고 전환 오버헤드가 작음
  • 단점: 한 스레드 문제가 프로세스 전체에 영향 가능
  • 공유: 힙·데이터 공유로 동기화 필수
성능·응답성 중심 구조

Context Switching

CPU가 작업을 바꿔도 이어서 실행되는 이유

Process A

Process B

인터럽트나 스케줄러 판단으로 CPU가 실행 대상을 바꿀 때, 현재 프로세스의 문맥을 PCB에 저장하고 다음 프로세스의 문맥을 복원합니다.

저장해야 할 핵심 문맥

Program Counter

다음에 실행할 명령어 주소

Stack Pointer

스택에서 현재 위치 정보

Registers

CPU 내부 계산 상태

Synchronization

공유 자원에는 규칙이 필요하다

경쟁 상태

여러 실행 흐름이 공유 자원에 동시에 접근해 결과가 접근 순서에 따라 달라지는 상태입니다.

임계 영역

공유 자원을 읽거나 수정하므로 한 번에 하나의 흐름만 안전하게 들어가야 하는 코드 구간입니다.

동기화 도구

뮤텍스는 락을 가진 흐름만 접근하게 하고, 세마포어는 허용 가능한 접근 수를 제어합니다.

상호 배제진행한정된 대기

Memory, Virtual Memory & Cache

메모리는 공간을 나누고, 필요한 것만 가져온다

가상 메모리와 페이징

프로그램은 연속된 큰 메모리를 쓰는 것처럼 보지만, OS는 가상 주소를 물리 주소로 매핑하고 페이지 단위로 관리합니다.

Page 1
Page 2
Page 3

페이지 부재가 발생하면 보조기억장치에서 필요한 페이지를 가져옵니다.

교체와 지역성

  • FIFO: 먼저 들어온 페이지를 먼저 제거
  • LRU: 가장 오래 사용하지 않은 페이지 제거
  • LFU: 사용 빈도가 낮은 페이지 제거
  • 지역성: 최근 접근한 데이터나 가까운 주소를 다시 쓸 가능성
캐시는 지역성을 활용해 평균 접근 시간을 줄입니다.

Wrap-up

운영체제 핵심 체크리스트

반드시 설명할 수 있어야 할 것

  • 커널 모드와 사용자 모드가 필요한 이유
  • 프로세스와 스레드의 차이
  • PCB와 문맥 교환의 관계
  • 동기화가 필요한 상황
  • 가상 메모리와 캐시의 목적

한 문장 요약

운영체제는 제한된 하드웨어 자원을 안전하고 효율적으로 나누어, 여러 프로그램이 동시에 실행되는 것처럼 보이게 만드는 핵심 소프트웨어입니다.