하드웨어·프로세서·OS 답안 — 세트 B

GPU · TPU · NPU · RISC-V · 캐시 메모리 · 캐시 사상 · MESI · 보안 OS · 분산 OS · 시스템콜 · 메모리 세그멘테이션 · 모니터 · 인터럽트 · OS 부팅 · OS 커널 · RTOS · 우선순위 역전·상속 | 정보관리 대비

B1
GPU (Graphics Processing Unit)
병렬 부동소수점 연산 특화 · CUDA · 딥러닝 훈련의 핵심 가속기
개념
정의: 수천 개의 소형 코어로 대규모 병렬 부동소수점 연산을 수행하는 프로세서. 원래 3D 그래픽 렌더링용이었으나 GPGPU(범용 GPU 컴퓨팅)로 확장되어 딥러닝 훈련·과학 시뮬레이션의 핵심 가속기로 자리잡음

핵심 차이: CPU는 소수의 강력한 코어(직렬·복잡 연산), GPU는 수천 개의 단순 코어(병렬·행렬 연산) → 딥러닝은 행렬 곱셈이 90% → GPU 최적
개념도 — CPU vs GPU 아키텍처
CPU (직렬 처리)
4~64 강력한 코어
대용량 캐시(L1~L3)
분기 예측·OOO 실행
단일 스레드 성능 최적화
GPU (병렬 처리)
수천~수만 단순 코어(CUDA Core)
고대역폭 메모리 (HBM3: 3TB/s)
SIMT(Single Instruction Multiple Thread)
텐서 코어로 행렬 연산 특화
주요 구성 요소 — "스텐에고대"
두문자 요소 핵심 내용 NVIDIA 예시
SM(스트리밍 멀티프로세서) GPU의 기본 실행 단위. 수십~수백 개의 CUDA 코어 포함. 스레드 블록 단위로 실행 H100: 132 SM, 각 SM에 128 CUDA 코어
텐서 코어 행렬 곱셈(GEMM)을 1 사이클에 처리. 딥러닝 훈련·추론 가속 핵심 H100 4세대 Tensor Core: FP8 지원
HBM(고대역폭 메모리) GPU 옆에 3D 적층된 DRAM. DDR5 대비 10배+ 대역폭. LLM의 병목 해결 H100: HBM3 80GB, 3.35TB/s
CUDA/ROCm NVIDIA CUDA: GPU 프로그래밍 플랫폼. AMD ROCm: 오픈소스 대안 cuDNN, cuBLAS 딥러닝 라이브러리
NVLink/NVSwitch GPU 간 고속 연결. PCIe 대비 7배 대역폭. 멀티-GPU 학습 필수 DGX H100: 8 GPU + NVSwitch 연결
GPU vs TPU vs NPU 비교 및 메모리 계층
AI 훈련에서 GPU의 역할
행렬 연산: Transformer의 Attention = QK^T V → 행렬 곱 → GPU 최적
병렬 학습: Data·Model·Pipeline 병렬화로 LLM 훈련
SW 탄소집약도: GPT-3 훈련 ~552톤 CO₂ → GPU 선택이 탄소 결정
B100/H100: 현재 AI 산업 표준 — NVIDIA 독점 논란
GPU 메모리 계층
레지스터: SM 내 초고속 (수 사이클)
Shared Memory/L1: SM 내 공유 (수십 사이클)
L2 Cache: 전체 GPU 공유 (수백 사이클)
HBM(VRAM): 최대 용량 (수천 사이클)
LLM 병목: 모델 크기 > VRAM → OOM 에러
💡 킬러 문장: "GPU는 딥러닝 혁명의 하드웨어 기반이다. '병렬 행렬 연산'이라는 단순한 강점이 수천 개의 코어와 만나 AI 시대를 열었다."
B2
TPU (Tensor Processing Unit)
Google 설계 AI 전용 ASIC · 시스톨릭 어레이 구조 · 딥러닝 추론·훈련 최적화
개념
정의: Google이 딥러닝 추론·훈련을 위해 설계한 AI 전용 ASIC(Application-Specific Integrated Circuit). 시스톨릭 어레이(Systolic Array) 구조로 행렬 곱셈을 극도로 최적화

등장 배경: 2015년 AlphaGo 훈련 시 GPU로 수개월 소요 → 맞춤형 AI 칩 필요 → TPU v1 2016년 데이터센터 투입
개념도 — 시스톨릭 어레이 구조
시스톨릭 어레이: 데이터가 PE(Processing Element) 배열을 흘러다니며 누적
PE
MAC
PE
MAC
PE
MAC
PE
MAC
← 가중치 고정, 입력 데이터 →방향으로 흐름 · 메모리 접근 최소화
주요 구성 요소 — "시맥고저구"
두문자 요소 핵심 내용 GPU 대비 차이
시스톨릭 어레이 수백×수백 PE 격자. 가중치 행렬 고정, 입력이 흘러 MAC 연산. 메모리 재접근 최소화 GPU: 캐시 기반 / TPU: 데이터 흐름 기반
MAC 연산 최적화 Multiply-Accumulate를 단일 사이클에 처리. BF16·INT8 정밀도로 추론 가속 GPU 텐서코어와 유사하나 더 특화
고대역폭 인터커넥트 TPU Pod: 수천 TPU를 ICI(Inter-Chip Interconnect)로 연결. 대규모 LLM 훈련 NVLink 대응. TPU v4 Pod: 4096 TPU
저지연 추론 추론(Inference) 최적화 우선. 배치 처리로 처리량 극대화 GPU: 훈련·추론 양용 / TPU: 추론 특화
구글 클라우드 전용 Google Cloud TPU로만 접근. TensorFlow/JAX 최적화. 외부 판매 없음 GPU: 범용 판매 / TPU: 클라우드 전용
GPU vs TPU vs NPU 종합 비교
구분 GPU TPU NPU
설계 목적 범용 병렬 연산 딥러닝 전용 ASIC 엣지 AI 추론
구조 SIMT 코어 + 텐서코어 시스톨릭 어레이 MAC 어레이 특화
전력 효율 중간 (300~700W) 높음 (200~450W) 최고 (수W~수십W)
대표 제품 NVIDIA H100, A100 Google TPU v5 Apple Neural Engine, 삼성 Exynos NPU
💡 킬러 문장: "TPU는 '딥러닝만 잘하는 칩'이다. 시스톨릭 어레이로 행렬 곱셈을 하드웨어에 구운 결과, GPU보다 특정 워크로드에서 10배 이상 효율적이다."
B3
NPU (Neural Processing Unit)
엣지 AI 추론 전용 · 스마트폰·IoT 내장 · 초저전력 온디바이스 AI
개념
정의: 신경망 추론(Inference) 연산을 온디바이스(On-Device)에서 초저전력으로 처리하도록 설계된 AI 전용 프로세서. 스마트폰·IoT·자동차 등 엣지 장치에 내장되어 클라우드 의존 없이 실시간 AI 처리 가능

특징: 배터리 수명 보존 + 개인정보 보호(데이터 미전송) + 저지연 → 카메라 AI·음성 인식·번역에 활용
주요 구성 요소 — "맥온양프저"
두문자 요소 핵심 내용 대표 구현
MAC 어레이 Multiply-Accumulate 연산을 대규모 병렬 처리. 컨볼루션·FC 레이어 가속 Apple: 16-core Neural Engine
온칩 SRAM 모델 가중치·활성값을 칩 내부 SRAM에 저장. 메모리 접근 최소화로 전력↓ 삼성 Exynos: 대용량 온칩 버퍼
양자화(Quantization) FP32→INT8→INT4 변환으로 모델 크기·전력 감소. NPU는 INT8 하드웨어 최적화 QAT(양자화 인식 훈련), PTQ
프루닝(Pruning) 중요도 낮은 가중치 제거로 희소 모델 생성. NPU의 희소 연산 가속기 활용 Structured/Unstructured Pruning
저전력 설계 DVFS·클록 게이팅으로 유휴 시 전력 최소화 Apple M3: NPU 수mW~수W
대표 NPU 제품 및 DSLM 연계
주요 NPU 제품
Apple Neural Engine: M3 칩 내장, 18-core, 18 TOPS
Google Edge TPU: Coral 모듈, TFLite 전용
삼성 Exynos NPU: 갤럭시 시리즈 내장
Qualcomm Hexagon: 스냅드래곤 AI Engine
NVIDIA Jetson: 엣지 AI 개발 보드
DSLM + 온디바이스 NPU 연계
소형 DSLM: 1~7B 파라미터 모델 → NPU에서 추론 가능
개인정보: 의료·법률 DSLM을 NPU에서 로컬 처리 → 데이터 미전송
SCI 연계: 클라우드 GPU 대신 NPU → 탄소 집약도 대폭 감소
Phi-3 Mini: Microsoft 3.8B → 스마트폰 NPU 동작
💡 킬러 문장: "NPU는 AI를 클라우드에서 손안으로 가져온다. 초저전력으로 개인정보를 지키면서 실시간 AI를 구현하는 엣지 AI 혁명의 엔진이다."
B4
RISC-V
오픈소스 ISA · 벤더 종속 탈피 · AI 에지·IoT 칩 설계 표준
개념
정의: UC Berkeley가 2010년 설계한 완전 오픈소스 명령어 집합 아키텍처(ISA). 로열티·라이선스 비용 없이 누구나 자유롭게 칩을 설계·제조 가능

RISC 원칙: 단순하고 고정 길이의 명령어 → 파이프라인 효율 극대화. ARM·x86 대비 간결한 기본 ISA에 선택적 확장(Extension) 추가 방식
주요 구성 요소 — "기확모오생"
두문자 요소 핵심 내용 의미
기본 ISA (RV32I/64I) 32/64비트 정수 연산 47개 명령어만으로 완전한 프로세서 구현 가능 단순한 핵심 → 검증 용이
확장(Extension) M(곱셈), A(원자), F/D(부동소수점), C(압축), V(벡터), B(비트조작) 선택 추가 필요한 기능만 추가 → 커스텀 칩
모듈성 AI 칩에 벡터(V) 확장 추가, IoT에는 C(압축) 확장만 추가 → 용도별 최적화 하나의 ISA, 다양한 구현
오픈소스 생태계 RISC-V International 재단 관리. SiFive·StarFive·Alibaba T-Head 등 다양한 구현체 ARM 종속 탈피 → 소버린 반도체
생태계 성숙 Linux·Android·LLVM·GCC 지원. 2024년 Android 14 RISC-V 공식 지원 소프트웨어 호환성 확보
ISA 생태계 비교 및 AI 반도체 연계
x86 vs ARM vs RISC-V
x86 (Intel/AMD): CISC. 복잡한 ISA. 라이선스 필요. 서버·PC 지배
ARM: RISC. 라이선스 필요. 모바일·서버 지배. Apple M시리즈
RISC-V: RISC. 완전 오픈소스. 라이선스 0원. IoT·AI·우주
글로벌 RISC-V 동향
중국: 미국 반도체 제재 → RISC-V 자국 칩 설계 폭증
유럽: EU 반도체법 + RISC-V 투자 → 소버린 반도체 전략
NPU 설계: RISC-V 코어 + 커스텀 AI 가속기 조합
RTOS 연계: FreeRTOS·Zephyr의 RISC-V 포트 안정화
💡 킬러 문장: "RISC-V는 반도체의 리눅스다. 오픈소스 운영체제가 소프트웨어 독점을 깬 것처럼, RISC-V는 ISA 독점을 깨고 누구나 칩을 설계할 수 있는 시대를 열었다."
B5
캐시 메모리 (Cache Memory)
CPU-메모리 속도 간극 해소 · L1/L2/L3 계층 · 지역성 원리
개념
정의: CPU와 주기억장치(DRAM) 사이의 속도 차이를 완충하기 위한 소용량 고속 SRAM 버퍼. 자주 사용하는 데이터를 미리 저장하여 메모리 접근 지연 최소화

