Я вивчаю процесори і знаю, як він читає програму з пам'яті та виконує її вказівки. Я також розумію, що ОС розділяє програми в процесах, а потім чергує їх між собою так швидко, що ви думаєте, що вони працюють одночасно, але насправді кожна програма працює окремо в процесорі. Але якщо ОС також є купою коду, що працює в процесорі, то як він може управляти процесами?
Я думав, і єдине пояснення, про яке я міг би подумати, це: коли ОС завантажує програму із зовнішньої пам’яті в оперативну пам’ять, вона додає власні вказівки в середині вихідних інструкцій програми, тож програма виконується, програма може зателефонувати в ОС і зробити деякі речі. Я вважаю, що існує вказівка, що ОС додасть до програми, що дозволить центральному процесорові деякий час повертатися до коду ОС. А також я вважаю, що коли ОС завантажує програму, вона перевіряє, чи є якісь заборонені вказівки (які могли б перейти на заборонені адреси в пам'яті) і усуває потім.
Чи я думаю про річ? Я не студент CS, а насправді студент з математики. Якщо можливо, я хотів би отримати хорошу книгу про це, тому що я не знайшов нікого, який би пояснював, як ОС може керувати процесом, якщо ОС також є купою коду, що працює в центральному процесорі, і він не може працювати при цьому час програми. Книги говорять лише про те, що ОС може керувати речами, а тепер як.