⛳ CPU는 프로세스 관리를 어떻게 하는걸까 ?? 먼저 프로세스의 정보를 담은 메타 데이터를 보자!
: 프로세스 메타데이터들을 저장하는 곳, 한 PCB 안에는 한 프로세스의 정보가 담김
프로세스 메타데이터 : Process ID, Process State, Process Priority, CPU Register, Owner, CPU Usage, Memory Usage
1) 프로그램 실행
2) 프로세스 생성
3) 프로세스 주소 공간에 (코드, 데이터, 스택) 생성
4) 이 프로세스의 메타데이터들이 PCB에 저장
: 프로세스 상태(waiting, running 등)에 따라 CPU가 프로세스를 교체한다. 즉, 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장하고 쓴다.
+) 🎯 CPU가 프로세스를 교체하는 경우(==Context Switching)는 어떠한 경우일까?
: 인터럽트가 발생하면서 할당받은 프로세스가 waiting상태로 변화하고 다른 프로세스가 running으로 바뀌어 올라갈 때
: 현재 진행하고 있는 Task(프로세스, 스레드)의 상태를 저장하고(PCB를 메모리에 저장) 다음 진행할 Task(프로세스, 스레드)의 상태 값을 읽어(메모리에 적힌 PCB를 CPU에 올림) 적용하는 과정
: 보통 인터럽트 or 실행 중인 CPU의 사용 허가 시간을 모두 소비 or 입출력을 위해 대기 하는 경우. 즉, 프로세스의 상태가 변화할 때 발생
+) Task의 대부분의 정보가 Register에 저장되며 PCB하나로 관리됨
1) 현재 실행하고 있는 Task의 PCB 정보를 메모리에 저장함
2) 다음 실행할 Task의 PCB의 정보를 읽어서 Register에 적재하고 PC를 통해 이전에 진행했던 과정을 이어서 다시 수행