지역성 원리: 시간적 지역성(최근 참조한 데이터를 곧 다시 참조) + 공간적 지역성(참조한 주소 근방을 곧 참조)
개념도 — 메모리 계층 구조
L1 Cache
32~64KB
1~4 사이클
코어별 전용
L2 Cache
256KB~1MB
10~20 사이클
코어별/공유
L3 Cache
8~64MB
30~50 사이클
전체 공유
DRAM
GB 단위
100~300 사이클
주기억장치
주요 구성 요소 — "지교교교교"
두문자 요소 핵심 내용 세부 내용
지역성 원리 시간적(최근 사용) + 공간적(근처 주소) + 순차적 지역성 캐시 효과의 이론적 근거
교체 정책 캐시가 꽉 찼을 때 어떤 블록을 교체할지 결정 LRU(최소 최근 사용), FIFO, LFU, Random
교체 쓰기 정책 캐시 데이터 수정 시 주기억장치에 언제 반영할지 Write-Through(즉시), Write-Back(교체 시)
캐시 미스 유형 Compulsory(최초), Capacity(용량부족), Conflict(충돌) 미스 3C 미스 - 캐시 성능 분석 기준
캐시 성능 지표 적중률(Hit Ratio) = 캐시 적중 / 전체 접근. AMAT = Hit Time + Miss Rate × Miss Penalty AMAT: 평균 메모리 접근 시간
캐시 사상 기법 요약 및 MESI 연계
캐시 사상(Mapping) 3가지
직접(Direct): 블록→캐시 슬롯 1:1 고정. 충돌 미스多. 구현 단순
완전 연관(Fully Associative): 어느 슬롯에나 적재. 충돌 없음. 비교기 비용↑
집합 연관(Set Associative): 절충안. N-way로 그룹화. 실제 CPU 채택
(다음 탭에서 상세 설명)
프리페칭 및 현대 캐시
하드웨어 프리페칭: 스트라이드 접근 패턴 감지 → 미리 캐시 로드
vDSO: 커널 코드를 유저 공간에 매핑 → 모드 전환 없이 시스템 콜
LLC(Last Level Cache): L3 = 다수 코어 공유. MESI 프로토콜로 일관성
GPU 캐시: L1(SM별), L2(전체 공유), 텍스처 캐시
💡 킬러 문장: "캐시는 '자주 쓰는 것은 가까이'라는 원칙의 하드웨어 구현이다. CPU-메모리 속도 차이 100배를 캐시 하나로 10배 이하로 줄인다."
B6
캐시 메모리 사상 기법
직접·완전연관·집합연관 사상 · 충돌 미스 vs 비용 트레이드오프
개념
정의: 주기억장치의 블록을 캐시의 어느 슬롯(Line)에 적재할지 결정하는 규칙. 직접 사상·완전 연관 사상·집합 연관 사상 3가지 방식이 있으며 각각 충돌 미스와 구현 비용 간 트레이드오프 존재
3가지 사상 방식 비교
직접 사상
블록 i → 슬롯 (i mod 캐시라인수)
충돌 미스 多
비교기 1개
완전 연관 사상
어느 슬롯에나 적재
충돌 미스 없음
비교기 N개 (비용↑)
집합 연관 사상
슬롯을 집합으로 그룹화
그룹 내 연관 배치
N-way 절충안
주요 사상 방식 상세 비교
사상 방식 원리 주소 분해 장점 단점
직접 사상 메모리 블록 → 고정된 캐시 슬롯 1:1 매핑 태그 | 인덱스 | 오프셋 구현 단순. 검색 빠름 동일 인덱스 반복 접근 시 스래싱
완전 연관 메모리 블록을 캐시 어느 슬롯에나 자유 배치 태그 | 오프셋 충돌 미스 없음 전체 캐시 검색. 비교기 N개. 비용↑
집합 연관 캐시를 S개 집합으로 분할. 각 집합에 N개 슬롯(N-way) 태그 | 집합번호 | 오프셋 직접의 단순+완전의 유연성 절충 집합 내 비교기 N개. 복잡성 중간
교체 정책 및 실제 CPU 적용
N-way 집합 연관 예시
4-way 16집합 캐시:
집합 번호 = 블록번호 mod 16
집합 내 4개 슬롯 중 LRU로 교체

