본문 바로가기
시스템아키텍처

프로세스·스레드 멀티태스킹·컨텍스트 스위칭 정리

by 매일기술사 2026. 4. 3.
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