Планировщик определяет, какие процессы могут повторно войти в ЦПУ после того, как они заблокированы? - PullRequest
0 голосов
/ 02 мая 2018

Я учусь на среднесрочную версию ОС, и в учебном пособии у меня есть вопрос, в котором я не уверен на 100%.

Планировщик существует для:
A. Сервисные прерывания.
B. Выберите следующий процесс для входа в CPU.
C. Создать новый процесс.
D. Удалите неиспользуемые процессы из системы.
E. Определите, какие заблокированные процессы могут войти в ЦП.
F. B и E.

Итак, я знаю, что B (выберите следующий процесс для ввода ЦП) - это правда.

Часть, в которой я не уверен, - это вариант E. Я не уверен, что это на самом деле означает.

Означает ли это на самом деле случай, когда, скажем, после scanf ожидается ввод пользователя, и процесс остается заблокированным?

Действительно ли ожидание этого ввода означает определение? Или планировщик активно участвует в определении того, введен ли этот вход?

Как бы вы ответили на этот вопрос? B или F?

1 Ответ

0 голосов
/ 02 мая 2018

Если вы внимательно посмотрите на состояние процесса, вы заметите, что заблокированный процесс никогда не сможет напрямую войти в процессор. Только когда процесс вошел в состояние ready , он может войти в ЦП, который будет выполнен.

enter image description here

Когда процесс находится в состоянии заблокирован / ожидание , он в основном ожидает либо внешнего события, такого как ввод от пользователя, либо ожидает в какой-либо очереди устройства ввода-вывода какой-либо службы ввода-вывода. Теперь, когда это событие происходит, оно переходит в состояние ready , и задание планировщика (точнее, краткосрочный планировщик ) должно решить, какой процесс выбрать из тех, которые находятся в готов состояние. Так что утверждение E неверно.

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