컴퓨터 공부하다 보면 꼭 나오는 개념이다.
프로세스(Process)와 스레드(Thread)
처음 보면 헷갈릴 수 있다.
프로세스: 운영체제로부터 자원을 할당받은 작업의 단위
스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
일단 표로 정리해 봤다
항목 | 프로세스 (Process) | 스레드 (Thread) |
정의 | 실행 중인 프로그램 | 프로세스 내 작업 단위 |
메모리 | 서로 완전히 분리 | 공유 (코드, 힙, 리소스 등) |
독립성 | 완전 독립적 | 같은 프로세스 내에서는 의존적 |
생성 비용 | 무거움 (비용 큼) | 가벼움 (생성 빠름) |
오류 영향 | 하나 죽어도 다른 프로세스 OK | 하나 죽으면 전체 프로세스에 영향 가능 |
비유를 하자면,
프로세스는 하나의 가방이다.
그 안에서 여러 명이 같이 일하는 구조가 스레드이다.
가방마다 책, 공책, 필통이 있고
가방(프로세스)끼리는 공유를 안 한다.
가방 안에 있는 사람들(스레드)은 같은 책, 공책, 필통을 공유함
프로그램 실행 시 하나의 프로세스가 생성된다.
프로세스 안에는 최소 1개의 스레드가 있다.
프로세스는 독립적이고, 스레드는 자원을 공유한다.
스레드는 빠르지만, 충돌 방지를 위해 동기화 관리가 필요하다.
요약: 프로세스는 독립된 프로그램 단위, 스레드는 그 안에서 같이 일하는 팀원!!
'운영체제' 카테고리의 다른 글
CPU 스케줄링 방식 (0) | 2025.06.14 |
---|---|
문맥 교환(Context Switching) (0) | 2025.06.13 |