신규(New)
준비(Ready)
수행(Running)
대기(Waiting):
종료(Terminated)
Job Queue
Ready Queue
Device Queue
Job Shceduler
CPU Scheduler
Device Scheduler
여러 사용자가 하나의 메모리를 공유하는 경우 한 사용자가 자리를 비우면 그가 돌아올 때 까지 해당 프로세스에 메모리를 할당할 필요 X
PCB(Process Control Block)의 CPU Time을 확인하여 동작이 없는 프로세스를 HDD로 내리고 다른 프로세스, 기존 프로세스에 메모리 할당
동작이 없던 프로세스가 다시 작업을 수행하면 HDD에서 메모리로 프로세스를 올림
CPU 시간 공유 시스템의 경우 일정 시간이 지나면 기존 프로세스를 준비 상태로 만들고 다른 프로세스를 수행 상태로 만들어서 실행
프로세스를 Switch 하는 것을 통틀어서 Context Switching이라 함
Scheduler: CPU Scheduler (위 내용 참고)
Dispatcher
프로세스 A를 수행하다가 B로 넘어가면 해당 정보를 저장하고 다시 A의 차례가 왔을 때 저장한 정보를 사용하여 PC, SP, Register 등에 할당
사진 출처: https://zangzangs.tistory.com/107
Code
Data
Stack
Heap
정리하기
1) 프로세스 : 메모리에 올라온 프로그램2) 프로세스 생명주기 : 신규 - 준비 - 수행 - 대기 - 종료
3) PCB : 프로세스의 실행 정보와 상태 정보를 저장하는 자료구조 (PID, PC, Register, MMU 등)
4) 대기 큐 (Queue) : Job, Ready, Device Queue 등
5) Scheduler : Job, CPU, Device Schduler 등
6) Swapping : 안쓰는 프로세스 HDD로 내리고, 다시 쓰이면 메모리로 올리는 작업
7) Context Switching : Running 프로세스를 Ready로 만들고 다른 프로세스로 전환
8) Dispatcher : 컨텍스트 스위칭할 때 필요한 정보(PCB를 저장하고 꺼내는 프로그램)
9) CPU 시간공유 시스템 : (대부분의)OS에서 프로세스(스레드)가 시간단위로 나누어서 CPU를 사용할 수 있도록 관리해주는 시스템
10) 프로세스 메모리 공간 : 프로세스 주소 공간은 Code, Data, Stack, Heap 으로 구성됨
11) 커널 : 커널은 대부분의 운영 체제(OS)의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스
12) PCB : 프로세스의 실행 정보와 상태 정보를 저장하는 자료구조로 커널 프로세스에 존재