J'étudie les CPU et je sais comment il lit un programme de la mémoire et exécute ses instructions. Je comprends également qu'un système d'exploitation sépare les programmes dans les processus, puis alterne entre chacun si rapidement que vous pensez qu'ils s'exécutent en même temps, mais en fait, chaque programme s'exécute seul dans le CPU. Mais, si le système d'exploitation est également un tas de code exécuté dans le processeur, comment peut-il gérer les processus?
J'ai réfléchi et la seule explication que je pouvais penser est: lorsque le système d'exploitation charge un programme de la mémoire externe dans la RAM, il ajoute ses propres instructions au milieu des instructions du programme d'origine, donc le programme est exécuté, le programme peut appeler le système d'exploitation et faire certaines choses. Je crois qu'il y a une instruction que l'OS ajoutera au programme, qui permettra au CPU de revenir au code OS un certain temps. Et aussi, je crois que lorsque le système d'exploitation charge un programme, il vérifie s'il y a des instructions interdites (qui passeraient à des adresses interdites dans la mémoire) et les élimine ensuite.
Suis-je en train de penser juste? Je ne suis pas un étudiant CS, mais en fait, un étudiant en mathématiques. Si possible, je voudrais un bon livre à ce sujet, car je n'ai trouvé personne qui explique comment le système d'exploitation peut gérer un processus si le système d'exploitation est également un tas de code exécuté dans le processeur, et qu'il ne peut pas fonctionner en même temps heure du programme. Les livres disent seulement que le système d'exploitation peut gérer les choses, mais maintenant comment.