실제 CPU: Intel Core: L1 8-way, L2 4-way, L3 12~16-way
교체 정책 (집합 연관에서 중요)
LRU(Least Recently Used): 가장 오래 미사용 블록 교체. 구현 복잡
FIFO: 먼저 들어온 블록 먼저 교체. 구현 단순
Random: 무작위 교체. 하드웨어 단순
Pseudo-LRU: LRU 근사. 실제 많이 사용
💡 킬러 문장: "캐시 사상은 '어디에 넣을지'를 결정한다. 직접은 빠르지만 싸우고, 완전연관은 자유롭지만 비싸고, 집합연관은 그 중간의 현실적 선택이다."
B7
MESI 프로토콜 (캐시 일관성)
멀티코어 캐시 일관성 · Modified·Exclusive·Shared·Invalid 4상태
개념
정의: 멀티코어 프로세서에서 각 코어의 캐시 간 데이터 일관성(Cache Coherence)을 유지하기 위한 프로토콜. 각 캐시 라인을 M·E·S·I 4가지 상태로 관리하며, 읽기·쓰기 시 상태를 전이시켜 모든 코어가 최신 데이터를 보도록 보장
개념도 — MESI 4가지 상태
M (Modified)
캐시만 최신, 메모리는 구버전
다른 캐시에는 없음
Write-Back 필요
E (Exclusive)
캐시와 메모리 모두 최신
다른 캐시에는 없음
쓰기 시 M으로 전이
S (Shared)
캐시와 메모리 모두 최신
다른 캐시에도 존재
쓰기 불가(M 전이 먼저)
I (Invalid)
캐시 데이터 무효
읽기 시 캐시 미스
메모리/다른 캐시에서 로드
MESI 상태 전이 및 스누핑 vs 디렉토리
이벤트 현재→다음 상태 동작
로컬 읽기 (Miss) I → E or S 메모리·다른 캐시에서 로드. 다른 캐시 없으면 E, 있으면 S
로컬 쓰기 E or S → M S→M 시 다른 캐시에 Invalidate 전송
다른 캐시 읽기 M → S M 상태 데이터를 메모리에 Write-Back 후 공유
다른 캐시 쓰기 S → I 버스에 Invalidate 신호 → 해당 라인 무효화
스누핑(Snooping) 방식
원리: 모든 캐시가 공유 버스를 감청하여 다른 캐시의 요청을 감지
장점: 구현 단순. 소규모 멀티코어에 적합
사용: 4~8 코어 이하 (노트북·데스크탑 CPU)
디렉토리 방식
원리: 중앙 디렉토리에 각 캐시 라인의 소유 캐시 목록 유지
장점: 버스 없이 확장 가능. 수십~수백 코어
사용: NUMA 시스템. 서버용 다중 소켓 CPU
💡 킬러 문장: "MESI는 멀티코어의 진실 관리자다. 수십 개의 코어가 각자의 캐시를 가져도, MESI가 '누가 진짜 최신 데이터를 갖고 있는지' 항상 추적한다."
B8
보안 운영 체제 (Secure OS)
SELinux·AppArmor · MAC 기반 강제 접근 제어 · CC 인증
개념
정의: 기존 DAC(임의 접근 제어) 기반 OS에 MAC(강제 접근 제어)·무결성 보호·최소 권한 원칙을 구현하여 악성코드·내부자 위협에도 시스템 핵심 자원을 보호하는 운영체제

