Learning
토픽 90 / 97·비교표

프로세스 관리

프로세스 vs 스레드

항목프로세스스레드
주소공간독립프로세스 내 공유 (코드/데이터/힙)
생성 비용무거움가벼움 (10~100배 빠름)
통신IPC 필요 (파이프, 소켓 등)공유 메모리로 직접 통신
안정성크래시 격리 (다른 프로세스 무사)한 스레드 크래시→전체 프로세스 종료
컨텍스트 스위칭무거움 (메모리 맵 변경, TLB 플러시)가벼움 (공유 메모리)

PCB vs TCB

항목PCB (Process Control Block)TCB (Thread Control Block)
단위프로세스스레드
크기무거움가벼움
주소공간독립 주소공간 정보 포함공유 주소공간 (프로세스 PCB 참조)
포함 정보PID, 메모리 맵, 파일 테이블스레드 ID, PC, 레지스터, 스택

좀비 프로세스 vs 고아 프로세스

항목좀비 프로세스고아 프로세스
상태종료됨, PCB 잔존실행 중, 부모 없음
원인부모가 wait() 미호출부모가 먼저 종료
처리부모 wait() 또는 부모 종료init(PID 1)이 입양
위험성PID 고갈 가능낮음 (정상 동작 계속)

멀티스레딩 vs 멀티프로세싱

항목멀티스레딩멀티프로세싱
메모리공유독립
동기화필요 (뮤텍스, 세마포어)불필요 (독립 주소공간)
안전성낮음 (레이스 컨디션, 데드락)높음 (프로세스 격리)
오버헤드낮음높음
적합공유 데이터 많은 작업격리 필요한 작업

사용자 수준 스레드 vs 커널 수준 스레드

항목사용자 수준 (M:1)커널 수준 (1:1)하이브리드 (M:N)
관리사용자 공간 라이브러리커널이 관리혼합
속도빠름 (모드 전환 없음)느림 (시스템 호출)중간
병렬성불가 (커널 인식 못함)진짜 병렬유연
사례Green ThreadLinux, WindowsGo goroutine

5상태 모델 vs 7상태 모델

항목5상태 모델7상태 모델
상태New/Ready/Running/Waiting/Terminated+ Suspended Ready/Suspended Blocked
스와핑미고려포함 (중기 스케줄러)
복잡도단순실제 OS에 근접

cgroups vs namespaces

항목cgroupsnamespaces
역할자원 제한 (얼마나 사용)환경 격리 (무엇을 볼 수 있는지)
대상CPU, 메모리, I/O, 네트워크PID, MNT, NET, UTS, IPC, USER
제어사용량 제한/계측독립된 시스템 뷰 제공
컨테이너 역할자원 할당환경 격리