Я увидел этот вопрос в интернете, готовясь к собеседованию:
Какой тип процесса, при наличии невытесняющего ядра, окажет большее влияние на производительность и почему?
I\O связан
ЦП ограничен
Я знаю это:
Процесс, связанный с ЦП, получает длинные кванты, но с низким приоритетом, тогда как процесс, связанный с вводом-выводом, получает короткие кванты с высоким приоритетом.
Сначала я думал, что ограничение ввода-вывода будет больше влиять на него, поскольку он должен дождаться завершения чтения с диска (а не просто попросить ОС разбудить его, когда что-то будет готово). Но я думаю, что это неправильно, поскольку даже в невытесняющем ядре процесс может сам решить завершить свою работу и позволить другому работать.
Я ищу подробный ответ, чтобы глубже понять, чего мне здесь не хватает.
решение1
Неверно, что «процесс, ограниченный ЦП, получает длинные кванты, но с низким приоритетом, тогда как процесс, ограниченный вводом-выводом, получает короткие кванты с высоким приоритетом».
Было бы идеально, если бы это было так, но часто случается так, что каждый процесс получает примерно один и тот же квант времени. Процесс, связанный с вводом-выводом, довольно быстро освободил бы процессор.
Расстановка различных приоритетовдинамическиили иным образом сделать это будет очень сложно, а поскольку ядро не может выполнять упреждающие действия, неясно, как будет реализована эта приоритизация.