티스토리 뷰
운영체제(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
최근에 올라온 글