process → 실행 중인 program을 process라고 한다.
CPU 스케줄링을 OS가 하기 때문에, OS는 큐(Queue)를 만들어 CPU를 쓰고자 하는 program들을 큐에 줄세워 놓는다.
OS는 A program이 짧은 시간 내에 CPU를 쓰게하고 다 쓰면 큐의 맨 뒤에 집어넣는다. 그리고 A 다음에 있는 B program을 CPU에 집어넣는다.
만약 A program이 I/O 데이터가 필요할 때, CPU 큐에 넣지 않고 CPU에서 A를 빼내어 디스크 입출력 큐에 집어넣는다. 디스크 스케줄링에 따라 순차적 도착을 기준으로 하는 것이 아닌 작업의 중요도에 따라 호율적으로 디스크 스케줄링을 한다.
I/O 처리가 끝났다면, 디스크 컨트롤러가 CPU에게 인터럽트 신호를 보내 알려주고, CPU는 OS에 운영권이 넘어간다. OS는 A를 디스크 입출력(I/O) 큐에서 빼서 CPU 큐에 넣어준다.
프로그램에는 무엇이 있을까?
interactive Application(주로 게임)이나, scientific Application(유전자 계산 등 어려운 학업에 쓰이는 프로그램)이 있다.
interactive Application은 인터럽트 작업이 많이 일어나는 경우이다. 사람하고 pc하고 대화하는 경우이다.
scientific Application은 계산 자체가 무겁고 어려워서 CPU계산이 주로 일어난다. 그리고 가끔 인터럽트가 일어난다.