Process
"실행 중인 프로그램"
프로세스의 문맥
"특정 시점에서의 프로세스 진행 상황"
- 문맥 표현을 위한 3요소
- HW 문맥 (CPU 수행 상태를 나타냄)
- PC (Program Counter)
- register
- 프로세스 주소 공간
- 프로세스 관련 커널 자료 구조
- PCB (Process Control Block)
- Kernel stack
Process State
- Running : CPU를 잡고 instruction을 수행 중인 상태
- Ready : CPU를 기다리는 상태 (메모리 등 다른 조건 모두 만족)
- Blocked(wait, sleep) : CPU를 주어도 당장 instruction을 수행할 수 없는 상태
- Process 자신이 요청한 event가 즉시 만족 x
Process Control Block (PCB)
운영체제가 각 프로세스를 관라히가 위해 프로세스 당 유지하는 정보
- OS가 관리 상 사용하는 정보
- CPU 수행 관련 하드웨어 값
- 메모리 관련
- 파일 관련
Context Switch
CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
- CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
- CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어봄
Process Scheduling
프로세스 스케줄링을 위한 QUEUE
- Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
- Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
- Device Queue : I/O devices의 처리를 기다리는 프로세스의 집합
스케줄러
- Long-term Scheduler
- 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
- 프로세스에 memory를 주는 문제
- degree of Multiprogramming을 제어
- time sharing system에는 보통 장기 스케줄러가 없음
- Short-term Scheduler
- Medium-term Scheduler
Thread
A basic unit of CPU utilization
구성
- program counter
- register set
- stack space
동료 thread와 공유하는 부분
- code section
- data section
- OS section
장점
- Responsiveness
- Resource Sharing
- Economy
- Utilization of MP Architecture