Learning
토픽 12 / 21·과목별 관계도

운영체제 관계도

💡

이 관계도는 전체 토픽의 구조와 연결 관계를 보여줍니다. 학습 전에 전체 흐름을 파악하세요.

토픽 마인드맵
mindmap
  root((운영체제<br/>81개 토픽))
    운영체제 기본
      기본 개념
        운영체제
        커널
        마이크로커널 vs 모놀리식 커널
        시스템 호출
        커널 모드 vs 사용자 모드
        부팅 과정
      인터럽트
        인터럽트
        DMA
    프로세스 관리
      프로세스 기본
        프로세스
        프로세스 상태 전이
        좀비 프로세스 / 고아 프로세스
        PCB
        스레드
        멀티스레딩
        컨텍스트 스위칭
      스케줄링
        스케줄링
        스케줄링 알고리즘
        다중 큐 스케줄링
        CFS
        실시간 스케줄링
        기아현상
        우선순위 역전
      IPC
        프로세스 간 통신
        공유 메모리
        메시지 큐 / 파이프 / 소켓
    동기화
      동기화 기본
        동기화
        뮤텍스
        세마포어
        모니터
        스핀락
        RCU
        동시성 프로그래밍 모델
      동기화 문제
        경쟁 상태
        데드락
        데드락 탐지 및 복구
        은행원 알고리즘
        Producer-Consumer 문제
        Reader-Writer 문제
        Dining Philosophers 문제
    메모리 관리
      메모리 기본
        메모리 관리
        MMU
        TLB
        메모리 단편화
        메모리 할당 기법
        메모리 할당 전략
      가상 메모리
        가상 메모리
        페이징
        페이지 교체 알고리즘
        페이지 폴트
        워킹 셋
        스래싱
        세그멘테이션
        Copy-on-Write
      메모리 고급
        메모리 압축
        OOM Killer
        버디 시스템
        슬랩 할당자
        가비지 컬렉션
    파일 시스템
      파일 시스템 기본
        파일 시스템
        i-node
        FAT 파일 시스템
        파일 할당 방식
        VFS
        디스크 스케줄링
      고급 파일 시스템
        Journaling 파일시스템
        파일시스템 비교
        FUSE
    컨테이너/가상화
      컨테이너 기술
        Namespace
        Cgroup
        Cgroup v2
        eBPF
      특수 아키텍처
        Unikernel
        io_uring
    RTOS
      실시간 운영체제
    보안
      보안 및 보호
      ASLR
      보안 운영체제
      Unix 특수 권한
      umask
    특수 목적 운영체제
      모바일 운영체제
      임베디드 운영체제

주요 카테고리별 토픽 수

카테고리토픽 수주요 기술
운영체제 기본8개운영체제, 커널, 마이크로커널 vs 모놀리식, 시스템호출, 커널모드, 부팅 과정, 인터럽트, DMA
프로세스 관리17개프로세스, 프로세스 상태 전이, 좀비/고아 프로세스, PCB, 스레드, 스케줄링, 다중 큐, CFS, 실시간 스케줄링, 기아현상, 우선순위 역전, IPC, 공유 메모리, 메시지 큐/파이프/소켓
동기화14개뮤텍스, 세마포어, 모니터, 스핀락, RCU, 동시성 프로그래밍, 경쟁 상태, 데드락, 데드락 탐지 및 복구, 은행원 알고리즘, 동기화 문제들
메모리 관리17개메모리 관리, MMU, TLB, 메모리 단편화, 메모리 할당 기법/전략, 가상메모리, 페이징, 페이지교체, 페이지 폴트, 워킹 셋, 스래싱, COW, 메모리 압축, OOM Killer, 버디 시스템, 슬랩 할당자, 가비지 컬렉션
파일 시스템9개파일시스템, i-node, FAT, 파일 할당 방식, VFS, 디스크스케줄링, 저널링, 파일시스템 비교, FUSE
컨테이너/가상화6개Namespace, Cgroup, Cgroup v2, eBPF, Unikernel, io_uring
RTOS1개실시간 운영체제
보안5개보안 및 보호, ASLR, 보안 운영체제, Unix 특수 권한, umask
특수 목적 운영체제2개모바일 운영체제, 임베디드 운영체제

총 81개 토픽: (기존 52개 → 29개 추가)

핵심 연관 관계

프로세스/스레드 계층

프로세스 (독립 실행 단위)
    ↓
  프로세스 상태 전이 (생성→준비→실행→대기→종료)
    ↓
  PCB (프로세스 상태 정보)
    ↓
  스레드 (경량 프로세스)
    ↓
  멀티스레딩 (동시 실행)

좀비 프로세스 / 고아 프로세스 (비정상 종료 처리)

스케줄링 진화

고전 알고리즘
  ├─ FCFS (First Come First Serve)
  ├─ SJF (Shortest Job First)
  ├─ RR (Round Robin)
  └─ Priority Scheduling

