Studiuję procesory i wiem, jak odczytuje program z pamięci i wykonuję jego instrukcje. Rozumiem również, że system operacyjny oddziela programy w procesach, a następnie przełącza się między nimi tak szybko, że wydaje się, że działają one w tym samym czasie, ale w rzeczywistości każdy program działa sam na procesorze. Ale jeśli system operacyjny to także fragment kodu działający w procesorze, jak może zarządzać procesami?
Myślałem i jedynym wyjaśnieniem, jakie mogłem wymyślić, jest: kiedy system operacyjny ładuje program z pamięci zewnętrznej do pamięci RAM, dodaje własne instrukcje w środku oryginalnych instrukcji programu, więc program jest wykonywany, program może zadzwonić do systemu operacyjnego i zrobić kilka rzeczy. Wierzę, że istnieje instrukcja, którą system operacyjny doda do programu, która pozwoli procesorowi na powrót do kodu systemu operacyjnego na jakiś czas. Ponadto uważam, że gdy system operacyjny ładuje program, sprawdza, czy istnieją jakieś zabronione instrukcje (które przeskakują do zabronionych adresów w pamięci) i wtedy eliminuje.
Czy myślę o sztywności? Nie jestem studentem CS, ale tak naprawdę studentem matematyki. Jeśli to możliwe, chciałbym mieć dobrą książkę na ten temat, ponieważ nie znalazłem nikogo, kto wyjaśniłby, w jaki sposób system operacyjny może zarządzać procesem, jeśli system operacyjny jest również zbiorem kodu działającego w procesorze i nie może działać w tym samym czasie czas programu. Książki mówią tylko, że system operacyjny może zarządzać rzeczami, ale teraz jak.