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 : 화면 출력 쓰레드, 글자 입력 쓰레드....(처리해야 될 여러 흐름들)