프로세스 개념, 상태, 문맥
프로세스 context
- CPU 수행 상태를 나타내는 하드웨어 문맥 (Program Counter, Register)
- PC : 어디를 실행하고 있는가, Register : 현재 레지스터에 어떤 값이 저장되어 있는가
- 프로세스의 주소 공간(코드, 데이터, 스택) : 프로세스 현재 상태
- 프로세스 관련 커널 자료 구조(PCB, 커널 스택) :
- CPU에서 실행되고 있는 프로세스
- CPU를 기다리는 상태
- CPU를 할당해도 당장 명령어를 수행할 수 없는 상태
- 프로세스가 요청한 작업/event(I/O)가 끝날때까지 기다리고 있는 상태
- ex) 디스크에서 파일을 읽어와야 하는 경우
- 프로세스 생성 중
- 수행중이 아닌 상태
운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
- OS가 관리상 사용하는 정보 : 프로세스 상태, 프로세스 ID, 우선순위
- CPU 수행 관련 하드웨어 값 : PC, Register
- 메모리 관련 : 코드, 데이터, 스택의 위치정보
- 파일 관련 : Open File Descriptor ...
- CPU를 한 프로세스 A에서 다른 프로세스 B로 넘겨주는 과정
- 현재 프로세스 상태를 A의 PCB에 저장 --> 새 프로세스 상태를 B의 PCB에서 읽어옴
시스템콜/인터럽트 발생시 반드시 Context Switch가 일어나는 것은 아님
(1) 사용자 프로세스 A --> 커널 모드 --> 사용자 프로세스 A : Context Switch X
(2) 사용자 프로세스 A --> 커널 모드 --> 사용자 프로세스 B : Context Switch O
- Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
- Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
- Device Queue : I/O 디바이스의 어치를 기다리는 프로세스의 집합
프로세스는 각 큐를 오가며 수행된다