DAC vs MAC: DAC — 파일 소유자가 권한 결정(chmod). MAC — 보안 정책이 권한 결정(root도 정책 위반 불가)
주요 구성 요소 — "강무레감무"
두문자 요소 핵심 내용 구현
강제 접근 제어(MAC) 보안 레이블 기반 접근 제어. root도 정책 위반 불가. BLP·Biba 모델 구현 SELinux Type Enforcement
무결성 보호 시스템 파일 변조 탐지·방지. IMA(Integrity Measurement Architecture)로 부팅 시 측정 TPM + IMA, dm-verity
레이블(Security Label) 프로세스·파일·네트워크에 보안 레이블 부여. user:role:type:level 형식 SELinux context: unconfined_u:object_r:httpd_t
감사 로그(Audit) 모든 접근 거부·허용 이벤트 기록. 침해 사고 분석·규정 준수 Linux Audit 서브시스템, AVC 로그
최소 권한(Least Privilege) 서비스가 동작에 필요한 최소 권한만 보유. 취약점 악용 시 피해 최소화 SELinux 정책: Apache는 httpd_t로만 제한
보안 OS 종류 및 CC 인증 연계
보안 OS 종류
SELinux (NSA 개발): RHEL·Android 기본 탑재. Type Enforcement
AppArmor: Ubuntu 기본. 경로 기반 프로파일. 설정 쉬움
Tizen: 삼성 IoT OS. SELinux 기반
INTEGRITY RTOS: 자동차·항공 보안 RTOS
CC(Common Criteria) 인증 연계
CC EAL 4~7: 보안 OS는 EAL4+ 이상 요구
BLP 모델: 기밀성 보장 (높은 레벨 → 낮은 레벨 쓰기 금지)
Biba 모델: 무결성 보장 (낮은 레벨 → 높은 레벨 쓰기 금지)
군·정부: 기밀 시스템에 EAL5+ 보안 OS 요구
💡 킬러 문장: "보안 OS는 'root도 믿지 않는' OS다. 강제 접근 제어로 가장 높은 권한을 가진 프로세스도 정책이 허용한 일만 할 수 있도록 시스템 전체를 감옥에 가둔다."
B9
분산 운영 체제 (Distributed OS)
다수 노드를 단일 시스템처럼 관리 · 8대 투명성 · CAP 정리
개념
정의: 네트워크로 연결된 다수의 독립 컴퓨터(노드)를 사용자에게 하나의 단일 시스템처럼 보이게 관리하는 운영체제. 자원 공유·병렬 처리·내결함성을 OS 레벨에서 투명하게 제공
주요 구성 요소 — "투자분시명"
두문자 요소 핵심 내용 구현 기술
투명성 제공 위치·이동·복제·동시성·장애·성능·확장·접근 8대 투명성 RPC, 분산 파일시스템(NFS, GFS)
자원 관리 전체 노드의 CPU·메모리·스토리지를 풀(Pool)로 통합 관리 분산 스케줄러, 로드 밸런서
분산 동기화 여러 노드 간 임계 구역 동기화. 분산 뮤텍스·세마포어 Paxos·Raft 합의 알고리즘, Zookeeper
시간 동기화 분산 노드 간 시계 동기화. 이벤트 순서 결정에 필수 NTP, Lamport Clock, Vector Clock
명명 서비스 분산 환경에서 자원·서비스 위치를 이름으로 조회 DNS, Consul, etcd 서비스 디스커버리
분산 OS 사례 및 CAP 정리
분산 OS 사례
Plan 9 (Bell Labs): 모든 자원을 파일로 추상화
Amoeba (Tanenbaum): 마이크로커널 기반 분산 OS
Google Borg: 대규모 클러스터 관리 → K8s의 조상
쿠버네티스: 컨테이너 레벨의 분산 OS 역할
CAP 정리
CAP: 일관성(Consistency)·가용성(Availability)·분단 내성(Partition Tolerance) 중 2개만 동시 보장
CP 시스템: HBase, Zookeeper — 분단 시 가용성 포기
AP 시스템: Cassandra, DynamoDB — 분단 시 일관성 포기
💡 킬러 문장: "분산 OS의 궁극적 목표는 투명성이다. 수천 대의 서버가 마치 하나의 컴퓨터처럼 동작하게 하는 것 — 이것이 클라우드 컴퓨팅의 OS적 기반이다."
B10
시스템 콜 (System Call)
사용자→커널 공간 진입 인터페이스 · 특권 명령 요청 · Seccomp 보안
개념
정의: 사용자 프로세스가 OS 커널이 제공하는 특권 서비스(파일 I/O·프로세스 생성·네트워크·메모리 할당)를 요청하는 인터페이스. 사용자 모드(User Mode)에서 커널 모드(Kernel Mode)로의 제어 전환을 유발
개념도 — 시스템 콜 실행 흐름
사용자 프로그램
read() 호출
User Mode
C 라이브러리
glibc 래퍼
syscall 번호 설정
트랩(SYSCALL)
모드 전환
Kernel Mode 진입
커널 처리
sys_read() 실행
User Mode 복귀
주요 시스템 콜 분류 — "프파소장네"
두문자 분류 주요 시스템 콜 기능
프로세스 제어 fork(), exec(), wait(), exit(), kill() 프로세스 생성·종료·신호 전송
파일 관리 open(), read(), write(), close(), lseek(), stat() 파일 열기·읽기·쓰기·위치 변경
소켓·네트워크 socket(), bind(), connect(), send(), recv() 네트워크 통신
장치 관리 ioctl(), read(), write() (디바이스 파일) 하드웨어 장치 제어
메모리 관리 mmap(), munmap(), brk(), mprotect() 메모리 매핑·보호·할당
오버헤드 최소화 및 Seccomp 보안
시스템 콜 오버헤드 최소화
vDSO: 커널 코드를 유저 공간에 매핑 → 모드 전환 없이 일부 시스템 콜
io_uring: Linux 비동기 I/O → 배치 처리로 시스템 콜 횟수 감소
eBPF: 사용자 정의 코드를 커널에서 안전하게 실행
Seccomp 보안
Seccomp: 허용된 시스템 콜만 실행. 컨테이너 보안 핵심
Docker 기본: 44개 시스템 콜 차단 (ptrace·mount 등)
Sandbox: 브라우저·게임엔진이 Seccomp으로 시스템 콜 제한
4C 보안 Code 계층: 취약한 시스템 콜 사용 탐지
💡 킬러 문장: "시스템 콜은 사용자와 커널 사이의 창구다. 이 창구를 통하지 않고는 어떤 프로세스도 하드웨어를 건드릴 수 없다 — 이것이 OS 보안의 기본 원리다."
B11
메모리 할당 세그멘테이션
논리 세그먼트 기반 메모리 관리 · 외부 단편화 · 페이징과의 비교
개념
정의: 프로그램을 논리적 단위(세그먼트: 코드·데이터·스택·힙)로 분할하여 메모리에 적재하는 메모리 관리 기법. 세그먼트마다 가변 크기 할당 → 논리 구조 반영

