본문 바로가기
CS 지식

프로세스(Process)와 스레드(Thread)의 차이

by chanfficial 2023. 1. 15.

 

프로세스(Process)

: 운영체제로부터 자원을 할당받는 작업의 단위로, 코드의 집합으로 이루어진 프로그램이 실행되는 것이다.

ex) 컴퓨터를 키고 깃허브와 티스토리에 접속하는데 이는 각각의 프로세스를 실행하는 것

  • 프로세스는 각각 독립된 메모리 영역(code, data, stack, heap)을 할당받는다.
  • 프로세스당 최소 1개의 스레드를 가지고 있다.
  • 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.

스레드(Thread)

: 프로세스가 할당받은 자원을 이용하는 실행단위로, 프로세스 내에 여러 개가 생길 수 있다.

  • 스레드는 프로세스 내에서 각각 stack만 따로 할당받고 code, data, heap 영역은 공유한다.
  • 같은 프로세스 안에있는 여러 스레드들은 같은 heap 공간을 공유할 수 있다.
  • 각각의 스레드는 별도의 레지스터와 stack을 갖고 있지만 heap 메모리는 서로 읽고 쓸 수 있다.

'CS 지식' 카테고리의 다른 글

[운영체제] 스케줄러  (0) 2023.02.05
멀티 프로세스와 멀티 스레드의 차이  (0) 2023.01.15
SQL 과 NoSQL 의 차이  (0) 2023.01.08
교착상태(Dead Lock)  (0) 2023.01.08
트랜잭션(Transaction)  (0) 2023.01.02