-
하나의 CPU 코어는 하나의 프로세스만 처리가 가능하다 ⇒ 이때 CPU에 어떤 프로세스를 올릴지 순서를 정하는 것이 바로 프로세스 스케줄러이다.
-
CPU 코어가 여러개 인 것은 여러 프로세스를 동시에 수행가능하다. 이때 프로세스의 수행량 정도를
’다중 프로그래밍 정도’ 라고한다
-
프로세스의 동작의 정도에 따른 프로세스 분류
- CPU bound 프로세스
- I/O bound 프로세스
-
스캐줄링 큐 - 주로 Linked List로 이루어져 있다.
- 준비 큐: CPU 코어에서 프로세스가 작업되기 전 혹은 디스패치(순서 없이 바로 작업) 대기하는 큐
- 대기 큐 : 작업 수행 중 프로세스가 특정한 이벤트가 발생하여 실행을 잠시 중단하고 대기하는 큐

-
CPU 스캐줄링
- CPU가 작업을 과부화되지 않도록 하거나, CPU를 너무 오래 잡아먹지 않도록하는 것
- 대표적으로 스와핑이 있다.
- 모든 것을 메모리에 올려 놓는 것이 아닌 디스크를 사용하여, 저장했다가 필요한 경우 다시
프로세스를 메모리에 올려서 작업을 하는 방법
- 스왑아웃 : 메모리에 올려놓은 프로세스를 디스크에 저장하는 것
- 스왑 인 : 디스크에 있는 프로세스를 다시 메모리에 올려놓는 것
-
문맥 전환(Context Switching)
- 디스패치나 여러 이벤트로 인해 프로세스가 전환되는 중 생기는 과정
- PCB에 전환되는 정보들을 저장(프로세스 카운터, 레지스터)
- 하드웨어어 크게 자우된다.
- 단계
- 현재 상태를 저장하는 작업
- 저장한 것을 복구하는 작업