1

P1 и P2 - оба процесса, отличающиеся друг от друга. это операция чтения, выполняемая на жестком диске:

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

(а) правда, потому что это позволяет избежать обмена в TLB.

(б) правда.

(в) неправильно.

(г) неправильно, невозможно избежать переключения контекста

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

Я думал, что это должно быть (d) потому что когда мы переходим от P1 к P2, нам нужно переключение контекста для перехода от одного процесса к другому.

Кто-нибудь может объяснить?

2 ответа2

0

Хорошо, кажется, следует выбрать (с) вместо (d) просто потому, что (d) не соответствует действительности.

Когда через некоторое время P1 переходит в стадию чтения, мы говорим о IO, поэтому процессор занят. Сначала он должен обработать запрос ввода-вывода и получить эти данные, поэтому, пока он делает именно это, планировщик запускает другой процесс, чтобы мы не теряли время - однако это не имеет никакого отношения к переключению контекста.

Это то, что я думаю. Это кажется логичным?

0

Можно было бы избежать одного переключения контекста (переключения с P2 на P1), не планируя запуск P2 в ожидании завершения операции с диском. Предположительно, если вы это сделаете, P1 возобновит выполнение чуть раньше, с более теплым TLB.

Вы не можете избежать всех переключений контекста, потому что системный вызов включает переключение контекста (пользователь на ядро), как и возобновление P1 после прерывания завершения с устройства. Но вы могли бы избежать двух переключателей пользовательского контекста (хотя только один из переключателей влияет на синхронизацию P1).

Итак, если ваш единственный показатель производительности - это скорость выполнения P1, вы можете извлечь чуть больше, выделив этот процессор для P1 и не позволяя другим процессам работать. Но мы знаем, что дисковая активность медленная по сравнению с переключением контекста, и вопрос касается общей производительности, а не только P1. Поэтому имеет смысл запланировать запуск P2 во время ожидания, даже если это приведет к небольшой задержке при возобновлении P1 позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .