Я изучаю ЦП и знаю, как он читает программу из памяти и выполняет ее инструкции. Я также понимаю, что ОС разделяет программы в процессах, а затем чередует каждую из них так быстро, что вы думаете, что они выполняются одновременно, но на самом деле каждая программа запускается отдельно в ЦП. Но если ОС также представляет собой набор кода, работающего в ЦП, как она может управлять процессами?
Я размышлял, и единственное объяснение, которое я мог придумать, это: когда ОС загружает программу из внешней памяти в ОЗУ, она добавляет свои собственные инструкции в середине оригинальных инструкций программы, и затем программа выполняется, программа Можно позвонить в ОС и сделать некоторые вещи. Я считаю, что есть инструкция, которую ОС добавит в программу, которая позволит процессору вернуться к коду ОС через некоторое время. Кроме того, я считаю, что когда ОС загружает программу, она проверяет, есть ли какие-то запрещенные инструкции (которые могут перейти к запрещенным адресам в памяти), и затем удаляет их.
Я думаю о чем-то? Я не студент CS, но на самом деле, студент математики. Если возможно, я бы хотел хорошую книгу об этом, потому что я не нашел никого, кто объяснял бы, как ОС может управлять процессом, если ОС также представляет собой набор кода, выполняющегося в ЦП, и не может работать в то же время. время программы. Книги говорят только о том, что ОС может управлять вещами, но теперь как.