스터디 · 강의 도우미
프로세스와 스레드
High confidenceconceptedited by Cairni · 방금 · AIv1
개요
프로세스(Process) 는 디스크에 저장된 수동적 실행 파일(프로그램)이 메모리에 적재되어 실행 중인 능동적 개체다. 운영체제는 여러 프로세스를 관리하기 위해 PCB (Process Control Block) 를 사용하며, 이번 주(3주차)는 프로세스의 구조·상태 전이·컨텍스트 스위치, 그리고 멀티스레딩 을 다룬다. 운영체제 3주차 — 프로세스와 스레드.md
1. 프로세스란?
| 구분 | 설명 |
|---|---|
| 프로그램 | 디스크에 저장된 수동적 실행 파일 |
| 프로세스 | 메모리에 적재되어 실행 중인 능동적 개체 |
각 프로세스는 독립된 주소 공간을 가지며, 아래 네 영역으로 구성된다. 운영체제 3주차 — 프로세스와 스레드.md
PCB에 저장되는 정보
PCB (Process Control Block) 에는 다음 정보가 담긴다. 운영체제 3주차 — 프로세스와 스레드.md
- 프로세스 상태
- 프로그램 카운터
- 레지스터 값
- 메모리 정보
- 열린 파일 목록
2. 프로세스 상태 전이
프로세스는 아래 다섯 가지 상태를 오간다. CPU는 한 번에 하나의 프로세스만 running 상태로 실행한다. 운영체제 3주차 — 프로세스와 스레드.md
| 상태 | 의미 |
|---|---|
new | 프로세스 생성 중 |
ready | CPU 할당 대기 중 (스케줄러가 큐에서 선택) |
running | CPU에서 실행 중 |
waiting | I/O 또는 이벤트 완료 대기 중 |
terminated | 실행 완료 |
3. 컨텍스트 스위치
컨텍스트 스위치 는 CPU가 한 프로세스에서 다른 프로세스로 전환할 때 발생한다. 운영체제 3주차 — 프로세스와 스레드.md
핵심 포인트: 컨텍스트 스위치는 순수 오버헤드다 — 전환이 일어나는 동안 유용한 작업이 수행되지 않으므로, 너무 잦으면 성능이 저하된다. 운영체제 3주차 — 프로세스와 스레드.md
4. 스레드와 멀티스레딩
스레드(Thread) 는 프로세스 내 실행 단위다. 같은 프로세스의 스레드들은 일부 자원을 공유하고, 일부는 독립적으로 가진다. 운영체제 3주차 — 프로세스와 스레드.md
| 자원 | 공유 여부 |
|---|---|
| 코드(Code) | ✅ 공유 |
| 데이터(Data) | ✅ 공유 |
| 힙(Heap) | ✅ 공유 |
| 스택(Stack) | ❌ 각 스레드 독립 |
| 레지스터 | ❌ 각 스레드 독립 |
멀티스레딩의 장단점
멀티스레딩 의 장점과 단점은 다음과 같다. 운영체제 3주차 — 프로세스와 스레드.md
장점
- 응답성(Responsiveness) 향상
- 자원 공유(Resource Sharing)
- 경제성(Economy) — 프로세스 생성보다 스레드 생성 비용이 낮음
- 멀티코어 활용 가능
단점
- 공유 자원 접근 시 동기화 문제(레이스 컨디션) 발생 가능 — 동기화는 이후 주차에서 다룸
5. 앞뒤 주차 연결
| 주차 | 주제 |
|---|---|
| 2주차 | 부팅과 커널 구조 |
| 3주차 | 프로세스와 스레드 (현재 페이지) |
| 4주차 | 프로세스 간 통신(IPC) |
| 5주차 | CPU 스케줄링 |