주소 변환: 논리 주소 = (세그먼트 번호 s, 오프셋 d) → 세그먼트 테이블에서 Base + d = 물리 주소. d ≥ Limit이면 Segment Fault
세그멘테이션 vs 페이징 비교
비교 기준 세그멘테이션 페이징 세그-페이징 혼합
분할 단위 가변 크기 논리 단위 고정 크기 페이지(4KB) 세그먼트 내 페이지 분할
외부 단편화 발생(가변 크기 → 홀 발생) 없음 없음
내부 단편화 없음 발생(마지막 페이지) 발생(최소)
공유·보호 논리 단위로 용이 페이지 경계와 불일치 세그먼트 단위로 가능
현대 OS x86 보호모드 잔재 기본 메모리 관리 Intel x86 실제 구현
메모리 보호 및 현대적 맥락
메모리 보호 메커니즘
세그먼트 보호: 코드 세그먼트=실행전용, 스택=읽기쓰기, 커널=링0만 접근
링(Ring) 구조: Ring 0(커널), Ring 3(사용자)
ASLR: 주소 공간 무작위화 → 버퍼 오버플로 공격 난이도↑
NX 비트: 스택/힙 세그먼트를 실행 불가로 설정
현대 OS에서의 세그멘테이션
x86-64: 대부분 평탄 모델(Flat Model)로 세그멘테이션 사실상 미사용
존재 목적: FS/GS 세그먼트만 TLS(Thread Local Storage)에 사용
대신 페이징: 4단계 페이지 테이블(PML4)로 가상 메모리 관리
보안 OS: SELinux의 타입 강제 = 세그멘테이션 보호 이념 계승
💡 킬러 문장: "세그멘테이션은 '코드는 코드끼리, 데이터는 데이터끼리' 논리적으로 분리하는 시도다. 오늘날 페이징에 자리를 내줬지만, 메모리 보호의 철학은 ASLR·NX 비트로 계승됐다."
B12
모니터 (Monitor) — 동기화 기법
뮤텍스+조건변수 통합 · 고수준 동기화 추상화 · Java synchronized 기반
개념
정의: 상호 배제(Mutual Exclusion)와 조건 동기화를 결합한 고수준 동기화 메커니즘. 공유 자원과 이를 조작하는 연산을 하나의 모듈로 캡슐화하여, 한 번에 하나의 스레드만 모니터 내부 실행을 보장

vs 세마포어: 세마포어는 저수준(P/V 연산). 모니터는 고수준(언어 지원). 사용 오류 가능성↓
주요 구성 요소 — "상조대신진"
두문자 요소 핵심 내용 Java 예시
상호 배제 모니터 입구에 암시적 뮤텍스. 한 스레드만 내부 실행. 자동 잠금/해제 synchronized 메서드/블록
조건 변수 특정 조건이 충족될 때까지 스레드 대기. wait/signal/broadcast 연산 Object.wait(), notify(), notifyAll()
대기 큐 조건 미충족 스레드를 보관하는 큐. 조건 충족 시 큐에서 꺼내 재실행 Entry Queue + Condition Queue
signal 정책 Signal-and-Wait(HC): signal 후 신호자 대기 | Signal-and-Continue(Mesa): 신호 후 계속 실행 Java는 Mesa 방식(notify 후 계속)
재진입 불가 같은 스레드가 이미 잠근 모니터를 다시 잠그려 하면 교착상태 위험 ReentrantLock으로 재진입 허용
세마포어 vs 뮤텍스 vs 모니터 비교
구분 세마포어 뮤텍스 모니터
수준 저수준 (P/V) 저수준 (lock/unlock) 고수준 (언어 내장)
소유권 없음 잠근 스레드만 해제 암시적 (진입 스레드)
조건 동기화 직접 구현 필요 별도 조건변수 필요 내장(wait/signal)
오용 가능성 높음 중간 낮음
💡 킬러 문장: "모니터는 동기화의 캡슐화다. 세마포어가 '열쇠를 직접 관리'하는 것이라면, 모니터는 '문이 알아서 잠기는 방'이다. 프로그래머가 잠금을 잊을 수 없다."
B13
인터럽트 / 폴링 / 데이지 체인
I/O 완료 통보 방식 3종 · ISR · 인터럽트 우선순위 처리
개념
인터럽트: I/O 장치가 작업 완료 시 CPU에 비동기 신호를 보내 처리를 요청. CPU는 현재 작업 중단 → ISR(Interrupt Service Routine) 실행 → 복귀

폴링(Polling): CPU가 주기적으로 장치 상태를 직접 확인(Busy Waiting). 단순하나 CPU 낭비

