Operating System · 한장정리
[기술사토픽] 프로세스·쓰레드 완벽 정리 - 구성·멀티쓰레딩·컨텍스트스위칭
프로세스와 쓰레드의 개념·구성·비교, 멀티쓰레딩 장단점, 컨텍스트 스위칭 메커니즘을 기술사 시험 관점으로 완벽 정리합니다.
Ⅰ.프로세스 vs 쓰레드 비교
| 구분 | 프로세스 | 쓰레드 |
|---|---|---|
| 정의 | CPU가 실행하는 프로그램 단위 | 프로세스 내 제어 흐름 기본 단위(경량 프로세스) |
| 메모리 | 독립 주소공간(Code·Data·Heap·Stack) | Code·Data·Heap 공유, Stack만 독립 |
| 통신 | IPC 필요(시스템 콜·전체 Blocking) | 공유메모리(Library Call·일부 Blocking) |
| 문맥교환 | 느림 (전체 PCB 저장·복구) | 빠름 (TCB만 저장·복구) |
| 보호 | 강력한 독립 실행 | 프로세스 내 메모리 공유·보호 약함 |
| 장점 | 실행 순서 예측 가능 | 응답성·자원 효율성·경제성 |
| 단점 | 성능 부하(컨텍스트 스위칭) | 비순차 실행·동기화 문제 |
Ⅱ.멀티쓰레드 구성
하나의 프로세스 내 여러 쓰레드가 병렬 수행. 서로 다른 프로세서에서 프로그램의 다른 부분 동시 실행 가능.
| 항목 | 설명 |
|---|---|
| 자원 공유 | Code·Data·Heap 공유. Stack은 쓰레드별 독립 |
| 성능 | 경량 컨텍스트 스위칭으로 낮은 시스템 부하 |
| 동기화 필요 | 공유 자원 접근 시 Race Condition 방지 |
| SMT(HyperThreading) | 하나의 코어에서 2개 이상 쓰레드 동시 처리 → 코어 활용률 극대화 |
시험 포인트
쓰레드는 프로세스의 Subset. PCB는 하나 이상의 TCB 포함.
프로세스 종료 시 포함된 모든 쓰레드 종료됨
Ⅲ.컨텍스트 스위칭
| 단계 | 설명 |
|---|---|
| 1. 중단 | 현재 실행 프로세스(쓰레드) 중단 |
| 2. 상태 저장 | CPU 레지스터·PC 등을 PCB(TCB)에 저장 |
| 3. 스케줄러 | 다음 실행할 프로세스(쓰레드) 선택 |
| 4. 상태 복구 | 선택된 프로세스의 PCB(TCB)를 CPU에 로드 |
| 5. 실행 재개 | 선택된 프로세스 실행 계속 |
◎구성도 & 구성요소
Procedure · Steps
1
실행 중단
현재 프로세스 CPU 점유 해제
▼
2
상태 저장
PC·레지스터 → PCB에 보관
▼
3
스케줄러 선택
다음 실행 프로세스 결정
▼
4
상태 복구
선택된 프로세스 PCB → CPU 로드
▼
5
실행 재개
선택된 프로세스 실행 계속
State · Flow Diagram
생성준비실행대기종료승인디스패치타임아웃/선점I/O 요청I/O 완료 → 준비큐exit()
Ⅴ.결론
결론
프로세스는 자원 할당 단위, 쓰레드는 CPU 실행 단위입니다.
멀티코어 환경에서 멀티쓰레드는 병렬 처리와 성능 최적화의 핵심입니다.
"쓰레드는 경량 프로세스로 동시성과 성능을 동시에 확보하는 핵심 실행 단위다."
블로그: 기술사 학습노트 · imt-log.tistory.com
'시스템아키텍처' 카테고리의 다른 글
| ISO 15504(SPICE) 소프트웨어 프로세스 평가 정리 (1) | 2026.04.04 |
|---|---|
| 마이크로서비스 아키텍처(MSA) 개념과 설계 원칙 정리 (0) | 2026.04.04 |
| SOA·ESB 웹서비스 아키텍처 개념과 비교 정리 (0) | 2026.04.03 |
| 운영체제(OS) 핵심 개념과 구조 완벽 정리 (0) | 2026.04.02 |
| 컨테이너 오케스트레이션과 서비스 메시(Istio) 정리 (0) | 2026.04.02 |