Notice
Recent Posts
Recent Comments
Link
리미로그
[OS] 프로세스와 스레드 차이 본문
Process
• 실행 중인 프로그램
c.f. program : HD나 secondary storage에 저장되어 있는 정적인 파일
• OS로부터 자원을 할당받는 작업 단위
• 각 프로세스는 자신만의 주소 공간을 가짐

Code : text 영역, instruction 저장
Data : global 변수, static 변수 저장
Heap : 메모리 동적 할당 객체 저장
Stack : parameter, return address, local variable 저장
Thread
• 프로세스의 실행 흐름
각 스레드는 별도의 실행 state를 가짐 -> 각각의 register set을 가짐
• 각자 고유의 stack 영역을 가짐
나머지 공간은 같은 프로세스 내에 있는 스레드끼리 공유
다른 스레드의 stack에 접근 가능
Process VS Thread
• 프로세스는 여러 스레드를 가질 수 있음
• CPU는 스레드 단위로 스케줄링함
• 요즘에는 process를 static한 개체로, thread는 dynamic한 개체로 봄
process : thread가 동작할 수 있는 실행환경, 컨테이너
정리
프로세스는 운영체제로부터 자원을 할당받는 작업 단위,
스레드는 프로세스가 받은 자원을 이용하는 실행 단위
각 프로세스는 고유의 주소 공간을 가지고,
각 스레드는 stack을 제외한 주소 공간을 공유함 (같은 프로세스)
'CS > OS' 카테고리의 다른 글
[OS] 스케줄러 종류 (0) | 2022.12.16 |
---|---|
[OS] PCB & Context Switching (0) | 2022.12.15 |
[OS] 프로세스 주소 공간 (0) | 2022.12.13 |
Comments