데이지 체인(Daisy Chain): 인터럽트 요청 장치 중 우선순위가 높은 것부터 체인 방식으로 확인
주요 구성 요소 — "인폴데비마"
두문자 요소 핵심 내용 세부 내용
인터럽트 벡터 인터럽트 번호 → ISR 주소를 매핑한 테이블. 하드웨어/소프트웨어 인터럽트 분류 x86: IDT(Interrupt Descriptor Table)
폴링 vs 인터럽트 폴링: 단순·저지연(검색 빈도 높을 때). 인터럽트: 비동기·효율적(빈도 낮을 때) NIC: 고속에서 폴링(NAPI), 저속에서 인터럽트
데이지 체인 인터럽트 장치들을 직렬 체인으로 연결. CPU가 인터럽트 발생 장치를 순서대로 확인 장치A → 장치B → 장치C → CPU
비마스크 인터럽트 NMI(Non-Maskable Interrupt): 하드웨어 오류·전원 이상. 마스크 불가능 vs 마스크 인터럽트: CLI/STI로 차단 가능
마스킹·우선순위 PIC(Programmable Interrupt Controller)로 우선순위 설정. 높은 우선순위가 낮은 것 선점 x86: 8259A PIC → APIC
DMA와 인터럽트 협력
인터럽트 종류
하드웨어 인터럽트: 키보드·마우스·NIC·디스크 완료
소프트웨어 인터럽트(트랩): INT 명령·시스템 콜·예외
예외(Exception): 페이지 폴트, 세그멘트 오류, 오버플로
NMI: 전원 이상, 메모리 오류 → 즉시 처리
DMA와 인터럽트 협력
DMA: CPU 개입 없이 I/O 장치 ↔ 메모리 직접 전송
흐름: CPU가 DMA에 전송 지시 → CPU는 다른 작업 → DMA 완료 시 CPU에 인터럽트
효과: 대용량 I/O에서 CPU 오버헤드 최소화
비교: 소량은 인터럽트, 대량은 DMA
💡 킬러 문장: "인터럽트는 CPU와 I/O 장치의 비동기 협력을 가능하게 한다. '일 다 하면 알려줘'와 '자꾸 확인해'의 차이가 인터럽트와 폴링의 차이다."
B14
운영체제 부팅 (OS Booting)
POST→BIOS/UEFI→부트로더→커널 적재 · Secure Boot + TPM
개념
정의: 전원 인가 후 OS가 완전히 초기화되어 사용자 인터페이스를 제공하기까지의 단계적 초기화 과정. 하드웨어 자가 진단 → 펌웨어 초기화 → 부트로더 실행 → OS 커널 적재 순으로 진행
개념도 — 부팅 5단계
POST
HW 자가 진단
BIOS/UEFI
HW 초기화
Secure Boot
부트로더
GRUB
커널 선택
커널 초기화
메모리·드라이버
루트 마운트
Init/systemd
PID 1 실행
서비스 시작
주요 구성 요소 — "포유부커이"
두문자 단계 핵심 내용 세부 내용
POST CPU·메모리·그래픽·스토리지 자가 진단. 실패 시 비프음/LED 코드 메모리 테스트, BIOS ROM 체크섬
UEFI/BIOS BIOS: 레거시 16비트, MBR. UEFI: 64비트, GPT, Secure Boot, 빠른 부팅 Secure Boot: 서명된 부트로더만 실행
부트로더 GRUB2(Linux), Windows Boot Manager. 커널 이미지·initrd 메모리 적재 멀티부팅 메뉴, 커널 파라미터 전달
커널 초기화 CPU 모드 전환, 메모리 맵 구성, 드라이버 초기화, 루트 파일시스템 마운트 initrd: 초기 RAM 디스크(임시 루트)
Init/systemd PID 1 프로세스. 모든 서비스의 조상. systemd: 병렬 서비스 시작으로 부팅 속도↑ runlevel→target 전환. multi-user.target
Secure Boot + TPM 연계
Secure Boot + TPM
Secure Boot: UEFI가 부트로더 서명 검증 → 미서명 코드 실행 차단 → 루트킷 방지
TPM: 부팅 과정 각 단계의 해시값(PCR) 측정·저장
Measured Boot: 부팅 체인 무결성 증명 → 기밀 컴퓨팅 원격 증명과 연계
BitLocker: TPM으로 디스크 암호화 키 보호
부팅 공격 및 방어
부트킷: MBR/VBR 감염 → OS 이전에 악성코드 실행
방어: UEFI Secure Boot + TPM Measured Boot
BIOS 취약점: UEFI 펌웨어 취약점(LoJax 등)
방어: UEFI 펌웨어 업데이트, Boot Guard(Intel)
💡 킬러 문장: "부팅은 신뢰의 사슬이다. UEFI가 부트로더를 믿고, 부트로더가 커널을 믿고, 커널이 서비스를 믿는다. Secure Boot는 이 사슬의 첫 고리를 잠그는 자물쇠다."
B15
운영체제 커널 (OS Kernel)
모놀리식·마이크로·하이브리드·엑소 커널 · eBPF
개념
정의: OS의 핵심 구성 요소로 하드웨어와 응용 프로그램 사이에서 자원 관리·프로세스 스케줄링·메모리 관리·I/O 제어를 담당하는 소프트웨어 계층. 항상 메모리에 상주하며 커널 모드(특권 모드)로 실행
개념도 — 커널 유형 4가지
모놀리식 커널
모든 기능이 커널 공간에
빠름. 모듈 간 직접 통신
예: Linux, Unix
마이크로 커널
최소 기능만 커널에
나머지는 사용자 공간 서버
예: Mach, QNX, MINIX
하이브리드 커널
모놀리식+마이크로 결합
실용적 절충안
예: Windows NT, macOS XNU
엑소 커널
HW 추상화 최소화
라이브러리 OS에 위임
연구용 (MIT Exokernel)
모놀리식 vs 마이크로 커널 상세 비교 및 eBPF
비교 기준 모놀리식 커널 마이크로 커널
구조 모든 서비스(파일시스템·드라이버·네트워크)가 커널 공간에 존재 최소 기능(IPC·메모리·스케줄링)만 커널. 나머지는 사용자 공간 서버
성능 높음 (직접 함수 호출) 낮음 (IPC 메시지 패싱 오버헤드)
안정성 드라이버 버그 → 커널 패닉 서버 충돌해도 커널은 유지. 재시작 가능
대표 Linux (모듈화로 일부 단점 보완) QNX(자동차), MINIX(인텔 ME), L4
Linux 커널 모듈화
LKM: 동적 로드/언로드 가능한 커널 코드 조각
장점: 필요한 드라이버만 로드 → 메모리 효율
단점: 악성 모듈 로드 시 커널 전체 침해
모듈 서명: CONFIG_MODULE_SIG로 서명된 모듈만 로드
eBPF — 커널 확장의 현대적 방식
eBPF: 사용자 정의 프로그램을 커널에서 안전하게 실행
사용처: 네트워크 필터링·관측가능성·보안 정책
장점: 커널 수정 없이 기능 확장. 안전성 검증(Verifier)
대표: Cilium(K8s 네트워크), Falco(보안), bpftrace
💡 킬러 문장: "커널 구조는 기능과 안정성의 트레이드오프다. 모놀리식은 빠르지만 취약하고, 마이크로는 안전하지만 느리다. Linux는 모듈화로 그 중간을 찾았고, eBPF로 미래를 열었다."
B16
실시간 운영체제 (RTOS)
시간 제약 보장 · Hard/Soft RTOS · FreeRTOS·VxWorks · 자동차·항공
개념
정의: 정해진 시간 제약(Deadline) 내에 태스크를 완료하는 것을 보장하는 운영체제. 응답 시간의 예측 가능성(Determinism)이 핵심

