실행중인 프로그램
여러 프로세스를 동시에 실행하려면..?
-> 운영체제를 통해 CPU를 가상화한다
== 시분할 (time sharing)
이를 위해 도구, 지능이 필요함
도구
= 메커니즘
ex) context switch(문맥 교환)
프로그램 실행하던 것을 잠시 멈추고 다른 프로그램 실행
지능
= policy
ex) scheduling policy
과거의 정보(얼마나 자주 실행, 어떤 유형들이 실행) 및 성능(단위시간당 처리량, 응답시간등)을 바탕으로 스케줄링
메모리
명령어 저장, 실행 프로그램 읽고 쓰는 내용 저장
레지스터
Running (실행)
명령어 실행중
Ready (준비)
실행할 준비가 되어있지만 다른 프로세스를 실행중과 같은 이유로 대기중
Blocked (대기)
실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될 때까지 기다리는 상태
입출력 전용 큐에서 대기 ,대기시간동안 IO 시행 후 인터럽트를 통해 준비상태로 돌아온다
프로세스 리스트
준비상태의 프로세스들의 상태 파악 용도
register context
프로세스 중단됐을 때 해당 프로세스 레지스터 값을 저장
후에 복원하여 프로세스 실행 제개