adplus-dvertising

Types des appels système

Types des appels système

Les appels système peuvent être regroupés grosso modo en six catégories principales : contrôle de processus, gestion de fichiers, gestion de périphériques, maintenance des informations, communications et protection.

Contrôle de processus

Un programme en cours d'exécution doit pouvoir arrêter son exécution normalement (end()) ou anormalement (abort()). Si un appel système est effectué pour terminer anormalement le programme en cours d'exécution, ou si le programme rencontre un problème et provoque une interruption d'erreur, un vidage de la mémoire est parfois effectué et un message d'erreur est généré. Le vidage est écrit dans un fichier journal spécial sur le disque et peut être examiné par un débogueur - un programme système conçu pour aider le programmeur à trouver et à corriger les erreurs ou bogues - afin de déterminer la cause du problème. Dans des circonstances normales ou anormales, le système d'exploitation doit transférer le contrôle à l'interpréteur de commandes appelant. L'interpréteur de commandes lit alors la commande suivante.

Un processus exécutant un programme peut vouloir load() et execute() un autre programme. Cette fonctionnalité permet à l'interpréteur de commandes d'exécuter un programme en fonction, par exemple, d'une commande utilisateur ou d'un clic de souris.

Une question intéressante est de savoir où rendre le contrôle lorsque le programme chargé se termine. Cette question est liée à la question de savoir si le programme existant est perdu, enregistré ou autorisé à continuer son exécution en même temps que le nouveau programme. Si le contrôle revient au programme existant lorsque le nouveau programme se termine, il faut sauvegarder l'image mémoire du programme existant ; ainsi, nous avons effectivement créé un mécanisme permettant à un programme d'appeler un autre programme. Si les deux programmes se poursuivent simultanément, nous avons créé un nouveau processus à multiprogrammer. Souvent, il existe un appel système spécifiquement à cet effet (create_process()).

Il y a tellement de facettes et de variations dans le contrôle des processus que nous discuterons en détail dans le cours sur la gestion des processus.

Gestion des fichiers

Ces appels système sont responsables de la manipulation de fichiers tels que la création d'un fichier, la lecture d'un fichier, l'écriture dans un fichier, etc.

Gestion des appareils

Un processus peut avoir besoin de plusieurs ressources pour s'exécuter : mémoire principale, lecteurs de disque, accès aux fichiers, etc. Si les ressources sont disponibles, elles peuvent être accordées et le contrôle peut être rendu au processus utilisateur. Sinon, le processus devra attendre que des ressources suffisantes soient disponibles.

Le contrôle de ces ressources se fait par différents appels système. Ces appels système sont responsables de la manipulation de l'appareil, comme la lecture à partir des tampons de l'appareil, l'écriture dans les tampons de l'appareil, etc.

Maintenance des informations

De nombreux appels système existent simplement dans le but de transférer des informations entre le programme utilisateur et le système d'exploitation. Par exemple, la plupart des systèmes ont un appel système pour renvoyer l'heure actuelle time() et la date(). D'autres appels système peuvent renvoyer des informations sur le système, telles que le numéro de version du système d'exploitation, la quantité de mémoire libre ou d'espace disque, etc.

Un autre ensemble d'appels système est utile pour déboguer un programme. De nombreux systèmes fournissent des appels système à la mémoire dump(). Cette fonction est utile pour le débogage.

Communication

Il existe deux modèles courants de communication interprocessus : le modèle de transmission de messages et le modèle de mémoire partagée. Dans le modèle de transmission de messages, les processus communicants échangent des messages entre eux pour transférer des informations. Les messages peuvent être échangés entre les processus directement ou indirectement via une boîte aux lettres commune. Avant que la communication puisse avoir lieu, une connexion doit être ouverte. Le nom de l'autre communicateur doit être connu, qu'il s'agisse d'un autre processus sur le même système ou d'un processus sur un autre ordinateur connecté par un réseau de communication. Pour ce faire, nous utilisons des appels système.

Dans le modèle de mémoire partagée, les processus utilisent les appels système shared_memory_create() et shared_memory_attach() pour créer et accéder aux régions de mémoire détenues par d'autres processus.

Cette notion sera détaillée dans un autre article.

Protection

La protection fournit un mécanisme pour contrôler l'accès aux ressources fournies par un système informatique. Historiquement, la protection n'était une préoccupation que sur les systèmes informatiques multiprogrammés avec plusieurs utilisateurs. Cependant, avec l'avènement des réseaux et d'Internet, tous les systèmes informatiques, des serveurs aux appareils portables mobiles, doivent être concernés par la protection.

En règle générale, les appels système fournissant une protection incluent set_permission() et get_permission(), qui manipulent les paramètres d'autorisation des ressources telles que les fichiers et les disques. Les appels système allow_user() et deny_user() spécifient si des utilisateurs particuliers peuvent (ou ne peuvent pas) être autorisés à accéder à certaines ressources.

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.