💻 운영체제 기초 (5과목)
운영체제의 목적 4가지 — 처리능력(Throughput) ↑ · 반환시간(Turnaround Time) ↓ ·
신뢰도(Reliability) ↑ · 사용 가능도(Availability) ↑. 이 네 개를 성능 평가 기준으로 그대로 묻는다.
🔄 프로세스 상태 전이
생성(New) ──▶ 준비(Ready) ──디스패치──▶ 실행(Run) ──▶ 종료(Exit)
▲ │
│ ┌─── 시간 종료 ────┘
│ ▼ │ I/O 요청
└──────── 대기(Block) ◀─┘
I/O 완료(Wake-up)
Dispatch 준비 → 실행 | Timeout 실행 → 준비
Block 실행 → 대기 | Wake-up 대기 → 준비
PCB(Process Control Block) — 프로세스마다 하나씩 만들어지는 정보 블록. 프로세스 ID·상태·프로그램 카운터·레지스터·우선순위·자원 정보를 담는다.
문맥 교환(Context Switching) 은 이 PCB를 저장·복원하는 작업이다.
| 구분 | 프로세스 | 스레드 |
|---|---|---|
| 정의 | 실행 중인 프로그램 (자원 할당 단위) | 프로세스 내 실행 흐름 (CPU 할당 단위) |
| 자원 | 독립적인 메모리 공간 | 코드·데이터·힙을 공유, 스택만 별도 |
| 전환 비용 | 큼 | 작음 (경량 프로세스) |
⏱️ CPU 스케줄링
| 구분 | 기법 | 내용 |
|---|---|---|
| 비선점 Non-preemptive 한번 잡으면 끝까지 |
FCFS | 먼저 온 순서대로. 가장 단순, 긴 작업이 앞에 오면 대기 폭증 |
| SJF | 실행 시간이 짧은 것 먼저. 평균 대기시간 최소이지만 긴 작업 기아(Starvation) | |
| 우선순위 | 우선순위 높은 것 먼저. 기아 대책 = 에이징(Aging) | |
| HRN | SJF의 기아를 보완. 우선순위 = (대기시간 + 서비스시간) ÷ 서비스시간 — 값이 클수록 우선 계산 기출 | |
| 선점 Preemptive 뺏을 수 있음 |
RR 라운드로빈 | 시간 할당량(Quantum) 만큼 돌아가며 실행. 시분할 시스템의 기본 |
| SRT | 남은 실행 시간이 가장 짧은 것으로 교체. SJF의 선점형 | |
| 다단계 큐 MLQ / MLFQ | 여러 개의 큐를 우선순위별로 운영. 피드백 큐는 큐 간 이동 가능 |
📖 HRN 계산 기출 — 대기시간 10, 서비스시간 5인 작업의 우선순위는?
(10 + 5) ÷ 5 = 3 — 대기시간이 길수록 값이 커져 기아를 막는다.
(10 + 5) ÷ 5 = 3 — 대기시간이 길수록 값이 커져 기아를 막는다.
🔒 교착상태 (Deadlock)
| 발생 4조건 (모두 성립해야) | 내용 |
|---|---|
| 상호 배제 Mutual Exclusion | 한 자원을 한 프로세스만 사용 |
| 점유와 대기 Hold and Wait | 자원을 쥔 채 다른 자원을 기다림 |
| 비선점 No Preemption | 남의 자원을 강제로 뺏을 수 없음 |
| 환형 대기 Circular Wait | 서로가 서로를 기다리는 원형 고리 |
| 해결 방법 | 내용 |
|---|---|
| 예방 (Prevention) | 4조건 중 하나를 원천 차단. 자원 효율이 떨어짐 |
| 회피 (Avoidance) | 은행원 알고리즘 — 안전 상태일 때만 자원 할당 |
| 발견 (Detection) | 자원 할당 그래프로 교착 여부 탐지 |
| 회복 (Recovery) | 프로세스를 강제 종료하거나 자원을 회수 |
🧠 메모리 관리 · 가상 메모리
| 항목 | 내용 |
|---|---|
| 페이징 | 메모리를 같은 크기로 분할. 내부 단편화 발생 |
| 세그멘테이션 | 논리 단위로 가변 분할. 외부 단편화 발생 |
| 페이지 교체 | FIFO(먼저 들어온 것) · LRU(가장 오래 안 쓴 것) · LFU(사용 빈도 최소) · OPT(최적, 이론상) |
| 스래싱 Thrashing | 페이지 교체가 너무 잦아 실제 처리보다 교체에 시간을 다 쓰는 현상. 대책 = 워킹셋, 다중프로그래밍 정도 조절 |
| 구역성 Locality | 참조가 특정 영역에 몰리는 성질. 시간 구역성(방금 쓴 것 또 씀) / 공간 구역성(가까운 주소 씀) |
💽 디스크 스케줄링
| 기법 | 동작 |
|---|---|
| FCFS | 요청 순서대로. 공평하지만 비효율 |
| SSTF | 현재 헤드에서 가장 가까운 요청 먼저. 안쪽/바깥쪽 기아 발생 |
| SCAN | 엘리베이터 방식 — 한 방향으로 끝까지 갔다가 되돌아옴 |
| C-SCAN | 한 방향만 서비스하고 끝에서 처음으로 점프. 대기시간 균등 |
| LOOK / C-LOOK | 요청이 없으면 끝까지 가지 않고 되돌아옴 |
📝 시험 포인트
• OS 목적 = 처리능력·반환시간·신뢰도·사용가능도
• 비선점 = FCFS·SJF·우선순위·HRN / 선점 = RR·SRT·다단계큐
• HRN = (대기+서비스) ÷ 서비스, 값이 클수록 우선
• 교착 4조건 = 상호배제·점유와대기·비선점·환형대기, 회피 = 은행원 알고리즘
• 페이징 = 내부 단편화 / 세그멘테이션 = 외부 단편화
• 스래싱 대책 = 워킹셋, 구역성은 시간·공간 두 종류
• OS 목적 = 처리능력·반환시간·신뢰도·사용가능도
• 비선점 = FCFS·SJF·우선순위·HRN / 선점 = RR·SRT·다단계큐
• HRN = (대기+서비스) ÷ 서비스, 값이 클수록 우선
• 교착 4조건 = 상호배제·점유와대기·비선점·환형대기, 회피 = 은행원 알고리즘
• 페이징 = 내부 단편화 / 세그멘테이션 = 외부 단편화
• 스래싱 대책 = 워킹셋, 구역성은 시간·공간 두 종류