1

Приложение может попросить ОС приостановить процесс на 0,5 секунды, но как это работает?

Процессор не просто перестает работать в течение этих 0,5 секунды, так как другие программы работают хорошо одновременно, так как же нам приостановить запуск приложения на некоторое время?

Я думаю, что, однако, это будет сделано для всех ОС.

1 ответ1

4

В многозадачной операционной системе ОС не должна делать ничего настолько экстремального, как полная остановка процессора вообще или заполнение времени, которое этот процесс собирался использовать другими инструкциями. Это может сделать что-то бесконечно проще. Он может просто не планировать выполнение задачи вообще.

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

Когда задача сигнализирует о том, что она хочет поспать какое-то время или ждать нажатия клавиши, то, что она фактически говорит операционной системе, - don't bother swapping me onto the processor unless time X has passed или если don't bother running me unless you have event X waiting for me to action it .

По сути, в ОС имеется длинный список задач, которые необходимо выполнить, и для каждой из них будет дескриптор "ожидание события". Любые задачи, которые готовы к выполнению, можно запланировать, а любые задачи, которые не будут выполнены, просто пропустить, просто так.

Если нет буквально ни одной задачи на всех запускаемых на процессоре в определенном срезе времени , то операционная система планирует в « Idle » задачу , которая будет на самом деле H ЛТ ЦП и сказать , что это не исполнять инструкции , пока он не получает разбудил, как правило , каким-то прерыванием Использование этого метода планирования времени "не работает" хорошо согласуется с парадигмой многозадачной операционной системы.

Чтобы снова проснуться, процессор получает "тики" прерывания через RTC (часы реального времени) и дополнительно может настроить HPET (высокоточный таймер событий) для запуска прерывания через определенный интервал времени. Это позволяет ОС останавливать процессор на очень точные промежутки времени, а затем выводить процессор из спящего режима, чтобы снова начать обработку задач.

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