Процесс ввода-вывода и зависимость от ЦП?

Процесс ввода-вывода и зависимость от ЦП?

Я увидел этот вопрос в интернете, готовясь к собеседованию:

Какой тип процесса, при наличии невытесняющего ядра, окажет большее влияние на производительность и почему?

  1. I\O связан

  2. ЦП ограничен


Я знаю это:

Процесс, связанный с ЦП, получает длинные кванты, но с низким приоритетом, тогда как процесс, связанный с вводом-выводом, получает короткие кванты с высоким приоритетом.

Сначала я думал, что ограничение ввода-вывода будет больше влиять на него, поскольку он должен дождаться завершения чтения с диска (а не просто попросить ОС разбудить его, когда что-то будет готово). Но я думаю, что это неправильно, поскольку даже в невытесняющем ядре процесс может сам решить завершить свою работу и позволить другому работать.

Я ищу подробный ответ, чтобы глубже понять, чего мне здесь не хватает.

решение1

Неверно, что «процесс, ограниченный ЦП, получает длинные кванты, но с низким приоритетом, тогда как процесс, ограниченный вводом-выводом, получает короткие кванты с высоким приоритетом».

Было бы идеально, если бы это было так, но часто случается так, что каждый процесс получает примерно один и тот же квант времени. Процесс, связанный с вводом-выводом, довольно быстро освободил бы процессор.

Расстановка различных приоритетовдинамическиили иным образом сделать это будет очень сложно, а поскольку ядро ​​не может выполнять упреждающие действия, неясно, как будет реализована эта приоритизация.

Связанный контент