[OS] 프로세스와 스레드의 차이?

2022. 8. 20. 20:53CS/운영체제(OS)

자세한 버전

  • 프로세스 : 실행중인 프로그램을 가리키며, 디스크로부터 메모리로 적재되어 CPU의 할당을 받을 수 있다. 프로세스는 생성될 때 각각 별도의 주소 공간에 할당되며 코드, 데이터, 힙, 스택 영역을 가지게 된다. 멀티 프로세스의 장점은 각 프로세스 간에 독립적으로 동작하기 때문에 서로 영향을 끼치지 않는다. 단점으로는, 각각 독립된 메모리 영역을 가지고 있어 다른 프로세스와 데이터 공유 간 IPC를 해야하는 등의 오버헤드가 존재하고, Context Switching에 대한 오버헤드를 가진다.
  • 스레드 : 프로세스의 실행 단위를 가리킴. 프로세스와 달리 스레드는 다른 스레드와 공간, 자원을 공유한다. 멀티 스레드의 장점으로는 전역 변수와 정적 변수에 대한 자료를 공유할 수 있고, 단점으로는 하나의 스레드가 다른 스레드에 영향을 끼칠 수 있다는 점과 동기화에 신경을 써야 한다는 점이 있다.

 

간단한 버전

  • 프로세스 : 실행중인 프로그램을 가리키고, 스택, 코드, 힙, 데이터 영역을 가진다.
  • 스레드 : 프로세스 안에서 생성된 하나의 작업 단위이며 각각 스택을 가진다. 프로세스 내의 코드, 힙, 데이터 영역을 다른 스레드와 공유한다.

'CS > 운영체제(OS)' 카테고리의 다른 글

[운영체제] IPC(Inter Process Communication)  (0) 2022.10.07
[OS] PCB와 Context Switching  (0) 2022.08.20
[OS] 운영체제란?  (0) 2022.08.20
[운영체제] 가상메모리  (0) 2022.08.07
[운영체제] 메모리 관리  (0) 2022.08.06