다중 큐 스케줄링
  ├─ MQ (Multilevel Queue)
  └─ MFQ (Multilevel Feedback Queue)

현대 스케줄러
  └─ CFS (Completely Fair Scheduler)

실시간 스케줄링
  ├─ RM (Rate Monotonic)
  └─ EDF (Earliest Deadline First)

스케줄링 문제
  ├─ 기아현상 (Starvation)
  └─ 우선순위 역전 (Priority Inversion)

동기화 메커니즘

상호배제 도구
  ├─ Mutex (이진 세마포어)
  ├─ Semaphore (카운팅)
  ├─ Spinlock (바쁜 대기)
  ├─ Monitor (고수준 동기화)
  └─ RCU (읽기 최적화)

동기화 문제
  ├─ 경쟁 상태 (Race Condition)
  ├─ Producer-Consumer
  ├─ Reader-Writer
  └─ Dining Philosophers

동시성 프로그래밍 모델
  ├─ 멀티스레딩
  ├─ 이벤트 기반
  └─ Actor 모델

데드락 처리

예방 (Prevention)
  ↓
회피 (Avoidance) → 은행원 알고리즘
  ↓
탐지 및 복구 (Detection & Recovery) → 데드락 탐지 및 복구

메모리 계층

물리 메모리
    ↓
  MMU (주소 변환)
    ↓
  가상 메모리 (추상화)
    ↓
  페이징 / 세그멘테이션
    ↓
  TLB (주소 변환 캐시)
    ↓
  페이지 폴트 (페이지 부재 처리)

메모리 할당/관리 기법

메모리 할당
  ├─ 연속 할당: First Fit, Best Fit, Worst Fit
  ├─ 비연속 할당: 페이징, 세그멘테이션
  ├─ 버디 시스템 (고정 크기 블록)
  └─ 슬랩 할당자 (커널 객체 캐싱)

메모리 문제와 해결
  ├─ 메모리 단편화 → 압축, 페이징
  ├─ 스래싱 → 워킹 셋 모델
  ├─ 메모리 부족 → OOM Killer
  ├─ 메모리 압축 → zswap, zram
  └─ 가비지 컬렉션 → 자동 메모리 회수

페이지 교체 알고리즘

기본 알고리즘
  ├─ FIFO (First In First Out)
  ├─ LRU (Least Recently Used)
  ├─ LFU (Least Frequently Used)
  └─ Optimal (이론적 최적)

고급 기법
  └─ Clock Algorithm (Second Chance)

파일 시스템 계층

사용자 공간
    ↓
  VFS (가상 파일 시스템)
    ↓
  실제 파일 시스템
    ├─ ext4 (Journaling)
    ├─ XFS (대용량)
    ├─ Btrfs (COW 기반)
    ├─ ZFS (엔터프라이즈)
    └─ FAT (호환성)
    ↓
  i-node (파일 메타데이터)
    ↓
  파일 할당 방식 (연속, 연결, 색인)
    ↓
  디스크 스케줄링

컨테이너 핵심 기술

프로세스 격리
  ├─ Namespace (격리)
  └─ Cgroup / Cgroup v2 (리소스 제한)

커널 확장
  ├─ eBPF (동적 프로그래밍)
  └─ io_uring (비동기 I/O)

특수 아키텍처
  └─ Unikernel (단일 주소 공간)

커널 모드 전환

사용자 모드 → 시스템 호출 → 커널 모드
                  ↓
              인터럽트 처리
                  ↓
            컨텍스트 스위칭

부팅 과정

전원 투입 → BIOS/UEFI → 부트로더 → 커널 로드 → init/systemd

보안 체계

운영체제 보안
  ├─ 보안 및 보호 (접근 제어, 권한 관리)
  ├─ ASLR (메모리 주소 랜덤화)
  ├─ 보안 운영체제 (SELinux, AppArmor)
  ├─ Unix 특수 권한 (setuid, setgid, Sticky Bit)
  └─ umask (파일 생성 마스크)

학습 순서 추천

1단계: 기초 (필수)

1. 운영체제 개요

2. 커널, 마이크로커널 vs 모놀리식 커널

3. 시스템 호출, 커널 모드 vs 사용자 모드

4. 프로세스와 PCB, 프로세스 상태 전이

5. 스레드, 멀티스레딩

6. 부팅 과정

2단계: 프로세스 관리

7. 스케줄링 알고리즘

8. 다중 큐 스케줄링 (MQ, MFQ)

9. 컨텍스트 스위칭

10. IPC (프로세스 간 통신), 공유 메모리, 메시지 큐/파이프/소켓

11. 좀비 프로세스 / 고아 프로세스

12. 기아현상, 우선순위 역전

3단계: 동기화

13. 동기화 개념, 경쟁 상태

14. 뮤텍스, 세마포어, 모니터

15. 데드락 (교착상태)

16. 데드락 탐지 및 복구

17. 은행원 알고리즘

18. 동기화 문제들 (Producer-Consumer, Reader-Writer, Dining Philosophers)

