디스크 스케줄링과 UNIX
목차 22
디스크 스케줄링은 디스크 요청 큐에서 헤드 이동(탐색 시간)을 최소화하는 순서로 요청을 재정렬하는 기법이다. 4과목 운영체제에서 디스크 스케줄링 총 이동 거리 계산(특히 SCAN)·SSTF 단독 기아·C=Circular 분별, 그리고 UNIX 커널/쉘 자리 분별·i-node 함정은 거의 매 회차 출제되는 빈출이다. 36강 페이지 교체(★FLLON OS★)가 메모리에서 어떤 페이지를 내보낼지였다면, 37강 디스크 스케줄링(★FSSCL★)은 디스크에서 어떤 요청부터 헤드를 움직일지 — 같은 자원 스케줄링 무대가 메모리에서 디스크로 옮겨온 단원이다.
핵심 암기: 접근 시간 3요소 ★탐회전★(탐색>회전>전송) · 디스크 스케줄링 5종 ★FSSCL★(FCFS·SSTF·SCAN·C-SCAN·LOOK) · SSTF 단독 기아 · C=Circular=한 방향 · UNIX 3구성 ★커쉘파★ · 파일시스템 4영역 ★부슈아데★ · i-node에 파일 이름 없음(디렉토리가 관리)
PART A — 디스크 구조와 접근 시간
디스크 구조 4용어 ·디스크 구조·
[정의] 데이터가 디스크의 어디에 어떻게 저장되는지를 나타내는 기본 용어 = 플래터·트랙·섹터·헤드. LP 레코드판 하나면 한 번에 잡힌다 — 판이 돌고(플래터·회전), 바늘(헤드)이 원하는 곡(트랙)으로 이동해 음을 읽는다.
[흐름] 구조 한눈에
┌─ 트랙(track) : 플래터 위에 새겨진 동심원
│ ┌─ 섹터(sector) : 트랙을 부채꼴로 쪼갠 최소 저장 단위
▼ ▼
◎ 플래터(platter) : 데이터가 자기로 저장되는 원반
▲
└─ 헤드(head) : 데이터를 읽고 쓰는 바늘
여러 플래터의 같은 번호 트랙을 수직으로 묶으면 = 실린더(cylinder)
[표] 4용어 + LP판 비유
| 용어 | 정의 | LP판 비유 |
|---|---|---|
| 플래터(Platter) | 데이터가 자기로 저장되는 원반 | LP 레코드 판 |
| 트랙(Track) | 플래터 위 동심원 | LP의 동심원 음구 |
| 섹터(Sector) | 트랙을 부채꼴로 쪼갠 최소 저장 단위 | 피자 한 조각 |
| 헤드(Head) | 읽고 쓰는 바늘 | 턴테이블 바늘 |
🔑 암기 "트랙=원(동심원) / 섹터=부채꼴 조각(최소 단위) / 여러 플래터의 같은 트랙 묶음=실린더"
⚠️ 함정 "트랙=부채꼴 / 섹터=동심원" ❌(→ 자리 바꿔치기·트랙이 동심원·섹터가 부채꼴 조각) / "섹터가 트랙보다 크다" ❌(→ 섹터는 트랙을 쪼갠 최소 단위).
🎯 빈출 용어 정의 매칭. 간헐 출제지만 접근 시간·스케줄링의 전제 용어.
접근 시간 3요소 — ★탐회전★ ·접근 시간·시험 1순위·
[정의] 디스크에서 데이터 한 번 읽는 시간 = 탐색 + 회전 + 전송. 머리글자를 모으면 ★탐회전★.
디스크 1회 접근 시간 = 탐색 시간(최대) + 회전 지연(중간) + 전송 시간(최소)
[표] 3요소 분해
| 순서 | 이름 | 영문 | 한 줄 정의 | 비중 |
|---|---|---|---|---|
| ① | 탐색 시간 | Seek Time | 헤드를 원하는 트랙으로 이동 | 최대 ★ |
| ② | 회전 지연 | Rotational Latency | 원하는 섹터가 헤드 아래로 올 때까지 | 중간 |
| ③ | 전송 시간 | Transfer Time | 실제로 데이터를 읽거나 쓰는 시간 | 최소(μs) |
💡 도서관에서 책 찾기 — 서가까지 걷기(탐색·최대) → 책이 눈에 들어오기(회전) → 꺼내 읽기(전송·최소). 걷는 시간이 가장 길듯, 디스크도 탐색이 최대 비중이라 스케줄링의 목표가 탐색 최소화다.
🔑 암기 "★탐회전★ — 탐색 > 회전 > 전송 / 탐색이 최대 비중 / 스케줄링 목표 = 탐색 최소화"
⚠️ 함정 "회전 지연이 가장 큰 비중" ❌(→ 탐색이 최대) / 보기에 "응답 시간(Response Time)"이 끼어 있으면 그건 CPU 스케줄링 용어 — 디스크 접근 시간 3요소엔 들어가지 않는다(34강).
🎯 빈출 "디스크 접근 시간에 해당하지 않는 것" 부정형으로 응답 시간을 끼워 넣는 함정이 단골. 거의 매 회차.
PART B — 디스크 스케줄링 5종 ★FSSCL★
디스크 스케줄링이란 + ★FSSCL★ 5종 개관 ·스케줄링·
[정의] 디스크 스케줄링 = 디스크 요청 큐에서 헤드 이동(탐색 시간)을 최소화하는 순서로 요청을 재정렬하는 기법. 요청을 들어온 순서대로만 처리하면 헤드가 디스크 위를 멀리 왕복해 전체 소요 시간이 두세 배까지 늘어난다.
[분류] 5종을 한 두음으로 — ★FSSCL★
| 글자 | 알고리즘 | 한 줄 정의 | 비유 | 기아 |
|---|---|---|---|---|
| F | FCFS | 선착순 — 요청 순서 그대로 | 식당 번호표 | X |
| S | SSTF | 가장 가까운 요청 우선 | 엘리베이터 수리 기사 | O |
| S | SCAN | 한 방향 끝까지 + 끝에서 반대로 | 일반 엘리베이터 | X |
| C | C-SCAN | 한 방향만 + 끝에서 처음으로 점프 | 에스컬레이터 | X |
| L | LOOK | SCAN과 같으나 요청 있는 곳까지만 | "끝까지 안 감" | X |
[흐름] 이 강의 공통 계산 예제 (5종을 같은 조건으로 비교)
요청 큐(들어온 순서) : 98, 183, 37, 122, 14, 124, 65, 67 (총 8개)
현재 헤드 : 53 / 디스크 범위 : 0 ~ 199 / 방향 : 증가(바깥쪽)
트랙 번호로 정렬하면
헤드 53 아래 : 37, 14
헤드 53 위 : 65, 67, 98, 122, 124, 183 (증가 방향이라 이쪽부터)
🔑 암기 "★FSSCL★ — 선착순(F) / 가까운 것(S·기아 단독) / 양방향(S) / 한방향(C) / 요청까지만(L). 보기 첫 글자로 1초 분류"
🎯 빈출 ① 총 이동 거리 계산(SCAN 1순위) ② 기아 발생 여부(SSTF 단독) ③ 알고리즘↔특징 짝짓기 오류. 세 유형이 매 회차 1~2문항.
💡 36강 페이지 교체 6종 ★FLLON OS★ ↔ 37강 디스크 스케줄링 5종 ★FSSCL★ — 같은 자원 스케줄링 무대가 메모리에서 디스크로 옮겨온 짝꿍 두음.
F · FCFS — 선착순 ·스케줄링·
[정의] FCFS(First-Come First-Served) = 요청이 들어온 순서 그대로 처리. 재정렬·끼어들기 없음.
FCFS 이동 (큐 순서 그대로)
53 → 98 → 183 → 37 → 122 → 14 → 124 → 65 → 67
45 + 85 + 146 + 85 + 108 + 110 + 59 + 2 = 총 이동 640
[표] 장단점
| 장점 | 단점 |
|---|---|
| 구현 가장 간단 | 헤드 이동 거리 큼(요청이 흩어지면 최악) |
| 기아 없음 — 들어온 순서 보장·공평 | 탐색 시간 최적화 전혀 없음 |
🔑 암기 "FCFS = 선착순·구현 최간단·절대 기아 X·이동 거리 큼"
⚠️ 함정 "FCFS는 기아(Starvation) 발생" ❌ → 선착순이라 모든 요청이 반드시 순서대로 처리되어 절대 기아 없음. 100% 함정.
🎯 빈출 기아 여부 판별의 기준선. SSTF와 짝지어 "기아 X ↔ O"로 출제.
S · SSTF — 가장 가까운 요청 우선 ·스케줄링·시험 1순위·
[정의] SSTF(Shortest Seek Time First) = 현재 헤드에서 탐색 거리가 가장 짧은(가까운) 요청을 매번 먼저 처리.
SSTF 이동 (매 시점 가장 가까운 요청)
53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 183
12 + 2 + 30 + 23 + 84 + 24 + 2 + 59 = 총 이동 236
[표] 시험 1순위 — 기아 발생 여부 5종 비교
| 알고리즘 | 기아? | 이유 |
|---|---|---|
| FCFS | X | 들어온 순서대로 반드시 처리 |
| SSTF | O | 가까운 것만 우선 — 5종 중 단독 기아 |
| SCAN | X | 양끝까지 훑음 → 모든 요청 처리 보장 |
| C-SCAN | X | 한 방향 순환 → 처리 보장 |
| LOOK | X | SCAN과 같은 순환 구조 |
💡 인기 많은 치과 — 가까운 환자만 봐주면 멀리서 오신 어르신은 하루 종일 대기실. 새 요청이 계속 들어오면 먼 트랙은 영원히 밀린다 = 기아(Starvation).
🔑 암기 "SSTF = 가까운 것 우선 / 5종 중 단독 기아 / 기아 보이면 SSTF·SSTF 아니면 기아 X (양방향 즉답)"
⚠️ 함정 "SSTF는 회전 지연 최소화" ❌ → 이름이 Shortest Seek(탐색) Time First, 탐색 시간 최소화다(회전 아님·단어 바꿔치기) / "SSTF는 공평하다" ❌ → 불공평·기아 발생.
🎯 빈출 "SSTF 설명으로 틀린 것"에서 ③ 기아 안 함 / ④ 공평을 끼워 넣는다. 매 회차 1순위.
S · SCAN — 양방향(엘리베이터) ·스케줄링·계산 1순위·
[정의] SCAN = 한 방향으로 끝(디스크 경계)까지 이동하며 처리하고, 끝에 닿으면 반대 방향으로 돌아오며 나머지를 처리. 별명 엘리베이터 알고리즘.
SCAN 이동 (증가 방향 먼저 → 끝 199 찍고 → 반대로)
위로 끝까지 : 53 → 65 → 67 → 98 → 122 → 124 → 183 → 199(끝)
반대 방향 : 199 → 37 → 14
공식 = (끝점 − 시작점) + (끝점 − 반대편 최소값)
= (199 − 53) + (199 − 14)
= 146 + 185 = 총 이동 331
🔑 암기 "SCAN = 양방향·끝까지 / 공식 (끝−시작) + (끝−반대편 최소값) / 정렬·빼기 두 번이면 암산"
⚠️ 함정 "SCAN은 한 방향만 처리" ❌ → 한 방향은 C-SCAN, SCAN은 양방향(끝 찍고 반대로).
🎯 빈출 총 이동 거리 계산의 1순위. 끝(경계)까지 가느냐(SCAN)·마지막 요청까지만 가느냐(LOOK)로 답이 갈린다 — 같은 조건에서 LOOK이면 199까지 안 가고 183에서 턴 → 299로 떨어진다.
C · C-SCAN — 한 방향 + 점프 ·스케줄링·시험 1순위·
[정의] C-SCAN(Circular SCAN) = 한 방향으로 끝까지 처리한 뒤, 서비스 없이 처음(반대 끝)으로 점프해 같은 방향으로만 다시 처리. SCAN의 "양방향 대기 편차"를 줄여 더 공평하다.
C-SCAN 이동 (한 방향만 + 끝에서 처음으로 점프)
53 → 65 → 67 → 98 → 122 → 124 → 183 → 199(끝) 이동 146
199 ──────── 0 (점프·서비스 X) 이동 199
0 → 14 → 37 이동 37
────────────────────────────────────────────────────────
총 이동 = 146 + 199 + 37 = 382
[비교] SCAN ↔ C-SCAN
| 항목 | SCAN | C-SCAN |
|---|---|---|
| 방향 | 양방향(위↔아래) | 한 방향만 |
| 끝 도달 후 | 반대 방향으로 서비스 | 처음으로 점프 후 같은 방향 |
| 대기 편차 | 큼 | 작음(공평) |
🔑 암기 "★C=Circular=한 방향★ — 끝 도달 후 처음으로 점프, 점프 거리(199)도 합산"
⚠️ 함정 "C-SCAN이 양방향으로 왕복" ❌ → 그건 SCAN 설명. C가 붙으면 Circular = 한 방향만. 매년 짝짓기 1문항.
🎯 빈출 SCAN↔C-SCAN 방향 자리 바꿔치기. C 글자 하나로 즉답.
L · LOOK — 요청까지만 ·스케줄링·
[정의] LOOK = SCAN과 같으나 디스크 끝까지 가지 않고 그 방향의 마지막 요청까지만 가고 턴. "요청이 183까지인데 왜 199까지 가?" — 쓸데없이 끝까지 안 간다. (C-LOOK = C-SCAN의 LOOK판·점프도 마지막 요청 위치 기준.)
LOOK 이동 (마지막 요청 183에서 턴 — 199까지 안 감)
위로 요청까지 : 53 → 65 → 67 → 98 → 122 → 124 → 183(턴!)
반대 방향 : 183 → 37 → 14
공식 = (마지막 요청 − 시작) + (마지막 요청 − 반대편 최소)
= (183 − 53) + (183 − 14)
= 130 + 169 = 총 이동 299 (SCAN 331 대비 −32)
🔑 암기 "끝까지 → SCAN/C-SCAN / 요청까지만 → LOOK/C-LOOK. 헤드 이동 최소는 SSTF·LOOK이지만, SSTF는 기아라 실무 1순위는 LOOK"
⚠️ 함정 "LOOK은 디스크 끝까지 이동" ❌ → 요청 있는 곳까지만(끝 경계까지 안 감).
🎯 빈출 SCAN과의 분별(끝 경계 도달 여부). 현실 OS 디스크 드라이버가 자주 채택하는 방식.
PART C — 저장장치와 스케줄링의 변화
HDD vs SSD와 저장 계층 ·저장장치·🌟 여기만·
[정의] HDD(플래터+헤드·기계식)는 탐색 시간이 수 ms로 크지만, SSD(플래시 메모리·전자식)는 탐색 시간이 거의 0이다. 그래서 SSD에선 헤드 이동을 줄이는 디스크 스케줄링의 중요성이 상대적으로 떨어진다.
[표] HDD vs SSD
| 항목 | HDD | SSD |
|---|---|---|
| 구조 | 플래터+헤드(기계식) | 플래시 메모리(전자식) |
| 탐색 시간 | 수 ms(가장 비쌈) | 거의 0(즉시) |
| 스케줄링 필요성 | 매우 중요 | 상대적으로 덜 중요 |
| 내구성 | 충격 약함 | 충격 강함 + 쓰기 마모 한도 |
💡 자주 쓰는 데이터(Hot)는 빠른 SSD/NVMe에, 가끔 쓰는 데이터(Warm)는 HDD+SSD 혼합, 드물게 쓰는 데이터(Cold·백업·아카이브)는 값싼 HDD에 — 계층형 스토리지도 36강 지역성·자원 배치와 같은 발상이다.
🔑 암기 "HDD=탐색 비쌈→스케줄링 중요 / SSD=탐색 거의 0→스케줄링 덜 중요 (디스크가 사라지는 건 아님·HDD 계층 여전히 존재)"
⚠️ 함정 "SSD는 탐색 시간이 HDD보다 길다" ❌ → SSD는 탐색 시간이 거의 0으로 훨씬 짧다.
🎯 빈출 간헐 출제. HDD/SSD 탐색 시간 비교 한 줄만 잡으면 충분.
PART D — UNIX 구조와 파일시스템
UNIX 등장과 6특징 ·UNIX·
[정의] UNIX = 1969년 AT&T 벨연구소에서 켄 톰슨·데니스 리치가 만든 운영체제. C언어로 작성된 최초의 OS로, UNIX를 만들기 위해 C언어도 함께 개발했다.
[표] UNIX 정체성 + 계열
| 항목 | 내용 |
|---|---|
| 등장 | 1969년 · AT&T 벨연구소 |
| 작성 언어 | C언어(UNIX와 동시 개발) |
| 6특징 | 이식성·소스 공개·멀티유저·멀티태스킹·계층적 파일시스템·파이프 철학 |
| 계열 | 정체 |
|---|---|
| UNIX 정통 | System V · BSD · Solaris(공식 인증) |
| Linux | UNIX에 영감받은 오픈소스(UNIX-like) |
| macOS | 공식 UNIX 인증(BSD·Darwin 기반) |
| Android | Linux 커널 기반 → UNIX-like |
🔑 암기 "UNIX = 1969·벨연구소·톰슨/리치·C언어로 작성된 최초 OS / 이식성 좋음(C언어라 다른 기종 이식 쉬움)"
⚠️ 함정 "UNIX는 어셈블리로 작성" ❌(→ C언어) / "macOS는 UNIX 계열이 아니다" ❌(→ 공식 UNIX 인증 OS).
🎯 빈출 작성 언어(C)·이식성·계열 매칭. 간헐.
UNIX 3구성 — ★커쉘파★ ·UNIX·
[정의] UNIX는 정확히 3덩어리 = 커널·쉘·파일시스템. 머리글자 ★커쉘파★.
사용자
│ 명령 입력
▼
[ 쉘 Shell ] ── 명령어 해석기 (사용자↔커널 다리·여러 개·교체 O)
│ 시스템 호출(system call)
▼
[ 커널 Kernel ] ── 자원 관리·하드웨어 제어 (하나·상시·교체 X)
│ 직접 제어
▼
[ 하드웨어 ]
[표] ★커쉘파★ 3구성
| 글자 | 구성요소 | 한 줄 정의 | 비유 |
|---|---|---|---|
| 커 | 커널(Kernel) | 하드웨어 제어·자원 관리 | CEO + 인프라팀 |
| 쉘 | 쉘(Shell) | 사용자 명령 해석·전달 | 비서·창구 직원 |
| 파 | 파일시스템 | 데이터 저장·관리 구조 | 문서 보관 창고 |
🔑 암기 "★커쉘파★ — 커널(하드웨어)·쉘(명령 해석)·파일시스템(저장). UNIX 3대 구성 끝"
⚠️ 함정 "UNIX 3대 구성에 컴파일러 포함" ❌ → 컴파일러는 사용자 공간 도구이지 OS 구성이 아니다. 3구성은 커쉘파뿐.
🎯 빈출 3구성 매칭·컴파일러 끼워넣기 함정.
커 · 커널 — UNIX의 심장 ·UNIX·시험 1순위·
[정의] 커널(Kernel) = 하드웨어와 직접 소통하는 OS 본체. 시스템에 하나만 존재하고, 부팅 시 가장 먼저 메모리에 올라가 종료까지 상주한다.
[표] 커널 5대 역할 (33~36강 회수)
| # | 역할 | 비고 |
|---|---|---|
| 1 | 프로세스 관리 | 생성·스케줄링(33~34강) |
| 2 | 메모리 관리 | 할당·가상 메모리(35~36강) |
| 3 | 파일시스템 관리 | i-node |
| 4 | 장치 드라이버 | 디스크 스케줄링 |
| 5 | 시스템 호출 처리 | read·write·fork |
💡 커널은 하드웨어를 캡슐화한다 — 일반 프로그램은 하드웨어에 직접 접근하지 못하고, 반드시 커널의 시스템 호출을 거쳐야 한다.
🔑 암기 "커널 = 하나·핵심·상시 상주·하드웨어 직접·교체 불가 / 5대 역할(프로세스·메모리·파일시스템·장치·시스템 호출)"
⚠️ 함정 "커널이 여러 개" ❌(→ 하나) / "커널은 세션만 메모리 상주" ❌(→ 종료까지 상주·세션은 쉘) / "쉘이 하드웨어 직접 통신" ❌(→ 커널만 직접).
🎯 빈출 커널 역할 "옳은 것 고르기"에서 ③ 하드웨어 직접 제어가 정답. 매 회차.
쉘 · 명령어 해석기 ·UNIX·시험 1순위·
[정의] 쉘(Shell) = 사용자가 입력한 명령어를 해석해 커널에 전달하는 명령어 해석기(Command Interpreter). 커널과 정반대 성질 — 여러 개 존재하고, 세션 동안만 실행되며, 자유롭게 교체할 수 있다.
[표] 쉘 종류
| 쉘 | 특징 |
|---|---|
| sh | UNIX 원조 쉘(Bourne Shell) |
| bash | sh 강화판 — 리눅스 기본 |
| csh | C언어 문법 기반(BSD) |
| ksh | sh + csh 합침(엔터프라이즈) |
| zsh | 자동완성·플러그인 — macOS 기본 |
💡 쉘의 핵심 기능은 파이프(|) — 한 명령의 출력을 다른 명령의 입력으로 연결한다. 리다이렉션(>·<)·스크립트도 쉘의 기능이다.
🔑 암기 "쉘 = 여러 개·인터페이스·세션 단위·하드웨어 간접·교체 자유 / 핵심 기능 = 파이프·리다이렉션"
⚠️ 함정 "쉘이 부팅 시 가장 먼저 로드되어 종료까지 상주" ❌ → 그건 커널 설명. 쉘은 세션 단위(로그인~로그아웃) / "쉘은 하나만 존재" ❌(→ 여러 개).
🎯 빈출 "쉘 설명으로 틀린 것"에 커널 성질(부팅 로드·상시 상주·하드웨어 직접)을 끼워 넣는다. 매 회차.
커널 vs 쉘 — 6대 분별 ·UNIX·매 회차 빈출·
[정의] 매 회차 나오는 커널/쉘 비교를 6항목 분별표 한 장으로. 6항목 중 하나만 자리가 정반대면 그게 함정 정답이다.
[표] 커널 vs 쉘 6대 분별
| 항목 | 커널 | 쉘 |
|---|---|---|
| 역할 | 하드웨어 제어·자원 관리 | 사용자 명령 해석 |
| 위치 | OS 핵심(코어) | 사용자↔커널 인터페이스 |
| 수 | 하나만 | 여러 개 선택 |
| 메모리 상주 | 종료까지 상시 | 세션 동안만 |
| 하드웨어 접근 | 직접 | 간접(커널 경유) |
| 교체 가능성 | 불가 | 자유 |
🔑 암기 "커널 = 하나·핵심·상시·직접·교체X / 쉘 = 여러개·인터페이스·세션·간접·교체O"
⚠️ 함정 6항목 중 한 줄만 커널↔쉘 자리를 뒤바꿔 출제. "상시 상주"·"부팅 시 먼저"·"하드웨어 직접"이 쉘 자리에 있으면 전부 커널 자리(100% 함정).
🎯 빈출 매년 최소 1문항. 자리 분별만 정확하면 즉답.
파일시스템 4영역 — ★부슈아데★ ·파일시스템·
[정의] UNIX 파일시스템은 정확히 4영역 = 부트 → 슈퍼 → i-node → 데이터. 머리글자 ★부슈아데★이고, 이 순서가 디스크 저장 순서(앞→뒤)와 일치한다.
부트 → 슈퍼 → i-node → 데이터 (디스크 앞쪽부터 차례대로)
[표] ★부슈아데★ 4영역
| 글자 | 영역 | 저장 내용 |
|---|---|---|
| 부 | 부트 블록(Boot Block) | 부팅 시 필요한 부트로더 코드(디스크 가장 앞) |
| 슈 | 슈퍼 블록(Super Block) | 파일시스템 전체 관리 정보(전체 크기·빈 블록 수·블록 크기) |
| 아 | i-node 리스트 | 각 파일의 메타데이터(파일당 1개·파일 이름 제외) |
| 데 | 데이터 블록(Data Block) | 파일의 실제 내용 |
🔑 암기 "★부슈아데★ — 부팅 / 전체 정보 / 파일별 메타데이터 / 실제 내용 (디스크 저장 순서)"
⚠️ 함정 "i-node에 파일 데이터(실제 내용)가 들어있다" ❌(→ 메타데이터만·내용은 데이터 블록) / "슈퍼 블록이 개별 파일 권한 정보" ❌(→ 슈퍼는 전체 관리·개별 파일은 i-node).
🎯 빈출 영역↔역할 매칭. "메타데이터+전체"→슈퍼 / "메타데이터+파일별"→i-node 자리 분별.
아 · i-node — 단골 함정 1순위 ·파일시스템·시험 1순위·
[정의] i-node = 각 파일의 메타데이터를 담는 블록(파일당 1개). 크기·소유자·권한·시간·데이터 블록 주소는 들어 있지만 — 파일 이름은 없다. 이름은 디렉토리가 관리한다.
[흐름] 이름은 디렉토리, 메타데이터는 i-node
디렉토리(이름 ↔ 번호 매핑) i-node(파일별 메타데이터)
report.txt → 12345 ───▶ i-node 12345 : 크기·UID·권한·시간·링크 수
photo.jpg → 67890 ───▶ + 데이터 블록 주소 ──▶ 실제 내용
※ 파일 이름은 i-node에 없음!
[표] i-node가 담는 것
| 담음 ⭕ | 안 담음 ❌ |
|---|---|
| 파일 크기·종류 | 파일 이름(→ 디렉토리) |
| 소유자 UID/GID·접근 권한 | 파일의 실제 내용(→ 데이터 블록) |
| 생성·수정·접근 시간·링크 수 | |
| 데이터 블록 주소 |
💡 주민등록증(i-node) — 주민번호로 신원 확인은 되지만, 사람을 이름으로 검색할 땐 가족관계등록부(디렉토리)에서 이름→번호로 찾는다.
🔑 암기 "i-node = 파일별 메타데이터(파일당 1개) / 파일 이름은 ★제외★ — 디렉토리가 이름↔i-node 매핑 관리"
⚠️ 함정 "i-node에 파일 이름 포함" ❌(→ 디렉토리) / "파일 하나에 i-node 여러 개" ❌(→ 파일당 1개) / "i-node 번호를 사용자가 지정" ❌(→ OS 자동 부여) / 변형 — "파일 이름을 바꿔도 i-node 번호는 그대로" ✅(정상·이름은 디렉토리에만 있으니까).
🎯 빈출 "메타데이터 저장 구조" 용어 찾기 → i-node. 파일 이름 포함 여부가 단골 함정 1순위.
기출 다지기
[기출 1 출제] 디스크 접근 시간(Disk Access Time)에 해당하지 않는 것은? (부정형)
- ① 탐색 시간(Seek Time)
- ② 회전 지연 시간(Rotational Latency)
- ③ 전송 시간(Transfer Time)
- ④ 응답 시간(Response Time)
정답 및 해설 보기
정답: ④ 응답 시간(Response Time)
디스크 접근 시간 3요소 = ★탐회전★(탐색+회전+전송). 응답 시간은 CPU 스케줄링의 평가 척도라 디스크와 무관하다.
| 선지 | 디스크 접근 시간? | 설명 |
|---|---|---|
| ① 탐색 시간 | O | 헤드를 원하는 트랙으로 이동(최대 비중) |
| ② 회전 지연 | O | 원하는 섹터가 헤드 아래로 |
| ③ 전송 시간 | O | 실제 데이터 읽기/쓰기 |
| ④ 응답 시간 | X | 정답 — CPU 스케줄링 용어(34강) |
🔑 ★탐회전★(탐색+회전+전송)에 응답(Response)이 끼어 있으면 100% 정답. 디스크엔 응답 시간이 없다.
[기출 2 출제] SSTF 디스크 스케줄링에 대한 설명으로 틀린 것은? (부정형)
- ① 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리한다.
- ② FCFS에 비해 평균 탐색 시간이 짧다.
- ③ 모든 요청을 공평하게 처리하여 기아 현상이 발생하지 않는다.
- ④ 특정 위치에 요청이 집중되면 멀리 있는 요청은 무한 대기할 수 있다.
정답 및 해설 보기
정답: ③ 기아가 발생하지 않는다 (틀림)
SSTF는 가까운 요청만 우선해 멀리 있는 요청이 무한 대기 — 5종 중 단독 기아. ③과 ④는 정반대 진술이라 둘 다 참일 수 없다.
| 선지 | 옳음? | 설명 |
|---|---|---|
| ① 가까운 요청 우선 | O | SSTF 정의 |
| ② FCFS보다 짧음 | O | 탐색 거리 감소 |
| ③ 기아 X·공평 | X | 정답 — 기아 O·불공평이 SSTF 최대 약점 |
| ④ 무한 대기 가능 | O | ③의 반대(정상 진술) |
🔑 "SSTF=공평/기아 없음"은 100% 함정. 기아 보이면 SSTF·SSTF면 기아.
[기출 3 출제] 다음 조건에서 SCAN 알고리즘으로 처리할 때 총 헤드 이동 거리는? (계산) 요청 큐 : 98, 183, 37, 122, 14, 124, 65, 67 / 현재 헤드 : 53 / 증가 방향 / 디스크 0~199
- ① 208
- ② 236
- ③ 331
- ④ 380
정답 및 해설 보기
정답: ③ 331
SCAN = 증가 방향으로 끝(199)까지 간 뒤 반대로. 공식 = (끝점−시작점) + (끝점−반대편 최소값).
[1] 증가 방향 정렬 : 65, 67, 98, 122, 124, 183
[2] 끝(199)까지 : 53 → … → 183 → 199 이동 = 199−53 = 146
[3] 반대 방향 : 199 → 37 → 14 이동 = 199−14 = 185
[총 이동] : 146 + 185 = 331
| 선지 | 판정 | 함정 |
|---|---|---|
| ① 208 | X | — |
| ② 236 | X | SSTF 값(같은 큐)을 끼운 distractor |
| ③ 331 | O | SCAN 정답 |
| ④ 380 | X | — |
🔑 같은 큐를 LOOK으로 풀면 199까지 안 가고 183에서 턴 → (183−53)+(183−14)=299(보기에 없음). 끝 경계 도달 여부로 SCAN(끝까지)↔LOOK(요청까지)을 가른다.
[기출 4 출제] 디스크 스케줄링 알고리즘과 특징의 짝이 잘못된 것은? (짝짓기 오류형)
- ① FCFS — 요청이 들어온 순서대로 처리
- ② SSTF — 현재 헤드에서 가장 가까운 요청 우선
- ③ C-SCAN — 헤드가 양방향으로 왕복하며 서비스
- ④ LOOK — SCAN과 유사하나 끝까지 가지 않음
정답 및 해설 보기
정답: ③ C-SCAN — 양방향 왕복 (틀림)
양방향 왕복은 SCAN의 설명. C-SCAN은 C=Circular=한 방향만 — 끝 도달 후 서비스 없이 처음으로 점프한다.
| 선지 | 옳음? | 설명 |
|---|---|---|
| ① FCFS 선착순 | O | 정의 그대로 |
| ② SSTF 가까운 것 | O | 정의 그대로 |
| ③ C-SCAN 양방향 | X | 정답 — SCAN 설명·C-SCAN은 한 방향만 |
| ④ LOOK 끝까지 안 감 | O | SCAN↔LOOK 분별 정상 |
🔑 C 보이면 → Circular → 한 방향만. 매년 분별 1문항 즉답.
[기출 5 출제] UNIX에서 커널(Kernel)의 역할로 옳은 것은? (옳은 것 고르기)
- ① 사용자가 입력한 명령어를 해석하여 프로그램을 실행시킨다.
- ② 파일 이름을 관리하고 디렉토리 구조를 제공한다.
- ③ 프로세스·메모리·파일시스템 관리 등 하드웨어 자원을 직접 제어한다.
- ④ 응용 프로그램의 소스 코드를 기계어로 번역한다.
정답 및 해설 보기
정답: ③ 하드웨어 자원을 직접 제어한다
커널 = 하드웨어와 직접 소통하며 프로세스·메모리·파일시스템 등 5대 역할을 총괄.
| 선지 | 실제 담당 | 설명 |
|---|---|---|
| ① 명령 해석→실행 | 쉘 | 커널 X — 쉘의 역할 |
| ② 파일 이름·디렉토리 | 디렉토리 | i-node도 아님(디렉토리가 매핑) |
| ③ 하드웨어 직접 제어 | 커널 | 정답 — 5대 역할 총괄 |
| ④ 소스→기계어 | 컴파일러 | OS 구성 아님(사용자 공간 도구) |
🔑 커널 = 하드웨어와 직접 소통 / 쉘 = 사용자와 직접 소통. 이 한 줄이 ①·③ 자리를 가른다.
[기출 6 출제] UNIX 쉘(Shell)에 대한 설명으로 틀린 것은? (부정형)
- ① 사용자가 입력한 명령어를 해석하여 커널에 전달한다.
- ② Bourne Shell, C Shell, Bash 등 여러 종류가 있다.
- ③ 시스템 부팅 시 가장 먼저 메모리에 로드되어 종료 시까지 상주한다.
- ④ 파이프, 리다이렉션 등의 기능을 지원한다.
정답 및 해설 보기
정답: ③ 부팅 시 가장 먼저 로드·종료까지 상주 (틀림)
"부팅 시 로드 + 상시 상주"는 커널 자리. 쉘은 세션 단위(로그인~로그아웃)로 실행된다.
| 선지 | 옳음? | 설명 |
|---|---|---|
| ① 명령 해석→커널 전달 | O | 쉘의 핵심 역할 |
| ② 여러 종류 존재 | O | sh·bash·csh·ksh·zsh |
| ③ 부팅 로드+상주 | X | 정답 — 커널 설명·쉘은 세션 단위 |
| ④ 파이프·리다이렉션 | O | 쉘의 강력한 기능 |
🔑 "상시 메모리 상주"·"부팅 시 가장 먼저"·"하드웨어 직접"이 쉘 자리에 있으면 전부 커널 — 100% 함정.
[기출 7 출제] UNIX 파일시스템에서 파일의 메타데이터(크기, 소유자, 권한, 데이터 블록 주소 등)를 저장하는 구조는? (용어 찾기)
- ① 슈퍼 블록
- ② 부트 블록
- ③ 데이터 블록
- ④ i-node
정답 및 해설 보기
정답: ④ i-node
i-node = 파일별 메타데이터 블록(단, 파일 이름은 제외 — 디렉토리가 관리).
| 선지 | 영역 | 실제 역할 |
|---|---|---|
| ① 슈퍼 블록 | 슈퍼 | 파일시스템 전체 관리(개별 X) |
| ② 부트 블록 | 부트 | 부트로더 코드 |
| ③ 데이터 블록 | 데이터 | 파일의 실제 내용(메타 X) |
| ④ i-node | i-node | 정답 — 파일별 메타데이터(이름 제외) |
🔑 "메타데이터 + 파일별" → i-node / "메타데이터 + 전체" → 슈퍼 블록. 변형 — "파일 이름 바꿔도 i-node 번호는 그대로" ✅(정상).
한 장 요약
| 주제 | 암기·핵심 | 결정 카드 |
|---|---|---|
| 접근 시간 3요소 | ★탐회전★ | 탐색(최대)>회전>전송 / "응답"은 34강 CPU 함정 |
| 스케줄링 5종 | ★FSSCL★ | 선착순(F)·가까운것(S)·양방향(S)·한방향(C)·요청까지만(L) |
| 기아 발생 | SSTF 단독 | 나머지 4종 모두 기아 X |
| C-SCAN | C=Circular=한 방향 | 양방향은 SCAN / C-SCAN은 한 방향+점프 |
| HDD vs SSD | 탐색 시간 | HDD 큼→스케줄링 중요 / SSD 거의 0→덜 중요 |
| UNIX 3구성 | ★커쉘파★ | 커널·쉘·파일시스템(컴파일러 X) |
| 커널 vs 쉘 | 하나·상시·직접·교체X ↔ 여러개·세션·간접·교체O | 자리 하나만 뒤집히면 함정 정답 |
| 파일시스템 4영역 | ★부슈아데★ | 부트→슈퍼→i-node→데이터(디스크 저장 순서) |
| i-node | 파일별 메타데이터 | 파일 이름 제외(디렉토리가 관리)·파일당 1개 |
| 5종 종합 (헤드 53, 큐 98·183·37·122·14·124·65·67, 0~199, 증가) | 처리 순서 | 총 이동 | 기아 |
|---|---|---|---|
| F = FCFS | 큐 순서 그대로(98→183→…→67) | 640 | X |
| S = SSTF | 53→65→67→37→14→98→122→124→183 | 236 | O |
| S = SCAN | 53→…→183→199(끝)→37→14 | 331 | X |
| C = C-SCAN | 53→…→183→199(끝)→0(점프)→14→37 | 382 | X |
| L = LOOK | 53→…→183(턴)→37→14 | 299 | X |
| 계산 공식 | 식 |
|---|---|
| SCAN | (끝점−시작점) + (끝점−반대편 최소값) = (199−53)+(199−14) = 331 |
| LOOK | (마지막 요청−시작) + (마지막 요청−반대편 최소) = (183−53)+(183−14) = 299 |
| C-SCAN | (끝까지) + (점프 199) + (처음~나머지) = 146+199+37 = 382 |
| 함정 5쌍 | 정답 |
|---|---|
| SSTF는 회전 지연 최소화 | 탐색 시간(Seek) 최소화 |
| SCAN은 한 방향만 | C-SCAN이 한 방향 / SCAN은 양방향 |
| LOOK은 끝까지 이동 | 요청 있는 곳까지만 |
| FCFS는 기아 발생 | 선착순이라 기아 X (SSTF만 기아) |
| i-node에 파일 이름 포함 | 디렉토리가 이름↔i-node 매핑(i-node엔 이름 없음) |
🎯 합격 한 끗: 디스크는 ★FSSCL★ 5종 + SSTF 단독 기아 + C=Circular=한 방향 + SCAN 총 이동 계산 네 축, UNIX는 ★커쉘파★ + 커널/쉘 6대 분별 + ★부슈아데★ + i-node에 파일 이름 없음 네 축이 37강 출제의 거의 전부다. 계산은 SCAN이 1순위 — 끝(경계)까지 가는지(SCAN)·마지막 요청까지만 가는지(LOOK)로 답이 갈리니 공식 두 줄을 손에 익혀두자. 36강 ★FLLON OS★(메모리 페이지 교체)가 37강 ★FSSCL★(디스크 요청 스케줄링)로 이어지며 운영체제(33~37강) 단원이 마무리된다. 다음은 4과목의 또 다른 축인 프로그래밍 언어 활용(컴파일러·인터프리터)으로 넘어간다.