Hard RTOS: 데드라인 위반 = 시스템 실패 (항공기 제어·원자력). Soft RTOS: 데드라인 위반 = 성능 저하이지만 치명적이지 않음 (스트리밍·게임)
주요 구성 요소 — "결선우태선"
두문자 요소 핵심 내용 RTOS 구현
결정론적 스케줄링 최악 실행 시간(WCET) 분석으로 모든 태스크가 데드라인 내 완료됨을 증명 Rate Monotonic, EDF 스케줄러
선점형 커널 높은 우선순위 태스크가 언제든 현재 실행 태스크를 선점. 지연 최소화 FreeRTOS: configUSE_PREEMPTION=1
우선순위 스케줄링 각 태스크에 고정 우선순위 부여. 가장 높은 우선순위가 항상 실행 256단계 우선순위 (FreeRTOS)
태스크 관리 태스크(스레드)·큐·세마포어·뮤텍스·이벤트 그룹으로 동기화 xTaskCreate(), xQueueSend()
선점 레이턴시 인터럽트 발생 → 태스크 스위치까지 시간. RTOS는 수 μs 이내 보장 ISR → Tick ISR → 컨텍스트 스위치
대표 RTOS 및 ISO 26262 연계
대표 RTOS 제품
FreeRTOS: 오픈소스. IoT·임베디드. Amazon FreeRTOS
VxWorks: 군사·항공·화성 탐사선. IEC 61508 인증
QNX: 자동차 인포테인먼트. BlackBerry 인수
INTEGRITY: 자동차·항공 보안 RTOS
AUTOSAR OS: 자동차 Classic Platform의 OS
RTOS vs GPOS 핵심 차이
RTOS: 결정론적 스케줄링. 최대 레이턴시 보장. 인터럽트 지연 수 μs
GPOS: 처리량·공평성 최적화. 평균 레이턴시 최소화. 인터럽트 지연 수 ms 가능
ISO 26262: ASIL-D 자동차 안전 RTOS → QNX·INTEGRITY 인증
💡 킬러 문장: "RTOS는 '얼마나 빠른가'가 아닌 '얼마나 예측 가능한가'가 핵심이다. 0.1초가 걸려도 항상 0.1초여야 하는 것이 실시간의 본질이다."
B17
우선순위 역전 / 우선순위 상속
RTOS 핵심 문제 · Mars Pathfinder 사고 · Priority Ceiling Protocol
개념
우선순위 역전(Priority Inversion): 높은 우선순위 태스크(H)가 낮은 우선순위 태스크(L)가 보유한 자원을 기다리는 동안, 중간 우선순위 태스크(M)가 L을 선점하여 결과적으로 H가 M보다 늦게 실행되는 현상

역사적 사례: 1997년 화성 탐사선 Mars Pathfinder의 시스템 리셋 반복 버그가 우선순위 역전이 원인이었으며, 우선순위 상속 프로토콜 활성화로 해결
개념도 — 우선순위 역전 발생 과정
시간→
L 실행 중 (뮤텍스 보유)
H(고)
H가 뮤텍스 대기 (차단)
M(중)
M이 L 선점 → H보다 먼저 실행! (역전)
L(저)
L이 M에 선점당함 → 뮤텍스 해제 지연
결과: H(고) 는 M(중) 이 끝날 때까지 기다려야 함 = 우선순위 역전!
해결 방법 비교 — 우선순위 상속 vs 우선순위 상한
해결책 원리 장점 단점 적용
우선순위 상속 L이 뮤텍스 보유 중 H가 대기하면, L의 우선순위를 일시적으로 H 수준으로 승격. M이 L을 선점 불가 구현 단순. 역전 방지 연쇄 상속 시 복잡. 데드락 가능 FreeRTOS, POSIX mutexattr
우선순위 상한 각 뮤텍스에 상한 우선순위(자원 사용 태스크 중 최고) 설정. 뮤텍스 획득 시 해당 상한으로 승격 데드락 방지. 예측 가능 불필요한 우선순위 승격 발생 VxWorks, INTEGRITY
Mars Pathfinder 사례 및 데드락 연계
Mars Pathfinder 사고 (1997)
증상: 탐사선이 주기적으로 리셋 → 데이터 손실
원인: VxWorks RTOS의 우선순위 역전 → 워치독 타이머 만료 → 시스템 리셋
해결: 지구에서 원격으로 우선순위 상속 프로토콜 활성화
의의: RTOS 우선순위 역전의 현실 위험성을 증명한 역사적 사례
데드락 vs 우선순위 역전
데드락: 두 태스크가 서로의 자원을 기다리며 영원히 대기
우선순위 역전: 결국 실행은 되지만 우선순위 순서가 뒤바뀜
공통: 자원 잠금(뮤텍스)이 원인
예방: 데드락은 자원 순서 고정. 역전은 우선순위 상속/상한으로 해결
💡 킬러 문장: "우선순위 역전은 '높은 자가 낮은 자에게 발목 잡히는' 현상이다. 화성 탐사선을 멈춘 이 버그는 RTOS 설계에서 우선순위 상속이 선택이 아닌 필수임을 가르쳐줬다."