Lorsqu'il existe une exigence pour les services du système d'exploitation dans le programme source, le compilateur organisera une "instruction de visite" et définira certains paramètres dans le programme cible converti à partir du programme source. Lorsque le programme cible est exécuté, si le processeur central obtient l '"instruction de contrôle de visite", un événement d'interruption est généré, et le dispositif d'interruption convertit le processeur central en état géré et permet au système d'exploitation de gérer l'événement d'interruption. Le système d'exploitation analyse les paramètres dans l'instruction de contrôle d'accès, puis permet au sous-programme "appel système" correspondant de servir l'utilisateur. Deuxièmement, l'instruction de contrôle des visites est l'instruction utilisée dans l'état d'esprit.
Nous savons que les programmes utilisateur ne peuvent être exécutés que dans l'état actuel et que les instructions privilégiées ne peuvent pas être utilisées. Il y a donc une telle question: que dois-je faire si le programme utilisateur veut démarrer un périphérique, ou veut terminer un travail qui ne peut pas être fait dans l'état actuel? Il existe trois conditions pour résoudre ce problème:
(1) Une instruction est requise pour permettre au processeur d' entrer dans l'état de gestion à partir de l'état cible et de soumettre le travail à effectuer au nom du système d'exploitation;
(2) Sous l'état de contrôle, le système d'exploitation complète la demande du programme utilisateur;
(3) Le système d'exploitation peut revenir au programme utilisateur après avoir terminé le travail, c'est-à-dire revenir à l'état d'origine à partir de l'état de gestion.
La résolution de ce problème dépend des instructions de contrôle des visites. L'instruction de contrôle d'accès elle-même n'est pas une instruction privilégiée, et sa fonction de base est de permettre au programme d'avoir une méthode "d'accès volontaire", ce qui provoque l'interruption du contrôle d'accès.
Il y a aussi quelques éléments que je trouve. L'instruction de contrôle d'accès est composée de deux parties: le code d'instruction et le numéro d'interruption du contrôle d'accès, à savoir SVC n, formule (1) où SVC (super visor call) est le code d'instruction, indiquant qu'il s'agit de l'instruction de contrôle d'accès; Le numéro d'interruption du contrôle d'accès, dont la valeur est un entier, indique spécifiquement le type de demande d'accès. Lorsqu'une interruption se produit, le terminal matériel envoie le numéro d'interruption de contrôle d'accès n au champ de code d'interruption dans l'ancien mot d'état du programme. Le programme de contrôle d'interruption de contrôle d'accès est retiré de la pile système et transféré en conséquence vers le programme de service correspondant Dans. (Il y a un peu d'attention ici, le programme d'appel système est déterminé en fonction du numéro d'interruption de visite).
En utilisation réelle, le programme utilisateur et le système d'exploitation doivent également se transmettre des paramètres et se renvoyer des valeurs. Par conséquent, la forme générale des instructions de contrôle d'accès utilisateur est: paramètres de préparation; SVC n; prendre la formule de valeur de retour (2). Selon des exigences spécifiques de gestion interne, les paramètres et la valeur de retour peuvent être transmis via des registres ou via la mémoire. Pour ces derniers, le système d'exploitation doit pouvoir accéder à l'espace de processus.
Généralement, la formule (2) est appelée instruction d'appel système. En plus de l'instruction de contrôle d'accès, elle a également un paramètre de préparation et une valeur de retour. Pour la commodité d'utilisation, il est généralement écrit sous une forme similaire à l'appel de procédure dans les langages de haut niveau, à savoir: valeur de retour = nom de l'appel système (paramètre 1, paramètre 2, ..., paramètre n) Équation (3). Bien sûr, le compilateur traduira l'équation (3) sous la forme de (2). Parmi eux, le nom de l'appel système correspond à l'équation (1) et différents noms d'appel système correspondent à différents entiers n. Dans certains livres, la formule (3) est également appelée macro-instruction ou instruction généralisée représentant la formule (2) .