Как планировщик ОС восстанавливает контроль над ЦП?

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

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

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

Таким образом, на этой машине в любой заданный момент времени выполняется либо пользовательский процесс, либо процесс системы планирования, но не оба одновременно.

Так вот вопрос:

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

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

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

Предположим, планирование с разделением по времени -. Я понятия не имею, как планировщик может нарезать время для выполнения другого процесса, когда он даже не запущен?

Я был бы очень признателен за любую информацию или ссылки, которые вы можете предоставить в этом отношении.

55
задан Krishna Pradyumna Mokshagundam 14 August 2018 в 08:31
поделиться