OS

process와 thread 구성

사랑우주인 2022. 2. 11. 17:29

process

프로세서에 의해 실행되고 있는 프로그램

 

process의 구조

- code: 프로그램 명령이 위치한 곳

- data: 전역 변수나 static 변수의 할당을 위해 존재하는 공간

- stack: 지연 변수 할당, 함수 호출 시 전달되는 인자 값들을 저장하기 위한 공간(). 제어를 위해 필요한 데이터

- heap: Java의 new를 통한 동적 할당을 위해 존재하는 공간

 


thread

- 프로그램의 실행 단위

- 역할: 프로세스가 할당 받은 자원을 통해 제어

 

첨언
- CPU 스케줄러는 프로세스가 해야할 일을 CPU에게 전달하고 실제 작업은 CPU가 수행
- 스케줄러가 CPU에 전달하는 일 하나가 스레드!
- OS 입장에서 작업 단위는 프로세스이고, CPU 입장에서의 작업 단위는 스레드이다.

 

 

therad의 구조

- register

- stack

 


register가 thread 영역에 있다?

- register은 cpu 영역이 아니었던가 의문이 들 수 있다. 

- 결론만 말하자면, thread가 갖고 있는 register의 의미는 "저장된 상태" 이다. 

- context switching 발생하면, 현재 프로세스 상태 정보(state segment) 저장하고 종료

- 따라서, register 값이 stack에 저장되고 종료된다. 


참고

https://vsfe.tistory.com/12