프로세스(Process) & 스레드(Thread)

2021. 11. 22. 23:24Operating System

프로그램(Program)

  • 정의된 업무를 수행하기 위한 명령어들의 순서
  • 정적인 상태 - 아직 실행 중이 아님 
  • 운영 체제로부터 독립적 메모리를 할당 받지 못함

 

프로그램 카운터(Program Counter)

다음에 실행할 명령어를 결정


프로세스(Process)

  • 실행 중인 하나의 프로그램의 인스턴스
  • 운영 체제로부터 할당 받은 작업의 단위

 

특징

  • 프로세스는 각각 독립된 주소 공간을 가짐
  • 프로세스는 적어도 한 개 이상의 control의 흐름(스레드)을 가짐
  • 운영체제로부터 시스템 자원을 할당 받음 - 메모리, CPU시간, IO장치
  • 다른 프로세스의 자원에 접근하려면 프로세스간 통신(IPC)을 통해서만 가능
  • 운영 체제의 최소 작업 단위

프로세스의 메모리 구조/출처: https://pyrite-emu-d92.notion.site/OS-4e7af3cc0e064fe5b0d4022bf2bad294 

 


스레드(Thread)

  • 프로세스 내에서 실행의 흐름을 표현
  • 프로세스가 할당 받은 자원을 이용하는 실행 흐름 

 

특징

  • 각 스레드마다  실행 스택(execution stack), 프로그램 카운터(program counter), register set과 state를 가짐
  • 한 프로세스 내의 스레드들 끼리 주소 공간이나 자원을 공유(힙 메모리)
  • CPU의 최소 작업 단위 

개인 stack있지만 나머지는 모두 공유 / 출처: https://pyrite-emu-d92.notion.site/OS-4e7af3cc0e064fe5b0d4022bf2bad294

 

 


출처:

운영체제 공룡책

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