티스토리 뷰

운영체제(OS) 강의에서 다루는 커리큘럼은 대체로 컴퓨터 구조, 병렬성, 메모리 관리, 자원 관리를 단계적으로 배우게 구성됩니다.

여기서는 일반적인 CS 학부 과정을 기준으로 커리큘럼을 설명할게요:


1️⃣ 운영체제 개요

핵심 개념:

  • 운영체제의 정의와 역할
  • 사용자 ↔ 하드웨어 사이의 인터페이스
  • OS 구조 (커널, 쉘, 사용자 모드/커널 모드)

배경:

  • Batch → Time Sharing → Multiprocessing → Modern OS 발전사

2️⃣ 프로세스 관리

  • 프로세스와 쓰레드 개념
  • 프로세스 상태 (Ready, Running, Blocked)
  • 프로세스 제어 블록 (PCB)
  • 컨텍스트 스위칭
  • 쓰레드의 등장과 멀티스레딩

심화:

  • 멀티프로세싱과 멀티스레딩 비교
  • Thread Pool 패턴

3️⃣ CPU 스케줄링

스케줄링 알고리즘:

  • FCFS (First-Come, First-Served)
  • SJF (Shortest Job First)
  • Priority Scheduling
  • Round Robin
  • Multilevel Queue

평가 지표:

  • 응답 시간, 대기 시간, 처리량, CPU 이용률

심화:

  • 다중 프로세서 스케줄링
  • 실시간 스케줄링 (RTOS)

4️⃣ 동기화 문제

  • 임계구역 문제(Critical Section Problem)
  • 경쟁 상태(Race Condition)
  • 동기화 도구:
    • Mutex, Semaphore, Monitor, SpinLock
  • 고전적 문제:
    • 생산자-소비자 문제
    • 철학자들의 식사 문제
    • 독자-작가 문제

심화:

  • 데커, 피터슨 알고리즘
  • Test-and-Set, Compare-and-Swap

5️⃣ 교착 상태(Deadlock)

  • 필요 조건 (Mutual Exclusion 등)
  • 자원 할당 그래프
  • Deadlock 예방, 회피 (Banker's Algorithm), 탐지, 회복

6️⃣ 메모리 관리

  • 주소 공간 (논리, 물리 주소)
  • MMU (Memory Management Unit)
  • 연속 할당:
    • First Fit, Best Fit, Worst Fit
  • 분산 및 외부 단편화

가상 메모리:

  • 페이징, 세그먼트
  • 페이지 교체 알고리즘:
    • FIFO, LRU, Optimal
  • TLB (Translation Lookaside Buffer)

7️⃣ 스토리지 관리

  • 디스크 구조 (플래터, 실린더, 섹터)
  • 디스크 스케줄링:
    • FCFS, SSTF, SCAN, C-SCAN
  • 파일 시스템:
    • 디렉토리 구조
    • 파일 할당 방식 (연속, 연결, 인덱스)
    • FAT, i-node

8️⃣ 입출력 시스템

  • I/O 장치 개요
  • 동기 vs 비동기 I/O
  • 인터럽트, DMA (Direct Memory Access)
  • 버퍼링, 캐싱

9️⃣ 보안 & 보호

  • 보안과 보호 차이
  • 접근 제어 매트릭스
  • 유저 인증 및 권한 관리
  • 멀웨어 방지 개념

🔍 심화/특수 주제 (선택적으로 다룸)

  • 멀티코어/멀티CPU 환경
  • 분산 시스템 (RPC, 분산 파일 시스템)
  • 클라우드 운영체제 개념
  • 모바일 OS (안드로이드/iOS 구조)
  • 최신: 컨테이너화(Linux cgroup, namespace)

📚 보통 참고하는 교재

  • Operating System Concepts (Silberschatz) — 소위 공룡책
  • Modern Operating Systems (Tanenbaum)
  • Operating Systems: Three Easy Pieces (OSTEP) — 무료 PDF로도 유명

 

'다시 정리하는 CS 이론 > OS' 카테고리의 다른 글

[OS] CPU 스케쥴링 (CPU Scheduling)  (0) 2025.05.03
[OS] 프로세스 관리  (0) 2025.05.03
[OS] 운영체제 개요  (0) 2025.05.03
Comments
최근에 올라온 글