1. 프로세스


프로세스라는 주제는 크게 두 가지 소주제로 나뉩니다.

  1. 프로세스 관리
    프로세스: 하나의 프로세스에 대한 메모리 레이아웃, 프로세스 계층
    스레드와 동시성: 하나의 프로세스는 내부적으로 여러 개의 실행 스레드를 가집니다.
    CPU 스케줄링: 실행되는 프로세스가 수십~수백개가 생길텐데, 어떤 프로세스를 우선으로 실행(처리)할까요? 🤔
  2. 프로세스 동기화
    프로세스간 데이터 동기화: 경쟁 상태(race condition), lock-free 알고리즘
    데드락: 요새 CPU는 멀티코어기 때문에 여러 프로세스가 병렬로 실행되는데, 이때 프로세스들끼리 서로가 가진 자원을 탐낸다면?

2. 메모리


메모리라는 주제는 크게 두 가지 소주제로 나뉩니다.

  1. 메인 메모리(RAM)
    메모리 레이아웃: 프로세스마다 독립된 메모리 공간을 보장해줘야 합니다.
    Swapping: 스케줄링으로 인해 A프로세스가 B프로세스에게 자리를 내어줘야한다면, A프로세스가 가지고 있던 메모리 공간은?
    단편화: 프로세스마다 할당되는 메모리 공간의 크기는 다릅니다. 프로세스가 메모리에 적재-해제되는 과정에서 발생되는 공간의 틈은?
    페이징(Paging): 프로세스가 사용하는 메모리 공간이 물리적으로 연속되어야할 필요가 있을까요? 🤔
  2. 가상 메모리
    Virtual Memory Compression

3. 스토리지 및 I/O 디바이스


I/O 디바이스도 크게 두 가지 소주제로 나뉩니다.

  1. 스토리지(Storage)
    Hard-drive 스케줄링: Flash, SSD와 같은 비휘발성 메모리에서의 스케줄링
    RAID
  2. 그 외 I/O 디바이스
    동기/비동기 그리고 blocking/nonblocking I/O

4. 파일 시스템


 

5. 보안과 보호 (Security and Protection)


 

'Operating System > Theory' 카테고리의 다른 글

[OS] 데드락 (Deadlock)  (0) 2020.07.08
[OS] 가상 메모리 (Virtual Memory)  (0) 2019.01.12