컴퓨터시스템기사 실기 11 — 시리즈 보강편 (빠졌던 개념 + 복원 기출 정오표)
컴퓨터시스템기사 실기 11 — 시리즈 보강편 (빠졌던 개념 + 복원 기출 정오표)
보강 대상: Flynn 분류 · 분기 예측 페널티 · 주소선 단위 · 흐름/혼잡 제어 · 테스트 오라클 · 구 범위 OS 이론
정오표: 복원 기출과 시중 정리 자료에서 확인된 숫자·표현 오류
시험일: 2026-10-25 (D-3) / 시리즈: 컴퓨터시스템기사 실기 11편 (보강편)
1~9편을 쓰고 10편에서 2026년 1회 복원 20문항을 다시 훑어보니, 시리즈에서 빠졌거나 얕게만 다룬 개념이 몇 가지 보였습니다.
이번 편에서 한 번에 메웁니다.
뒷부분은 기출 복원본과 정리 자료를 대조하면서 확인된 정오표입니다.
외운 숫자가 아래 표와 다르다면 이 표를 기준으로 다시 확인해 주세요.
Part A. 시리즈 보강
1. Flynn 분류 (2026-1 Q20) ⭐⭐
명령어 흐름 수 × 데이터 흐름 수로 컴퓨터 구조를 4가지로 나눕니다.
| 분류 | 명령어 흐름 | 데이터 흐름 | 예 |
| SISD | 단일 | 단일 | 전통적인 단일 프로세서 |
| SIMD | 단일 | 다중 | 벡터·배열 프로세서, GPU, SIMD 명령어(AVX 등) |
| MISD | 다중 | 단일 | 실용 사례 거의 없음 (결함 허용 구조에서 개념적으로 언급) |
| MIMD | 다중 | 다중 | 다중 프로세서, 멀티코어, 클러스터 |
기출 (2026-1 Q20): Flynn의 분류에서 다중 프로세서를 의미하는 것은? → MIMD
암기: 첫 글자 = 명령어(Instruction) 흐름, 둘째 글자 = 데이터(Data) 흐름. S는 Single, M은 Multiple.
2. 분기 예측 실패 페널티 일반식 (2026-1 Q17) ⭐⭐
손실 사이클 = (분기 결과가 판정되는 단계 번호) − 1
분기 판정 단계 앞에 이미 들어와 있던 명령어 수만큼 flush됩니다.
| 파이프라인 | 판정 단계 | 손실 |
| F-D-E (3단계) | Execute(3번째) | 2 ← 2026-1 Q17 |
| IF-ID-EX-MEM-WB (5단계) | EX(3번째) | 2 |
| 같은 5단계에서 MEM 단계에서 판정 | MEM(4번째) | 3 |
유효 CPI에 반영하는 식 (직접 만든 연습, 기출 아님)
CPI = 1 + (분기 비율 × 예측 실패율 × 손실 사이클)
분기 20%, 실패율 10%, 손실 2 → 1 + 0.2 × 0.1 × 2 = 1.04
3. 주소선·데이터선 계산 — 단위가 승부 (2026-1 Q4) ⭐⭐⭐
워드 수 = 전체 용량 ÷ 워드 크기
주소선 수 = log₂(워드 수)
데이터선 수 = 워드 크기(비트)
| 조건 | 계산 | 주소선 |
| 8Kb, 데이터선 1개 (2026-1 Q4 해석) | 8Kb ÷ 1bit = 8,192워드 | 13 |
| 8KB, 워드 8비트 | 8KB ÷ 1B = 8,192워드 | 13 |
| 8KB를 1비트 폭 칩으로 구성 | 64Kb ÷ 1bit = 65,536워드 | 16 |
| 4096 × 16bit (A 2018-1) | 4,096워드 | 12 |
| 64KB, 바이트 주소 (B 2021-11) | 65,536워드 | 16 |
⚠️ b(비트)와 B(바이트) 를 구분하고, 데이터선이 몇 개인지를 먼저 확인하세요.
같은 "8K"라도 구성이 다르면 주소선 수가 달라집니다.
복원 지문에 단위가 없을 때는 가정을 답안에 적는 것이 안전합니다.
4. 흐름 제어 vs 혼잡 제어 (2026-1 Q2) ⭐⭐⭐
| 구분 | 흐름 제어 (Flow Control) | 혼잡 제어 (Congestion Control) |
| 대상 | 수신자의 처리 능력 (버퍼 오버플로 방지) | 네트워크 전체의 과부하 (지연·패킷 손실) |
| 기준 | 수신 윈도우 rwnd | 혼잡 윈도우 cwnd |
| 방식 | Stop-and-Wait, 슬라이딩 윈도우 | Slow Start → 혼잡 회피(AIMD) → 빠른 재전송/복구 |
실제 전송 가능량 = min(rwnd, cwnd)
- Slow Start: cwnd를 1 MSS에서 시작해 ACK마다 늘려 RTT마다 2배(지수 증가), 임계값(ssthresh)에 이르면 혼잡 회피로 전환(RTT마다 약 +1 MSS, 선형 증가).
- 손실 감지: 타임아웃이면 cwnd를 크게 줄이고 Slow Start 재시작, 중복 ACK 3개면 빠른 재전송/복구.
- AIMD: Additive Increase, Multiplicative Decrease(증가는 천천히, 감소는 절반).
판별 요령: 지문에 "수신 측 상태/버퍼" → 흐름 제어, "네트워크 혼잡/패킷 손실/라우터 큐" → 혼잡 제어.
2026-1 Q2의 복원 정답은 흐름 제어이고, 혼잡 제어로 기억한 의견도 있어 위 기준을 답안에 한 줄 덧붙이면 안전합니다.
5. 테스트 오라클 4유형 (2026-1 Q7) ⭐⭐⭐
오라클(Oracle) = 테스트 결과가 맞는지 판정하는 기대 결과의 출처.
| 유형 | 기대 결과를 얻는 방법 | 지문 키워드 |
| 참(True) | 모든 입력에 정확한 기대값 제공 | 모든 입력, 정확 |
| 샘플링(Sampling) | 일부 특정 입력에만 기대값 제공 | 특정 값, 대표값 |
| 휴리스틱(Heuristic) | 일부는 정확, 나머지는 합리적 추정(유사 입력 → 유사 출력) | 추정, 유사 입력 |
| 일관성 검사(Consistent) | 이전 버전·다른 구현의 결과와 비교 | 이전 실행과 비교, 회귀 |
- 판별: "비슷한 입력이면 비슷한 출력" = 휴리스틱, "이전 결과와 비교" = 일관성 검사
- 2026-1 Q7은 복원 지문이 불완전해 휴리스틱 / 일관성 검사 의견이 갈립니다.
보기에 둘이 모두 있다면 지문의 "추정" vs "비교" 키워드로 가르세요. - 한계: 휴리스틱은 규칙이 틀리면 거짓 판정, 일관성 검사는 둘이 같이 틀리면 못 잡음.
- "블랙박스 기법"을 묻는다면 비교 검사(여러 구현에 같은 입력을 넣어 결과 비교)·동등 분할이 답 후보입니다 (09편).
6. 구 범위 OS 이론 보충
2026 신 출제기준 실기에는 직접 명시되지 않았지만, 구 범위 기출과 필기에 반복된 개념입니다.
용어와 계산 방법만 빠르게 봅니다.
6-1. 스래싱·워킹 셋·단편화
| 용어 | 설명 |
| 스래싱(Thrashing) | 프로세스가 필요한 페이지를 못 얻어 페이지 부재가 폭증, CPU 이용률이 떨어지는 현상. 해결: 워킹 셋, PFF, 다중 프로그래밍 정도 조절 |
| 워킹 셋(Working Set) | 프로세스가 일정 시간 동안 자주 참조하는 페이지 집합. 워킹 셋만큼 프레임을 보장하면 스래싱 감소 |
| 내부 단편화 | 할당 단위가 요구보다 커서 할당 영역 안에 낭비 (페이징) |
| 외부 단편화 | 빈 공간이 조각나 연속 공간 부족 (가변 분할·세그먼테이션), 해결: 압축 |
6-2. 페이지 교체 — 부재 횟수 표 (직접 계산한 검산)
참조열 1 2 3 4 1 2 5 1 2 3 4 5
| 알고리즘 | 프레임 3 | 프레임 4 |
| FIFO | 9회 | 10회 (프레임이 늘었는데 증가 = Belady의 모순) |
| LRU | 10회 | 8회 |
LRU는 프레임이 늘면 부재가 줄거나 같아지는 성질(스택 알고리즘)이 있어 Belady의 모순이 없습니다.
6-3. 은행원 알고리즘 — 안전 순서열 (표준 예제, 기출 아님)
| 프로세스 | Allocation | Max | Need (= Max − Alloc) |
| P0 | 0 1 0 | 7 5 3 | 7 4 3 |
| P1 | 2 0 0 | 3 2 2 | 1 2 2 |
| P2 | 3 0 2 | 9 0 2 | 6 0 0 |
| P3 | 2 1 1 | 2 2 2 | 0 1 1 |
| P4 | 0 0 2 | 4 3 3 | 4 3 1 |
Available = (3, 3, 2)
P1(Need 1,2,2 ≤ 3,3,2) 실행 → 반납 후 Available = 5 3 2
P3(0,1,1) 실행 → 7 4 3
P4(4,3,1) 실행 → 7 4 5
P2(6,0,0) 실행 → 10 4 7
P0(7,4,3) 실행 → 10 5 7
→ 안전 상태, 안전 순서열 예: P1 → P3 → P4 → P2 → P0 (순서열은 여러 개일 수 있음)
풀이법: Need ≤ Available 인 프로세스를 찾아 끝내고, 그 Allocation을 Available에 더하는 과정을 반복합니다.
6-4. 디스크 스케줄링 — SCAN 계열 (직접 계산, 기출 아님)
헤드 100, 큐 180, 50, 195, 5, 160, 70, 트랙 0~199 (09편의 FCFS 790과 같은 데이터)
| 알고리즘 | 계산 | 이동 거리 |
| FCFS | 큐 순서대로 | 790 |
| SSTF | 100→70→50→5→160→180→195 | 285 |
| SCAN (증가 방향 먼저, 끝 트랙 199까지) | 100→160→180→195→199→70→50→5 | 293 |
| LOOK (끝까지 가지 않고 마지막 요청에서 반전) | 100→160→180→195→70→50→5 | 285 |
| C-SCAN (끝까지 갔다가 0으로 복귀 후 같은 방향) | …→199→0→5→50→70 | 복귀 이동을 포함하면 368, 제외하면 169 |
⚠️ SCAN/C-SCAN은 이동 방향, 끝 트랙까지 가는지, 복귀 이동을 거리에 포함하는지가 풀이마다 다릅니다.
문제 조건을 먼저 확인하고, 가정을 답안에 적으세요.
6-5. 동기화 — 세마포어와 피터슨
- 세마포어(Semaphore): 정수 변수 S와 두 연산. P(S)(Wait): S를 1 감소, 음수가 되면 대기 / V(S)(Signal): S를 1 증가, 대기 중이면 하나 깨움. 상호 배제는 이진 세마포어(초기값 1), 자원 개수 관리는 카운팅 세마포어.
- 피터슨 알고리즘: 두 프로세스 간 상호 배제를 소프트웨어만으로 보장하는 해법.
flag[i](진입 의사)와turn(양보) 변수를 사용합니다.flag[i] = true; turn = j; while (flag[j] && turn == j) ; /* 상대가 원하고 상대 차례면 대기 */ /* 임계 구역 */ flag[i] = false; - 상호 배제·진행·한정 대기를 만족하지만 두 프로세스에만 적용됩니다.
Part B. 복원 기출·정리 자료 정오표
복원 기출은 수험생 기억과 해설을 모아 만든 자료이고,
정리 자료도 사람이 만든 것이라 숫자나 표현이 틀린 경우가 있습니다.
아래는 직접 재계산·대조해서 확인한 항목입니다.
7. 숫자·정답 오류
| # | 출처 | 알려진 값 | 올바른 값 | 확인 방법 |
| 1 | B형 2017-04 Q14 캐시 평균 접근 시간 (캐시 40ns, 주기억 60ns, h=0.9) |
58ns | 42ns(병렬) / 46ns(순차) | 0.9×40+0.1×60=42, 0.9×40+0.1×100=46 |
| 2 | B형 2020-11 Q5 SATA 2 최대 속도 |
3.5Gb/s | 3.0Gb/s (SATA 1은 1.5, SATA 3은 6.0) |
규격값 |
| 3 | 8진수 362.472 → 16진수 (A형 2016-1, 2020 수시) |
F3.9D | F2.9D | 362₈=242=F2₁₆, .472₈=.1001 1101…=.9D |
| 4 | B형 2020-11 CALL (1234번지, 3바이트) 복귀 PC |
1238 | 1237 | 1234+3 |
| 5 | A형 2018-3·2024-3 FCFS 디스크 이동 거리 |
지문 큐(150, 30, 190…)의 정답으로 790 표기 | 790은 큐 180, 50, 195, 5, 160, 70 의 값 (지문 큐로 계산하면 1020) | 직접 합산 |
| 6 | A형 2020 통합 4096×8 ROM 최소 핀 수 |
23 | 제어핀 1개 가정이면 23, CS·OE 2개면 24 |
12+8+제어+전원/접지 2 |
8. 해설·지문 불일치
| # | 출처 | 문제 | 대처 |
| 7 | A형 2017-1 C 코드 (정답 11 vs 해설 9로 계산) |
코드가 그림이라 복원본에 빠짐, 정답과 해설이 서로 다름 | 값을 외우지 말고 포인터 대입 추적 방법만 익히기 |
| 8 | B형 2021-11 Q5 복소수 구조체 빈칸 | 정답 열거 순서가 코드 흐름과 다름 | 번호와 함께 쓰기: ①c1.real ②c1.imag ③c2.real ④c2.imag |
| 9 | A형 2023-1 캐시 태그 문제 | 정답 4,096은 태그 개수, 비트 수는 워드/바이트 가정에 따라 다름 | "개수"인지 "비트 수"인지 확인, 가정 명시 |
| 10 | B형 2020-11 Q6 (대소문자 변환) | 코드의 변수명이 ch와 c로 섞임 |
선언·사용 이름 일치 확인 (오류 식별 문제의 단골) |
| 11 | B형 2019-11 Q11 (재귀 2진수) | main이 함수를 호출하지 않고 void main에서 return 0 사용 |
호출 누락, 반환형 불일치 체크 |
9. 정리 자료에서 자주 보이는 표현 오류
| # | 잘못된 표현 | 올바른 설명 |
| 12 | "높이 차 1 이하" 트리 = AVL (또는 레드-블랙) | AVL만. 레드-블랙은 최장 경로 ≤ 최단 경로의 2배 규칙 |
| 13 | 반가산기(FA) | 반가산기는 HA(Half Adder), FA는 전가산기(Full Adder) |
| 14 | 부동소수점 오차 단위 = ULP 또는 Bias | ULP(Unit in the Last Place). Bias는 지수 편향값(단정밀도 127) |
| 15 | 평균 접근 시간 20ns 또는 19ns 병기 | 순차 모델/병렬(가중평균) 모델 차이. 문제 문구의 모델을 따르고 식을 함께 적기 |
| 16 | 캐시 문제에서 연관도 언급 없이 정답만 제시 | 직접 사상 가정 한 줄 병기 |
| 17 | Major State 나열 순서 (Fetch, Indirect, Interrupt, Execute) |
교재 순서는 Fetch → Indirect → Execute → Interrupt |
10. 2026-1 복원 중 정답이 갈리는 문항
| 문항 | 갈림 | 대비 |
| Q2 | 흐름 제어 vs 혼잡 제어 | 4장의 판별 기준 + 기준을 답안에 덧붙이기 |
| Q7 | 휴리스틱 vs 일관성 검사 | 5장의 키워드 판별 |
| Q4 | 단위(Kb/KB), 데이터선 수 | 3장의 단위 표 |
| Q8 | 연관도 | 직접 사상 가정 명시 |
11. 예상 Q&A
Q1. Flynn 분류에서 다중 프로세서 구조는? → MIMD
Q2. 분기 판정이 4번째 단계(MEM)에서 이뤄지는 5단계 파이프라인의 예측 실패 손실은? → 3 cycle
Q3. 1비트 폭 칩 64Kb로 구성한 메모리의 주소선 수는? → 16
Q4. 실제 전송량을 min(rwnd, cwnd)로 정하는 TCP의 두 제어는? → 흐름 제어, 혼잡 제어
Q5. "이전 버전과 결과를 비교"하는 오라클은? → 일관성 검사 오라클
Q6. 참조열 1 2 3 4 1 2 5 1 2 3 4 5에서 FIFO 3프레임 부재 수는? → 9회
Q7. 외부 단편화를 해결하는 방법은? → 압축(Compaction)
12. ⚠️ 함정 패턴
- Flynn의 두 글자: 앞 = 명령어, 뒤 = 데이터
- 분기 페널티 = 판정 단계 번호 − 1 (단계 수가 아님)
- b와 B, 데이터선 수를 먼저 확인
- 흐름 제어 = 수신자 기준, 혼잡 제어 = 네트워크 기준
- 오라클은 키워드(추정 / 비교 / 특정 값 / 모든 입력)로 판별
- LRU는 Belady의 모순 없음, FIFO는 있음
- 은행원 알고리즘: Need = Max − Allocation, 안전 순서열은 하나가 아님
- SCAN 계열은 방향·끝 트랙·복귀 이동 포함 여부를 조건으로 확인
13. 💡 실무에서는?
- SIMD와 GPU: 대량 데이터에 같은 연산을 적용하는 벡터 연산(암호화, 해시, 압축, AI 추론)은 SIMD/GPU가 유리합니다. 서버 CPU 선택 시 AES-NI, AVX 같은 명령어 지원이 암호화 성능에 직접 영향을 줍니다.
- TCP 성능과 혼잡 제어: 장거리·고지연 회선에서 단일 TCP 연결 처리량은 윈도우 크기와 RTT에 제한됩니다(BDP). 윈도우 스케일링, BBR 같은 혼잡 제어 알고리즘 선택이 전송 성능을 좌우하고,
ss -tin으로 cwnd·rwnd·재전송을 확인합니다. - 스래싱과 메모리 부족: 스왑이 폭증하며 응답이 극단적으로 느려지는 서버는 스래싱 상태입니다.
vmstat의 si/so, 메이저 페이지 폴트를 보고 메모리 증설·워크로드 분산을 판단합니다. - 교착상태: 데이터베이스 락 순서 불일치가 대표 원인이고, 모든 트랜잭션이 같은 순서로 락을 잡도록 설계하는 것이 환형 대기 조건을 깨는 실무 예방책입니다.
- 정오표를 만드는 습관: 기출 복원본이든 사내 문서든 숫자는 반드시 재계산하고 출처와 함께 기록해 두면, 장애 보고서나 설계 근거 문서의 신뢰도가 올라갑니다.
14. 핵심 정리
✅ Flynn: SISD / SIMD / MISD / MIMD(다중 프로세서)
✅ 분기 페널티 = 판정 단계 번호 − 1 (F-D-E에서 E 판정 → 2)
✅ 주소선 = log₂(워드 수), b/B와 데이터선 수 확인
✅ 흐름 제어(rwnd, 수신자) / 혼잡 제어(cwnd, 네트워크) / 전송량 = min(rwnd, cwnd)
✅ 오라클: 참(모든 입력) · 샘플링(특정 값) · 휴리스틱(추정) · 일관성(비교)
✅ 스래싱 = 부재 폭증 → 워킹 셋으로 완화
✅ FIFO 3·4프레임 = 9·10 (Belady), LRU = 10·8
✅ 은행원: Need ≤ Available 찾아 반납 반복, 순서열 여러 개
✅ 정오표: 캐시 42/46ns, SATA 2 = 3.0Gb/s, 362.472₈ = F2.9D, CALL 3바이트 = 1237
✅ AVL만 높이 차 1 이하 / FA = 전가산기 / ULP = 오차 단위
15. 마무리
여기까지가 이번 시리즈의 마지막 정리입니다.
시험(10/25) 전 마지막 이틀은 새 내용을 늘리기보다 계산 문제 손풀이와 이 정오표 확인에 쓰시길 권합니다.
시험이 끝나면 후기로 돌아오겠습니다.
혹시 이 글에서 확인하신 값과 다른 부분이 있다면 댓글로 알려주세요.
궁금한 점은 댓글로 남겨주세요!