OS/운영체제

[OS] Process와 Thread의 비교

coty 2019. 7. 30. 11:11

프로세스(Process)란?

 

●  메모리에 올라와 실행되고 있는 하나의 작업(프로그램)

●  실행된 프로그램을 의미

●  Process들은 각자 독립된(code, data, stack, heap) 영역을 할당받는다.

●  프로세스당 적어도 1개의 쓰레드를 가지고 있다.

●  각 프로세스는 각각 별도의 주소 공간에서 실행되고, 다른 프로세스의 변수, 자원에 접근할 수 없다.

 

쓰레드(Thread)란?

 

●  프로세스 내에서 실행되는 여러 흐름의 단위     

●  프로세스의 특정한 수행 경로

●  프로세스(Process) 내에서 실행되는 여러 흐름의 단위

●  쓰레드(Thread)는 프로세스 내에서 각각 따로 stack, register를 할당받고 나머지 code, data, heap영역은 공유한다.

●  쓰레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름이고, 주소공간이나 자원(code, data, heap)을 프로세스내

의 쓰레드끼리 공유 가능하다.

●  한 쓰레드가 공유자원값을 변경하면 같은 자원을 공유하는 쓰레드도 변경된 값에 접근할 수 있다.

 

ex) Process  :  word 프로그램(실행된 프로그램)

       Thread   :  화면 출력 쓰레드, 글자 입력 쓰레드....(처리해야 될 여러 흐름들)