프로세스 I\O와 CPU 바인딩?

프로세스 I\O와 CPU 바인딩?

취업 면접을 준비하면서 온라인에서 다음 질문을 봤습니다.

비선점형 커널이 주어지면 어떤 프로세스 유형이 성능 측면에서 더 많은 영향을 받게 되며 그 이유는 무엇입니까?

  1. I\O 바운드

  2. CPU 바인딩


나는 그것을 알고 있다:

CPU 바인딩된 프로세스는 긴 퀀텀을 갖지만 우선순위는 낮습니다. 반면 I/O 바인딩 프로세스는 높은 우선순위로 짧은 퀀텀을 얻습니다.

처음에는 I\O 바운드가 디스크에서 읽기가 완료될 때까지 기다려야 하기 때문에 더 많은 영향을 받게 됩니다(그리고 무언가가 준비되었을 때 OS에 깨우도록 요청하는 것이 아니라). 선점형 커널 프로세스는 스스로 작업을 완료하고 다른 작업을 수행하도록 결정할 수 있습니다.

여기서 내가 놓친 부분을 깊이 이해하기 위해 자세한 답변을 찾고 있습니다.

답변1

"CPU 바인딩된 프로세스는 긴 퀀텀을 갖지만 우선순위는 낮지만 I/O 바인딩 프로세스는 높은 우선순위로 짧은 퀀텀을 얻습니다."는 사실이 아닙니다.

이것이 사실이라면 이상적일 것입니다. 그러나 각 프로세스가 거의 동일한 타임슬라이스를 얻는 경우가 많습니다. I/O 바인딩 프로세스는 CPU를 상당히 빠르게 포기합니다.

다양한 우선순위 조정동적으로그렇지 않으면 수행하기가 매우 어렵고 커널이 선점할 수 없기 때문에 이 우선순위가 어떻게 구현될지는 명확하지 않습니다.

관련 정보