Недавно я начал изучать, как работает процессор и операционная система, и я немного запутался в работе однопроцессорной машины с операционной системой, которая обеспечивает многозадачность.
Таким образом, если моя машина имеет один процессор, это означает, что в любой момент времени может работать только один процесс.
Теперь я могу только предположить, что планировщик, используемый операционной системой для управления доступом к драгоценному времени процессора, также является процессом.
Таким образом, на этом компьютере либо пользовательский процесс, либо системный процесс планирования работают в любой момент времени, но не оба.
Итак, вот вопрос:
Как только планировщик откажется от управления процессором к другому процессу, как он может восстановить время процессора, чтобы снова запустить его, чтобы выполнить свою работу по расписанию? Я имею в виду, что если какой-либо данный текущий процесс не отказывается (отдавать) процессор, как может сам планировщик запускать снова и обеспечивать правильную многозадачность?
До сих пор я думал, что если пользовательский процесс запрашивает операцию ввода-вывода с помощью системного вызова, тогда в системном вызове мы можем гарантировать, что планировщику будет выделено некоторое время CPU. Но я даже не уверен, работает ли это таким образом.
С другой стороны, если рассматриваемый пользовательский процесс по своей сути связан с ЦП, то с этой точки зрения он может работать вечно, не позволяя другим процессам, даже планировщик не запускается снова.
Предположим, что планирование по временному разрезу я не знаю, как планировщик может нарезать время для выполнения другого процесса, когда он еще не запущен?
Я был бы очень признателен за любое понимание или ссылки, которые вы можете предоставить в этом отношении.