프로세스(Process) & 스레드(Thread)
2021. 11. 22. 23:24ㆍOperating System
프로그램(Program)
- 정의된 업무를 수행하기 위한 명령어들의 순서
- 정적인 상태 - 아직 실행 중이 아님
- 운영 체제로부터 독립적 메모리를 할당 받지 못함
프로그램 카운터(Program Counter)
다음에 실행할 명령어를 결정
프로세스(Process)
- 실행 중인 하나의 프로그램의 인스턴스
- 운영 체제로부터 할당 받은 작업의 단위
특징
- 프로세스는 각각 독립된 주소 공간을 가짐
- 프로세스는 적어도 한 개 이상의 control의 흐름(스레드)을 가짐
- 운영체제로부터 시스템 자원을 할당 받음 - 메모리, CPU시간, IO장치
- 다른 프로세스의 자원에 접근하려면 프로세스간 통신(IPC)을 통해서만 가능
- 운영 체제의 최소 작업 단위
스레드(Thread)
- 프로세스 내에서 실행의 흐름을 표현
- 프로세스가 할당 받은 자원을 이용하는 실행 흐름
특징
- 각 스레드마다 실행 스택(execution stack), 프로그램 카운터(program counter), register set과 state를 가짐
- 한 프로세스 내의 스레드들 끼리 주소 공간이나 자원을 공유(힙 메모리)
- CPU의 최소 작업 단위
출처:
운영체제 공룡책
https://pyrite-emu-d92.notion.site/OS-4e7af3cc0e064fe5b0d4022bf2bad294
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
'Operating System' 카테고리의 다른 글
System Calls (0) | 2021.12.02 |
---|---|
Operating System Service (0) | 2021.12.02 |
메모리 관리 (0) | 2021.07.29 |
프로세스 동기화(ProcessSynchornization) (0) | 2021.07.28 |
동기와 비동기 (0) | 2021.07.26 |