KOCW > 이화여자대학교 반효경 교수님 > 운영체제 > 3. 프로세스 관리(4)
3. 프로세스 관리(4)
프로세스 상태도
- 중기 스케줄러에 의해 suspended 상태로 전환 후, blocked 나 ready 상태로 전환하여 메모리에 탑재
- 프로세스가 자기 코드를 수행 중이면 user mode에서 running
- 운영 체제는 running 하지 않는다
- 프로세스 중간에 Interrupt로 인해 시스템 콜이 발생해도, OS가 아닌 프로세스가 running 중인 것으로 간주한다
Thread
"A thread(or lightweight process) is a basic unit of CPU utilization"
- Thread가 동료 Thread와 공유하는 부분(=task)
- code section
- data section
- OS resources
- 전통적인 개념의 lightweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
- 장점: 자원 공유, 응답성 향상
- 다중 스레드로 구성된 태크스 구조에서는, 하나의 서버 스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 running되어 빠른 처리를 할 수 있다.
- 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상
- (CPU가 여러 개 있는 환경에서)병렬성을 높일 수 있다
Implementation of Threads
- Kernel Threads: 운영체제가 thread의 존재를 아는 경우, 운영체제에서 구현
- User Threads: 운영체제가 thread의 존재를 모르는 경우, 사용자 프로그램 단에서 구현