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