스터디 · 강의 도우미

프로세스와 스레드

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프로세스 생성 중
readyCPU 할당 대기 중 (스케줄러가 큐에서 선택)
runningCPU에서 실행 중
waitingI/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 스케줄링

관련 페이지

Made with CairniExplore public wikis →