4과목 프로그래밍언어활용 ② — 운영체제·네트워크
과목4 20문항의 절반이 여기서 나온다. 기출 지문 등장 횟수는 계층(28) · 페이지(25) · 네트워크(18) · IP(16) · Java 를 제외한 TCP(13) · IPv6(12) · LAN(11) · OSI(10).
언어 문항은 코드를 굴려야 하지만, 이쪽은 표 몇 개와 계산 절차 몇 개로 끝난다. 그래서 시간당 점수가 가장 잘 나오는 구간이다. 계산이 나오는 곳(HRN·페이지 교체·서브네팅·chmod)은 예제로 절차를 적었다.
A. 운영체제
1. 운영체제의 역할과 구성
목적 처리 능력(Throughput) 향상 · 반환 시간 단축 · 사용 가능도 향상 · 신뢰도 향상
커널(Kernel) 프로세스·메모리·파일·장치 관리를 담당하는 핵심부
쉘(Shell) 사용자 명령을 해석해 커널에 전달하는 명령 해석기
함정 — 쉘은 명령 해석기, 커널은 자원 관리자다. 이 둘을 바꿔 낸 보기가 단골이다(커널 5회 · 쉘 4회).
2. 프로세스
프로세스 실행 중인 프로그램. 자기만의 주소 공간을 갖는다
스레드 프로세스 안의 실행 흐름. 코드·데이터·힙을 공유하고 스택은 각자
PCB 프로세스 제어 블록 — 프로세스 상태·PC·레지스터·우선순위·자원 목록
상태 전이
생성(New) → 준비(Ready) ⇄ 실행(Run) → 종료(Terminated)
↑ ↓
└─ 대기(Blocked/Wait)
| 전이 | 이름 | 언제 |
|---|---|---|
| 준비 → 실행 | Dispatch | 스케줄러가 CPU를 배정 |
| 실행 → 준비 | Timeout(Preemption) | 시간 할당량 소진 |
| 실행 → 대기 | Block | I/O 요청 등 |
| 대기 → 준비 | Wake-up | I/O 완료 |
함정 — 대기(Blocked) 상태에서 곧바로 실행으로 가지 않는다. 반드시 준비를 거친다.
3. CPU 스케줄링
비선점(Non-preemptive) FCFS · SJF · HRN · 우선순위 · 기한부
선점(Preemptive) RR · SRT · 다단계 큐 · 다단계 피드백 큐
| 기법 | 규칙 |
|---|---|
| FCFS | 도착 순서대로 — 가장 단순, 긴 작업이 앞에 오면 대기가 길어진다 |
| SJF | 실행 시간이 짧은 것 먼저 — 평균 대기 시간이 최소, 긴 작업은 무한 연기 위험 |
| SRT | SJF의 선점형 — 남은 시간이 더 짧은 작업이 오면 교체 |
| RR(라운드로빈) | 같은 시간 할당량(Time Quantum)씩 돌아가며. 할당량이 너무 작으면 문맥 교환 오버헤드 |
| HRN | 아래 공식으로 우선순위 계산 |
| 다단계 큐 | 큐를 여러 개 두고 큐마다 다른 정책 |
| 에이징(Aging) | 오래 기다린 작업의 우선순위를 올려 무한 연기를 방지 |
HRN 계산 — 값이 클수록 우선순위가 높다
우선순위 = (대기 시간 + 서비스 시간) ÷ 서비스 시간
예 — 대기 5·서비스 5 →
(5+5)/5 = 2/ 대기 10·서비스 5 →(10+5)/5 = 3/ 대기 20·서비스 20 →(20+20)/20 = 2. 답은 두 번째 작업(값 3). 계산해 보면 짧은 작업이 유리하되 오래 기다린 작업도 배려되는 구조라는 걸 알 수 있다.
4. 교착 상태(Deadlock)
발생 4조건(모두 동시에 성립해야)
상호 배제(Mutual Exclusion) · 점유와 대기(Hold and Wait)
비선점(Non-preemption) · 환형 대기(Circular Wait)
| 해결 | 방법 |
|---|---|
| 예방(Prevention) | 4조건 중 하나를 원천적으로 제거 — 자원 낭비가 크다 |
| 회피(Avoidance) | 은행원 알고리즘 — 안전 상태를 유지하며 할당 |
| 발견(Detection) | 자원 할당 그래프로 순환을 탐지 |
| 회복(Recovery) | 프로세스를 강제 종료하거나 자원을 선점해 회수 |
함정 — 은행원 알고리즘은 회피(Avoidance) 기법이다. 예방으로 분류한 보기가 나온다.
5. 메모리 관리 — 배치 전략 계산
반입(Fetch) 요구 반입(필요할 때) · 예상 반입(미리)
배치(Placement) 최초 적합 · 최적 적합 · 최악 적합
교체(Replacement) 아래 페이지 교체 알고리즘
| 전략 | 규칙 |
|---|---|
| 최초 적합(First Fit) | 위에서부터 처음 만나는 충분한 공간 |
| 최적 적합(Best Fit) | 들어갈 수 있는 공간 중 가장 작은 곳 → 내부 단편화 최소 |
| 최악 적합(Worst Fit) | 들어갈 수 있는 공간 중 가장 큰 곳 |
계산 예 — 빈 공간이 위에서부터
10KB, 20KB, 8KB, 30KB이고 12KB 를 요청하면 최초 적합 = 20KB 영역, 최적 적합 = 20KB 영역(12 이상 중 최소), 최악 적합 = 30KB 영역. 요청이 9KB 라면 최초 = 10KB, 최적 = 10KB, 최악 = 30KB 로 갈린다. 기출은KB(18회)를 지문에 그대로 쓰며 이 계산을 낸다.
6. 단편화
내부 단편화 할당된 공간이 요청보다 커서 남는 부분
외부 단편화 남은 공간의 총합은 충분한데 연속 공간이 없어 못 쓰는 상태
해결 통합(Coalescing) 인접한 빈 공간을 합친다
압축(Compaction) 흩어진 빈 공간을 한쪽으로 모은다(가비지 컬렉션)
7. 가상 기억 장치 — 페이징과 세그먼테이션
| 페이징(Paging) | 세그먼테이션(Segmentation) | |
|---|---|---|
| 분할 단위 | 고정 크기 페이지 | 가변 크기 논리 단위(함수·배열) |
| 단편화 | 내부 단편화 발생 | 외부 단편화 발생 |
| 필요 표 | 페이지 맵 테이블 | 세그먼트 맵 테이블 |
함정 — 페이징은 내부 단편화, 세그먼테이션은 외부 단편화다. 바꿔 낸 보기가 나온다.
8. 페이지 교체 알고리즘 — 계산 문항 (페이지 25회)
| 알고리즘 | 규칙 |
|---|---|
| OPT(최적) | 앞으로 가장 오래 안 쓸 페이지를 교체 — 이론적 최적(구현 불가) |
| FIFO | 먼저 들어온 페이지를 교체 — 벨레이디의 이상 현상 발생 가능 |
| LRU | 가장 오래 사용되지 않은 페이지를 교체 |
| LFU | 사용 빈도가 가장 낮은 페이지를 교체 |
| NUR | 참조 비트·변형 비트로 최근에 안 쓴 페이지를 근사 선택 |
| SCR(2차 기회) | FIFO 에 참조 비트를 더해 한 번 더 기회를 준다 |
FIFO 계산 예 — 프레임 3개, 참조열 1 2 3 4 1 2 5
1 → [1] 부재
2 → [1,2] 부재
3 → [1,2,3] 부재
4 → [2,3,4] 부재 (가장 먼저 들어온 1 을 내보냄)
1 → [3,4,1] 부재 (2 를 내보냄)
2 → [4,1,2] 부재 (3 을 내보냄)
5 → [1,2,5] 부재 (4 를 내보냄)
페이지 부재 7회
LRU 는 같은 참조열에서 "가장 오래 안 쓴 것" 을 내보낸다. 표를 그려 마지막 사용 시점을 적으면 틀리지 않는다.
벨레이디의 이상 현상(Belady's Anomaly) — 프레임 수를 늘렸는데 페이지 부재가 오히려 늘어나는 현상. FIFO 에서 발생하고 LRU·OPT 에서는 발생하지 않는다.
9. 구역성·워킹셋·스래싱
구역성(Locality)
시간 구역성 최근에 참조한 것을 다시 참조 (반복문·스택·부프로그램)
공간 구역성 인접한 주소를 함께 참조 (배열 순회·순차 코드)
워킹셋(Working Set) 일정 시간 동안 실제로 참조되는 페이지 집합
스래싱(Thrashing) 페이지 교체가 지나쳐 CPU 가 일보다 교체에 시간을 더 쓰는 상태
스래싱 방지 — 다중 프로그래밍 정도를 낮춘다, 워킹셋을 유지한다, 페이지 부재 빈도를 조절한다, 필요하면 물리 메모리를 늘린다.
10. 디스크 스케줄링
| 기법 | 규칙 |
|---|---|
| FCFS | 요청 순서대로 |
| SSTF | 현재 헤드에서 가장 가까운 요청 먼저 — 안쪽·바깥쪽 트랙이 불리 |
| SCAN | 한 방향으로 끝까지 훑고 방향을 바꾼다 (엘리베이터) |
| C-SCAN | 한 방향으로만 훑고 끝에서 처음으로 되돌아온다 — 대기 시간 균일 |
| LOOK / C-LOOK | 마지막 요청까지만 가고 되돌아온다 |
| N-step SCAN | 진행 중 도착한 요청은 다음 회차로 미룬다 |
11. UNIX / Linux
특징 대화식 · 다중 사용자 · 다중 작업 · 이식성(C로 작성) · 트리 구조 파일 시스템
구성 커널 · 쉘 · 유틸리티
inode 파일의 소유자·권한·크기·시간·데이터 블록 위치를 담은 자료구조 (파일 이름은 없다)
주요 명령
ls cd pwd mkdir rm cp mv cat grep find ps kill chown chmod fork exec wait
chmod 권한 계산 (6회 출제)
r(읽기)=4 w(쓰기)=2 x(실행)=1
자리 순서 소유자(user) · 그룹(group) · 기타(other)
| 명령 | 권한 | 뜻 |
|---|---|---|
chmod 755 f | rwxr-xr-x | 소유자 7(4+2+1), 그룹 5(4+1), 기타 5(4+1) |
chmod 644 f | rw-r--r-- | 소유자 6(4+2), 그룹 4, 기타 4 |
chmod 777 f | rwxrwxrwx | 모두 전체 권한 |
chmod 700 f | rwx------ | 소유자만 |
계산 절차 — 문자열이 주어지면 세 칸으로 끊고(
rwx | r-x | r-x) 각 칸을 4/2/1 로 더한다. 숫자가 주어지면 반대로 분해한다.chown은 소유자 변경이라 권한 변경(chmod)과 다르다.
B. 네트워크
12. OSI 7계층 — 이 과목 최다(계층 28회 · OSI 10회)
| 계층 | 이름 | 하는 일 | PDU | 장비 | 프로토콜 |
|---|---|---|---|---|---|
| 7 | 응용 | 사용자 서비스 | 데이터 | — | HTTP·FTP·SMTP·DNS·SNMP·Telnet |
| 6 | 표현 | 인코딩·암호화·압축 | 데이터 | — | JPEG·MPEG·ASCII |
| 5 | 세션 | 연결 설정·동기화·대화 제어 | 데이터 | — | RPC·NetBIOS |
| 4 | 전송 | 종단 간 신뢰성·흐름 제어 | 세그먼트 | 게이트웨이 | TCP·UDP |
| 3 | 네트워크 | 경로 선택(라우팅)·논리 주소 | 패킷 | 라우터 | IP·ICMP·ARP·라우팅 |
| 2 | 데이터링크 | 인접 노드 간 전송·오류 제어·MAC 주소 | 프레임 | 브리지·스위치 | HDLC·PPP·이더넷 |
| 1 | 물리 | 비트를 전기 신호로 | 비트 | 리피터·허브 | RS-232C |
TCP/IP 4계층 대응
응용 계층 ← OSI 5·6·7
전송 계층 ← OSI 4
인터넷 계층 ← OSI 3
네트워크 접속 ← OSI 1·2
함정 셋 — ① 라우터는 3계층, 스위치는 2계층, 게이트웨이는 상위 계층이다. ② 흐름 제어와 오류 제어는 2계층과 4계층에 모두 있다(구간이 다르다). ③ 암호화·압축은 표현 계층이다.
13. TCP 와 UDP
| TCP | UDP | |
|---|---|---|
| 연결 | 연결형(핸드셰이크) | 비연결형 |
| 신뢰성 | 순서 보장·재전송·확인 응답 | 보장하지 않는다 |
| 흐름·혼잡 제어 | 있다 | 없다 |
| 헤더 크기 | 20바이트 | 8바이트 |
| 전송 단위 | 세그먼트 | 데이터그램 |
| 용도 | 웹·파일 전송·메일 | 실시간 스트리밍·DNS·방송 |
3-way handshake
클라이언트 → SYN → 서버
클라이언트 ← SYN + ACK ← 서버
클라이언트 → ACK → 서버 연결 성립
연결 해제는 FIN → ACK → FIN → ACK 의 4-way 다.
14. IP 주소와 서브네팅 (IP 16회)
클래스별 범위 (첫 옥텟)
| 클래스 | 첫 옥텟 | 기본 마스크 | 용도 |
|---|---|---|---|
| A | 0 ~ 127 | 255.0.0.0 (/8) | 대규모 |
| B | 128 ~ 191 | 255.255.0.0 (/16) | 중규모 |
| C | 192 ~ 223 | 255.255.255.0 (/24) | 소규모 |
| D | 224 ~ 239 | — | 멀티캐스트 |
| E | 240 ~ 255 | — | 연구·예약 |
사설 IP — 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. 외부로 나갈 때 NAT 로 변환한다.
서브네팅 계산 절차
① 필요한 서브넷 수를 2ⁿ 으로 덮는 n 을 구한다 (4개 필요 → n=2)
② 호스트 비트에서 n 비트를 빌려 마스크를 늘린다 (/24 → /26)
③ 서브넷 크기 = 2^(남은 호스트 비트) (2^6 = 64)
④ 사용 가능 호스트 = 크기 - 2 (네트워크·브로드캐스트 주소 제외)
예 —
192.168.1.0/24를 4개 서브넷으로: 마스크 /26 = 255.255.255.192, 서브넷 크기 64, 사용 가능 호스트 62개. 네트워크 주소는.0 / .64 / .128 / .192, 각 브로드캐스트는.63 / .127 / .191 / .255.
함정 — 사용 가능 호스트에서 2를 빼는 이유는 네트워크 주소(전부 0)와 브로드캐스트 주소(전부 1)를 호스트에 줄 수 없기 때문이다.
15. IPv6 (12회 출제)
주소 길이 128비트 (IPv4 는 32비트)
표기 16비트씩 8그룹, 콜론(:) 구분 — 2001:0db8:0000:0000:0000:ff00:0042:8329
축약 연속된 0 그룹을 :: 로 한 번만 생략 가능
헤더 40바이트 고정 (IPv4 는 20바이트 가변)
전송 방식 유니캐스트 · 멀티캐스트 · 애니캐스트
핵심 함정 — IPv6 에는 브로드캐스트가 없다. 그 역할을 멀티캐스트가 대신한다. 애니캐스트(가장 가까운 하나에게)는 IPv6 에서 새로 도입됐다.
IPv6 의 장점 — 주소 공간 확장, 헤더 단순화, 흐름 레이블로 QoS 지원, IPSec 기본 내장으로 보안 강화, 자동 주소 설정(Stateless).
전환 기술 3가지
듀얼 스택(Dual Stack) 두 프로토콜을 함께 운용
터널링(Tunneling) IPv6 패킷을 IPv4 로 감싸 전달
주소 변환(Translation) NAT-PT 등으로 상호 변환
16. 주요 프로토콜
| 프로토콜 | 계층 | 역할 |
|---|---|---|
| ARP | 3 | IP → MAC 주소 변환 |
| RARP | 3 | MAC → IP 변환 (3회 출제) |
| ICMP | 3 | 오류·상태 보고 (ping) |
| IGMP | 3 | 멀티캐스트 그룹 관리 |
| DNS | 7 | 도메인 이름 → IP |
| DHCP | 7 | IP 주소 자동 할당 (2회) |
| HTTP / HTTPS | 7 | 웹 (80 / 443) |
| FTP | 7 | 파일 전송 (20 데이터 / 21 제어) |
| SMTP / POP3 / IMAP | 7 | 메일 발신 / 수신 |
| SNMP | 7 | 네트워크 관리 |
| TELNET / SSH | 7 | 원격 접속 (23 / 22) |
함정 — ARP 는 IP→MAC, RARP 는 그 반대다. 방향을 바꿔 낸 문항이 나온다.
17. 라우팅
| 프로토콜 | 방식 | 특징 |
|---|---|---|
| RIP | 거리 벡터 | 홉 수 기준, 최대 15홉, 소규모 |
| OSPF | 링크 상태 | 대규모, 빠른 수렴, 비용(Cost) 기준 |
| BGP | 경로 벡터 | AS 간(외부) 라우팅 — 인터넷의 근간 |
| IGRP / EIGRP | 거리 벡터(개선) | 시스코 |
내부(IGP) RIP · OSPF · EIGRP 외부(EGP) BGP
18. 전송 방식과 LAN
유니캐스트 1 : 1
멀티캐스트 1 : 다수(그룹)
브로드캐스트 1 : 전체
애니캐스트 1 : 가장 가까운 하나 (IPv6)
LAN 접근 방식
| 방식 | 내용 |
|---|---|
| CSMA/CD | 이더넷 — 전송 전 회선을 듣고, 충돌을 감지하면 대기 후 재전송 |
| CSMA/CA | 무선(Wi-Fi) — 충돌을 회피 |
| 토큰 링 / 토큰 버스 | 토큰을 가진 노드만 전송 — 충돌이 없다 |
토폴로지 — 성형(Star) · 링형(Ring) · 버스형(Bus) · 트리형 · 망형(Mesh).
망형은 n(n-1)/2 회선이 필요하고 신뢰성이 가장 높다.
규모에 따른 분류
| 구분 | 범위 |
|---|---|
| LAN (Local Area Network) | 건물·구내 — 속도 빠르고 오류율 낮다 |
| MAN (Metropolitan) | 도시 규모 |
| WAN (Wide Area Network) | 국가·대륙 규모 — 전용선·공중망 이용, 지연이 크다 |
VLAN — 물리적 위치와 무관하게 논리적으로 나눈 LAN. 브로드캐스트 도메인을 분리한다.
19. 교환 방식
회선 교환 통화로를 미리 확보 — 실시간에 유리, 자원 낭비 가능
패킷 교환 ┬ 가상 회선 논리적 경로를 미리 설정, 순서 보장
└ 데이터그램 경로를 각자 선택, 순서 보장 없음
20. 오류 제어와 흐름 제어
| 방식 | 기능 |
|---|---|
| 패리티 비트 | 1비트 오류 검출만 |
| CRC | 다항식 연산으로 검출(정정 불가), 신뢰도 높음 |
| 해밍 코드 | 오류 검출 + 정정 가능 |
| 블록 합 검사 | 행·열 패리티 |
전진 오류 수정(FEC) 수신 측이 스스로 정정 (해밍 코드)
후진 오류 수정(BEC) 재전송 요구 (ARQ)
흐름 제어
정지-대기(Stop-and-Wait) 한 프레임 보내고 응답을 기다린다 — 단순, 비효율
슬라이딩 윈도우 응답 없이 윈도우 크기만큼 연속 전송 — TCP 가 사용
21. 함정 정리
커널은 자원 관리, 쉘은 명령 해석.
대기 상태에서 실행으로 직행하지 않는다. 준비를 거친다.
HRN = (대기 + 서비스) ÷ 서비스, 값이 클수록 우선.
은행원 알고리즘은 회피(Avoidance).
페이징 = 내부 단편화 / 세그먼테이션 = 외부 단편화.
벨레이디 이상 현상은 FIFO 에서 발생한다.
C-SCAN 은 한 방향만 훑고 되돌아온다.
chmod 755 = rwxr-xr-x. r4·w2·x1 을 자리별로 더한다.
라우터 3계층 · 스위치 2계층 · 리피터 1계층 · 게이트웨이 상위.
PDU — 프레임(2) · 패킷(3) · 세그먼트(4).
TCP 헤더 20바이트 / UDP 8바이트.
IPv6 는 128비트이고 브로드캐스트가 없다. 헤더는 40바이트 고정.
ARP 는 IP→MAC, RARP 는 MAC→IP.
RIP 최대 15홉 / OSPF 링크 상태 / BGP 는 AS 간.
서브넷 사용 가능 호스트 = 2^호스트비트 − 2.
해밍 코드는 정정 가능, CRC 는 검출만.
한눈에 정리
- 이 구간은 표를 외우면 그대로 점수가 된다. 특히 OSI 계층별 장비·프로토콜·PDU 표 하나가 최다 출제
- 계산은 네 종류뿐이다 — HRN, 페이지 교체(FIFO/LRU), 서브네팅, chmod
- 메모리는 배치 전략(최초·최적·최악) 과 단편화 종류가 짝을 이룬다
- 스케줄링은 선점/비선점 분류와 에이징의 목적(무한 연기 방지)
- 교착 상태는 4조건 + 해결 4가지, 은행원은 회피
- IPv6 는 128비트 · 브로드캐스트 없음 · 헤더 40바이트 고정 · IPSec 내장
- 프로토콜은 계층별 칸에 넣어 외운다. ARP 방향과 포트 번호(80·443·21·22·23)까지
- 언어 편(이전 편)과 합쳐 과목4 20문항이 나온다 — 이쪽이 시간당 점수가 훨씬 높다