⚡ 운영체제 - 프로세스, 스레드, 컨텍스트 스위칭
⚡ 운영체제 - 프로세스, 스레드, 컨텍스트 스위칭
🔹 개요
- 운영체제는 프로그램 실행의 핵심 환경을 제공하는 시스템 소프트웨어다.
- 오늘은 그중에서도 핵심 개념인
Process
,Thread
,Context-Switching
에 대해 정리한다.
🔹 프로세스(Process
)란
- 프로세스는 실행 중인 프로그램을 의미한다.
- 프로그램이 메모리에 올라가 실행되면서
CPU
자원, 메모리 자원 등을 할당 받아 독립된 실행 단위로 동작한다.
▫️ 프로세스의 특징
- 각 프로세스는 독립된 메모리 공간을 가진다.
- 커널은 각 프로세스를 분리된 작업 단위로 관리한다.
- 다른 프로세스의 메모리 영역에 접근할 수 없다.
- 프로세스 간 통신은 별도의 메커니즘(
IPC
, 파이프, 소켓 등)을 통해 이뤄진다.
▫️ 프로세스 구성 요소
- 코드 영역: 실행할 프로그램 코드
- 데이터 영역: 전역 변수, 정적 변수
- 힙(
Heap
): 동적 메모리 할당 영역 - 스택(
Stack
): 함수 호출 시 생성되는 지역 변수, 매개변수 저장 영역 PCB
(Process Control Block
): 프로세스 상태,PID
, 레지스터 정보 등 메타데이터를 담는 구조체
🔹 스레드(Thread
)란
- 스레드는 프로세스 내에서 실행되는 작업의 흐름이다.
- 하나의 프로세스 안에는 하나 이상의 스레드가 존재할 수 있고, 이들은 자원을 공유하며 실행된다.
▫️ 스레드의 특징
- 같은 프로세스 안에서 메모리(코드, 데이터, 힙)를 공유한다.
- 스택과 레지스터는 스레드마다 따로 할당된다.
- 오버헤드가 낮고, 컨텍스트 스위칭 비용이 작다.
- 같은 프로세스 내의 스레드끼리는 상대적으로 빠르게 통신 가능하다.
🔹 프로세스와 스레드의 차이
항목 | 프로세스 | 스레드 |
---|---|---|
메모리 공간 | 독립적 | 공유 |
생성 비용 | 크다 | 작다 |
통신 | 느림 | 빠름 |
안정성 | 높음 | 낮음 |
🔹 컨텍스트 스위칭이란
CPU
는 동시에 여러 프로세스를 실행할 수 없다.- 멀티태스킹처럼 보이는 것은 운영체제가 매우 빠르게 실행 중인 작업을 전환하기 때문이다.
- 이 작업이 바로 컨텍스트 스위칭이다.
▫️ 컨텍스트 스위칭의 정의
- 하나의 프로세스(또는 스레드)의 실행 상태(컨텍스트)를 저장하고, 다른 프로세스의 컨텍스트를 로딩하여
CPU
제어를 전환하는 작업을 의미한다.
▫️ 저장되는 컨텍스트 정보
CPU
레지스터 값- 프로그램 카운터(
PC
) - 스택 포인터
- 메모리 매핑 정보 (
MMU
관련) PCB
정보 등
▫️ 컨텍스트 스위칭 과정
- 현재 실행 중인 프로세스의 상태 저장 (
PCB
) - 새로운 프로세스의
PCB
에서 상태 불러오기 CPU
제어권을 새 프로세스로 넘김
▫️ 컨텍스트 스위칭의 비용
- 자주 발생하면
CPU
시간이 저장/복원에 소모되어 실제 연산 비율이 줄어듬 - 캐시 무효화 등으로 인한 성능 저하 발생 가능
🔹 멀티프로세스 vs 멀티스레드
- 멀티프로세스는 여러 개의 독립된 프로세스를 병렬로 실행하는 것을 의미
- 멀티스레드는 하나의 프로세스 안에서 여러 스레드가 병렬로 실행되는 것을 의미
- 멀티프로세스는 안정성과 격리성이 뛰어나지만, 자원 소비가 크고 문맥 전환 비용도 높다.
- 반면 멀티스레드는 자원 공유를 통해 효율성이 높지만, 스레드 간 충돌이 발생하면 전체 프로세스가 위험해질 수 있다.
🔹 정리
- 프로세스는 실행 중인 독립 프로그램 단위이며, 각각 고유한 메모리 공간과 시스템 자원을 가진다.
- 스레드는 프로세스 내부의 실행 흐름 단위이며, 여러 스레드가 하나의 프로세스 자원을 공유하면서 병렬로 실행될 수 있다.
- 컨텍스트 스위칭은
CPU
가 실행할 작업을 전환하기 위해 현재 상태를 저장하고 다른 작업의 상태를 복원하는 과정이다. - 다수의 작업을 동시에 처리하기 위해 운영체제는 여러 프로세스 또는 하나의 프로세스 내 여러 스레드를 사용하는 구조를 갖는다.
- 멀티프로세스는 안정성과 오류 격리에 유리하고, 멀티스레드는 자원 공유와 문맥 전환 비용 측면에서 효율적이다.
This post is licensed under CC BY 4.0 by the author.