늘 겸손하게

CS - Operating System - 프로세스와 스레드 본문

Computer Science/Operating System

CS - Operating System - 프로세스와 스레드

besforyou999 2022. 7. 21. 11:54

[ 프로세스(Process)란? ]

 

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말합니다.

 

프로그램이란 하드 디스크에 저장되어 있는 컴퓨터 실행 코드를 말하고 프로그램이 메모리 영역을 할당받고 cpu에 의해 동작되면 프로세스라고 말합니다.

 

특징

  • 프로세스는 각각 독립된 메모리 영역(Code, Data, Heap, Stack의 구조)를 할당받는다.
  • 기본적으로 프로세스당 최소 1개의 스레드(메인스레드)를 가지고 있다
  • 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다
  • 한 프로세스가 다른 프로세스의 자원에 접근하려면 IPC(Inter-process communication)을 사용해야한다

 

 

[ 스레드 (Thread)란? ]

 

프로세스내에서 실제로 작업을 수행하는 단위를 말합니다. 일반적으로 한 프로세스는 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 여러개의 스레드를 동시에 실행할 수 있습니다. 이 방식을 멀티스레딩(multithreading)이라고 합니다.

 

특징

  • 스레드는 프로세스로부터 각각의 Stack만 할당받고 나머지 자원은 공유한다 (Code, Data, Heap은 공유)
  • 스레드는 프로세스 내의 주소공간이나 자원들을 같은 프로세스 내부의 스레드끼리 공유한다
  • 각각의 스레드는 별도의 레지스터와 스택을 갖고 있지만, 힙 메모리는 서로 읽고 쓸 수 있다
  • 한 스레드가 프로세스 자원을 변경하면, 같은 프로세스 내의 다른 스레드도 변경된 자원을 즉시 볼 수 있다

 

 

 

 

[ 출처 ]

https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

 

[OS] 프로세스와 스레드의 차이 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4

 

프로세스 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)