Как процессы ОС могут управлять пользовательскими процессами, когда они сами являются процессами? - PullRequest
0 голосов
/ 24 августа 2018

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

Обычно ЦП просто выполняет инструкции, выполнив одну инструкцию, затем выполняет инструкцию по адресу, указанному IP, и увеличивает IP.

Позвольте мне уточнить мои сомнения на примере. Допустим, у меня есть пользовательский процесс (или просто процесс), который выполняется процессором. Допустим, он имеет инструкцию «n» и в настоящий момент выполняет инструкцию «i». IP указывает на (i + 1) -ю инструкцию. Итак, на данный момент, как все остальные процессы ОС, такие как планировщик, диспетчер и т. Д., Вступают в игру, поскольку ЦП уже выполняет другой процесс.

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

Но это только предположение.

PS: я искал и не мог найти никакого удовлетворительного ответа.

1 Ответ

0 голосов
/ 24 августа 2018

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

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

...