19. 동시성 프로그래밍 모델

4단계: 메모리 관리

20. 메모리 관리 기본, 메모리 단편화

21. 가상 메모리

22. 페이징, 세그멘테이션

23. MMU, TLB

24. 페이지 교체 알고리즘, 페이지 폴트

25. 메모리 할당 기법, 메모리 할당 전략

26. 워킹 셋, 스래싱

27. 버디 시스템, 슬랩 할당자

28. 메모리 압축, OOM Killer

29. 가비지 컬렉션

5단계: 파일 시스템

30. 파일 시스템 기본, 파일 할당 방식

31. i-node, FAT 파일 시스템

32. VFS

33. 디스크 스케줄링

34. Journaling 파일시스템

35. 파일시스템 비교 (ext4, XFS, Btrfs, ZFS)

6단계: 고급 주제

36. 인터럽트, DMA

37. CFS (리눅스 스케줄러)

38. 실시간 스케줄링 (RM, EDF)

39. Copy-on-Write

40. Namespace, Cgroup, Cgroup v2

41. eBPF, io_uring

42. FUSE

43. RTOS

44. Unikernel

7단계: 보안

45. 보안 및 보호

46. ASLR

47. 보안 운영체제

48. Unix 특수 권한, umask

8단계: 특수 목적

49. 모바일 운영체제

50. 임베디드 운영체제

시험 출제 포인트

고빈도 주제

  • 프로세스 vs 스레드: 차이점, PCB 구조, 프로세스 상태 전이
  • 스케줄링 알고리즘: FCFS, SJF, RR, Priority 비교
  • 동기화: 뮤텍스 vs 세마포어 vs 모니터, 데드락 4가지 조건
  • 데드락: 예방, 회피, 탐지, 복구 전략, 데드락 탐지 및 복구
  • 가상 메모리: 페이징, 세그멘테이션 차이
  • 페이지 교체: FIFO, LRU, LFU 알고리즘 비교, 페이지 폴트
  • MMU/TLB: 주소 변환 과정
  • 메모리 단편화: 내부/외부 단편화, 해결 기법

중요 개념

  • 컨텍스트 스위칭: 오버헤드, 발생 시점
  • IPC: 공유메모리, 메시지 패싱, 파이프, 소켓
  • 은행원 알고리즘: Safe State 판단
  • Producer-Consumer: 세마포어 구현
  • Copy-on-Write: 메모리 최적화
  • i-node: 파일 메타데이터 구조
  • 기아현상/우선순위 역전: 원인과 해결
  • 경쟁 상태: 임계 영역, 동기화 필요성
  • 메모리 할당 기법: First Fit, Best Fit, Worst Fit
  • 워킹 셋 / 스래싱: 메모리 성능 문제
  • 좀비/고아 프로세스: 발생 원인, 처리 방법
  • 부팅 과정: BIOS/UEFI → 부트로더 → 커널

최신 트렌드

  • CFS: 리눅스 완전 공정 스케줄러
  • Namespace/Cgroup/Cgroup v2: 컨테이너 격리 기술
  • eBPF: 커널 확장 프로그래밍
  • io_uring: 고성능 비동기 I/O
  • FUSE: 사용자 공간 파일시스템
  • VFS: 가상 파일시스템 계층
  • Journaling: 파일시스템 일관성 보장
  • RTOS: 실시간 스케줄링 (RM, EDF)
  • ASLR: 메모리 보안 기법
  • 보안 운영체제: SELinux, AppArmor
  • Unikernel: 경량 단일 목적 OS
  • OOM Killer: 리눅스 메모리 관리
  • 파일시스템 비교: ext4 vs XFS vs Btrfs vs ZFS

동기화 문제 (클래식)

  • Producer-Consumer: 버퍼 관리
  • Reader-Writer: 읽기/쓰기 우선권
  • Dining Philosophers: 데드락 방지

메모리 관리 심화

  • 버디 시스템: 2의 거듭제곱 블록 분할
  • 슬랩 할당자: 커널 객체 캐싱
  • 메모리 압축: zswap, zram
  • 가비지 컬렉션: Mark-and-Sweep, 세대별 GC

마인드맵 활용 팁:

  • 프로세스 관리는 스케줄링과 동기화로 연결
  • 메모리 관리는 물리→가상→페이징 순서로 학습
  • 데드락 4가지 조건과 해결 전략 암기
  • 페이지 교체 알고리즘은 시간복잡도와 함께 이해
  • 컨테이너 기술(Namespace/Cgroup/Cgroup v2)은 현대 OS의 핵심
  • 동기화 문제들은 실제 구현 코드로 연습
  • 메모리 할당 기법(First/Best/Worst Fit)은 계산 문제 출제 가능
  • 보안 토픽(ASLR, 보안 OS, 특수 권한)은 최신 출제 트렌드
  • 파일시스템 비교(ext4/XFS/Btrfs/ZFS)는 특성 비교표로 정리