1. 프로세스의 개념
📌 프로세스는 실행중인 프로그램이다
📌 프로세스의 문맥(context)
✓ CPU 수행 상태를 나타내는 하드웨어 문맥
• Program Counter
• 각종 register
✓ 프로세스의 주소 공간
• code, data, stack
✓ 프로세스 관련 커널 자료 구조
• PCB (Process Control Block)
• Kernel stack
2. 프로세스의 상태
📌 프로세스는 상태(state)가 변경되며 수행된다
✓ Running : CPU를 잡고 instruction을 수행중인 상태
✓ Ready : CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고)
✓ Blocked (wait, sleep) : CPU를 주어도 당장 instruction을 수행할 수 없는 상태
Process 자신이 요청한 event( 예): I/O )가 즉시 만족되지 않아 이를 기다리는 상태
예) 디스크에서 file을 읽어와야 하는 경우
✓ New : 프로세스가 생성중인 상태
✓ Terminated : 수행이 끝난 상태
3. 프로세스 상태도
4. Process Control Block (PCB)
📌 PCB
✓ 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
✓ 다음의 구성 요소를 가진다 (구조체로 유지)
1) OS가 관리상 사용하는 정보 : Process state, Process ID, scheduling information, priority
2) CPU 수행 관련 하드웨어 값 : Program counter, registers
3) 메모리 관련 : Code, data, stack의 위치 정보
4) 파일 관련 : Open file descriptors
5. 문맥 교환 (Context Switch)
📌 CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
📌 CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행
✓ CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
✓ CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴
(CPU가 다른 프로세스로 넘어갈 때, 어디까지 수행되었는지 등을 알아야하기 때문에 각 프로세스의 PCB에 레지스터 값을 저장한 후, CPU를 넘긴다)
문맥 교환은 사용자 프로세스에서 다른 사용자 프로세스로 CPU가 넘어가는 것을 말하고,
그 과정에 반드시 운영체제 커널의 개입이 있지만,
사용자 프로세스로부터 운영체제 커널로 CPU가 넘어간 것을 문맥 교환이라 하지 않는다.
6. 프로세스를 스케줄링하기 위한 큐
📌 Job queue : 현재 시스템 내에 있는 모든 프로세스의 집합
📌 Ready queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
📌 Device queues : I/O device의 처리를 기다리는 프로세스의 집합
✓ 프로세스들은 각 큐들을 오가며 수행된다
7. 프로세스 스케줄링 큐의 모습
'운영체제 (이화여대 반효경)' 카테고리의 다른 글
운영체제 강의 10 (0) | 2021.07.13 |
---|---|
운영체제 강의 9 (0) | 2021.07.13 |
운영체제 강의 7 (0) | 2021.07.12 |
운영체제 강의 6 (0) | 2021.07.12 |
운영체제 강의 5 (0) | 2021.07.11 |