[OS] Process&Thread

Process

  • 프로세스란 실행중인 프로그램의 단위이다
  • 프로세스별로 각각 독립적인 메모리를 할당받는다
  • 하나의 프로세스가 오류로 인해 중지되어도 다른 프로세스에게 영향을 주지 않는다
  • 프로세스끼리 통신을 하기위해선 IPC, Socket, File Descripter와 같은 방법을 사용한다


Thread

  • 스레드란 프로세스내의 작업의 단위이다
  • 동시에 작업을 처리하거나 CPU의 작업 속도를 높히고 싶을 때 사용한다
  • 스레드는 프로세스 내에서 독립적으로 스택메모리와 레지스터 블록을 할당받는다
  • 스레드는 프로세스 내에서 독립적으로 실행흐름을 가져야하고 그 과정에 있어 독립적인 함수 호출에 있는 매개변수와 지역변수의 바인딩, 함수 종료시 복귀할 주소정보, 현재 실행중인 코드라인에 대한 정보들을 개별적으로 관리하기 위함이다
  • 스택메모리와 레지스터 블록을 제외한 다른 영역인 힙, 코드, 데이터 영역은 공유한다
  • 스레드끼리 통신을 하기 위해선 힙영역이나 데이터영역을 사용하거나 시그널을 통해 제어한다

참조

더욱 자세한 내용은 추후 정리한 포스팅에서 확인하실 수 있습니다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/06/15/OS/Process&Thread/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.