프로세스의 문맥
1. cpu 수행 상태를 나타내는 하드웨어 문맥
2. 프로세스의 주소 공간
- code, data, stack
3. 프로세스 관련 커널 자료 구조
- pcb
- kernel stack
※ 커널스택을 프로세스별로 별도로 두고 있다.
PCB(Process Control Block): 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
(1) os가 관리상 사용하는 정보
(2) cpu 수행 관련 하드웨어 값
(3) 메모리 관련
(4) 파일 관련
프로세스 상태
1. Running: cpu 잡고 instruction 수행 중인 상태
2. Ready: cpu 기다리는 상태
3. Blocked: cpu 주어도 당장 instruction을 수행할 수 없는 상태
- process 자신이 요청한 event가 즉시 만족되지 않아 이를 기다리는 상태
- ex) 디스크에서 file을 읽어와야 하는 경우
4. Suspended
- 외부적인 이유로 프로세스의 수행이 정지된 상태
- 프로세스는 통째로 디스크에 swap out 된다
- 외부에서 resume해 주어야 active
※ New: 프로세스가 생성중인 상태
Terminated: 수행이 끝난 상태
※ 프로세스 자기 코드 실행하다가 시스템 콜하면 커널모드에서 러닝하고 있다
문맥교환(Context Switch): cpu를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
- cpu를 내어주는 프로세스의 상태를 PCB에 저장
- cpu를 새롭게 얻는 프로세스의 상태를 PCB에서 불러옴
- time 인터러트나 입출력 시스템 콜에서 주로 일어남
스케줄러
1. 장기 스케줄러
- 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
- 프로세스에 메모리를 주는 문제
- time sharing system에는 보통 없음(무조건 ready)
2. 단기 스케줄러(cpu)
- 프로세스에 cpu를 주는 문제
- ms 단위, 충분히 빨라야 함
3. 중기 스케줄러
- 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄
'CS(Computer Science) > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스 생성과 종료 (0) | 2023.01.29 |
---|---|
[운영체제] 스레드 (0) | 2023.01.27 |
[운영체제] 입출력 & 프로그램의 실행 (0) | 2023.01.26 |
[운영체제] 시스템 구조 (0) | 2023.01.26 |
[운영체제] 운영체제 기초 (0) | 2023.01.25 |
댓글