2 장 프로세스 제 03 강 : 프로세스
Multi-user System OS boot 탐색기 hwp OS kernel a.out game
CPUmemdisk tty CPUmemdisk tty OS Kernel a.out Hardware : Table (Data Structure) : Object (hardware or software)
web hwp Multi-user System OS User A: User B: 탐색기 hwp a.out game OS kernel
Process Control Block (PCB) Process 상태 process 에 대한 일체 정보 CPU 정보 Program counter CPU 레지스터 값 스케줄링 정보 메모리 정보 주소 I/O 정보 상태 요금 정보 각 자원 사용량 기타 각종 자원
Process Control Block (PCB) Process 상태 process 에 대한 일체 정보 CPU 정보 Program counter CPU 레지스터 값 스케줄링 정보 메모리 정보 주소 I/O 정보 상태 요금 정보 각 자원 사용량 기타 각종 자원 terminal 현재 directory (folder) open 한 file 들
CPU PCB memdisk PCB tty hwp CPUmemdisk tty User a.out Kernel a.out Hardware Web : Table (Data Structure) : Object (hardware or software) web hwp OS
CPUmemdisk tty User a.out Hardware Process 3 memory queue memory 신청 / 대기 hwp Web PCB
CPUmemdisk tty User a.out Hardware CPU (ready) queue memory queue Process 3 loaded hwp Web PCB
CPUmemdisk tty User a.out Hardware CPU (ready) queue memory queue Process 3 runs hwp Web PCB
CPUmemdisk tty User a.out Hardware Process 3 CPU (ready) queue memory queue disk queue I/O 신청 / 대기 hwp Web PCB
스케줄러 (scheduler)
CPUmemdisk tty User a.out Hardware Process 3 memory queue memory 신청 / 대기 hwp Web PCB Job Queue Memory 기다림
Process Scheduling Queues Job queue – 메모리를 기다리는 프로세스들. Long-term scheduler (or job scheduler) degree of Multiprogramming 결정 Ready queue – 메모리에서 CPU 를 기다리는 프로세스들 Short-term scheduler (or CPU scheduler) Device queues – I/O 를 기다리는 프로세스들 disk scheduler
CPUmemdisk tty User a.out Hardware CPU (ready) queue memory queue Process 3 loaded hwp Web PCB Ready Queue CPU 기다림
Process Scheduling Queues Job queue – 메모리를 기다리는 프로세스들. Long-term scheduler (or job scheduler) degree of Multiprogramming 결정 Ready queue – 메모리에서 CPU 를 기다리는 프로세스들 Short-term scheduler (or CPU scheduler) Device queues – I/O 를 기다리는 프로세스들 disk scheduler
CPUmemdisk tty User a.out Hardware Process 3 CPU (ready) queue memory queue disk queue I/O 신청 / 대기 hwp Web PCB I/O Queue I/O 를 기다림
Process State ready: CPU 에서 실행할 준비됨 메모리 공간도 할당 받음 선택되면 CPU 를 차지 (dispatch) running: CPU 를 할당받고 실행 Time slice 동안만 CPU 사용 (Time quantum) waiting: I/O 등 요청 CPU 포기 / 양도 (blocked)
main() { int x; y = 30; x = read (file); y = x + 10; ….. }
Process State ready: CPU 에서 실행할 준비됨 메모리 공간도 할당 받음 선택되면 CPU 를 차지 (dispatch) running: CPU 를 할당받고 실행 Time slice 동안만 CPU 사용 (Time quantum) waiting: I/O 등 요청 CPU 포기 / 양도 (blocked)
Process 상태 ready dispatch timer interrupt I/O request or other request I/O 끝남 request 만족 memory 할당 exit running blocked