728x90
반응형
SMALL
1. 기본 정의
- 프로세스(Process): 실행 중인 프로그램의 독립적인 단위.
- 비유: 여러 개의 독립된 공장에서 각자 다른 물건을 생산.
- 스레드(Thread): 프로세스 안에서 실행되는 작은 작업 단위.
- 비유: 하나의 공장 안에서 여러 라인이 동시에 물건을 생산.
2. 주요 차이점
구분 | 프로세스 | 스레드 |
독립성 | 프로세스는 독립적. 한 프로세스가 종료되면 다른 프로세스에 영향을 주지 않음. | 스레드는 같은 프로세스 안에서 메모리와 자원을 공유함. |
메모리 | 각 프로세스는 독립된 메모리 공간을 사용. | 스레드는 프로세스 내에서 메모리를 공유함. |
오버헤드 | 프로세스 간 전환(Context Switching)은 비용이 큼. | 스레드 간 전환은 비용이 적음. |
통신 방식 | 프로세스 간 통신(IPC)은 복잡하고 느림. | 스레드는 같은 메모리를 공유하므로 통신이 빠름. |
실행 단위 | 프로세스는 독립적으로 실행되는 프로그램. | 스레드는 프로세스 안에서 동시에 실행되는 작은 작업. |
3. 비유로 쉽게 이해하기
1) 독립성과 공유
- 프로세스:
- 여러 개의 공장(프로세스)이 각각 독립적으로 작업을 함.
- 한 공장이 정전(오류)으로 멈춰도 다른 공장에는 영향이 없음.
- 스레드:
- 한 공장 안에서 여러 작업 라인(스레드)이 동시에 작업을 함.
- 공장 전체(프로세스)에 문제가 생기면 모든 작업 라인(스레드)도 멈춤.
2) 메모리 사용
- 프로세스:
- 공장이 별도의 창고(메모리)를 사용함.
- 다른 공장과 창고를 공유하지 않음.
- 스레드:
- 같은 공장의 여러 작업 라인이 하나의 창고를 공유함.
- 자료를 공유하기 쉽지만, 충돌 문제가 발생할 가능성도 있음.
3) 오버헤드
- 프로세스 간 전환:
- 공장에서 다른 공장으로 작업을 옮기려면, 모든 자료를 옮겨야 하기 때문에 시간이 많이 걸림.
- 스레드 간 전환:
- 같은 공장 내에서 작업 라인만 바꾸면 되므로 더 빠르고 간단함.
4. 언제 프로세스를 사용하고 언제 스레드를 사용하는가?
- 프로세스 사용:
- 독립적인 작업이 필요하고, 작업 간 충돌을 방지해야 할 때.
- 예: 웹 브라우저(크롬)에서 각 탭을 별도의 프로세스로 실행.
- 스레드 사용:
- 같은 작업에서 여러 부분을 동시에 처리해야 할 때.
- 예: 웹 브라우저에서 한 탭 안에서 이미지 로딩, 텍스트 렌더링 등을 동시에 실행.
용어 정리
프로세스 | 실행 중인 독립적인 프로그램 (예: 인터넷 창 하나, 워드 프로그램). |
스레드 | 프로세스 안에서 실행되는 작은 작업 단위 (예: 한 인터넷 창에서 텍스트 로딩, 이미지 로딩). |
독립성 | 한 작업(프로세스)이 다른 작업과 영향을 주고받지 않음. |
메모리 공유 | 여러 작업(스레드)이 같은 저장 공간을 함께 사용함. |
오버헤드 | 작업을 바꿀 때 드는 시간과 자원 (비용). |
IPC (Inter-Process Communication) | 서로 다른 작업(프로세스)들이 정보를 주고받는 방법. |
Context Switching | 현재 작업을 중단하고 다른 작업으로 전환하는 과정. |
쉬운 요약
- 프로세스는 독립적인 프로그램(여러 공장)이고, 스레드는 같은 프로그램 안의 작업 단위(공장 안의 작업 라인).
- 프로세스는 독립적이라서 안전하지만, 전환 비용이 큼.
- 스레드는 메모리를 공유하고 빠르게 동작하지만, 문제가 발생하면 전체 프로세스가 멈출 가능성이 있음.
반응형
SMALL
'운영체제' 카테고리의 다른 글
효율적인 프로세스 상태 관리 방법: 쉬운 설명 (1) | 2024.12.10 |
---|---|
프로세스의 네 가지 상태 : 쉬운설명 (1) | 2024.12.10 |
프로세스 상태가 PCB와 문맥 교환에 미치는 영향 (0) | 2024.12.10 |
프로세스 제어 블록과 문맥 교환 (0) | 2024.12.10 |
프로세스의 연산 (0) | 2024.12.10 |