Système d’exploitation Concepts de base
Les processus Un processus est une structure de donnée représentant un programme en cours d'exécution. Un processus contient toute l'information qu'il est nécessaire de conserver pour poursuivre l'exécution d'un programme interrompu. En particulier, chaque processus possède: Un espace d'adressage (programme,données, pile) Des registres (incluant PC, SP, PSW) D'autres informations (fichier ouverts, priorité, etc.)
Table des processus La table des processus est un tableau de structures contenant une entrée pour chaque processus actifs dans le système. Périodiquement, le système d'exploitation décide d'interrompre un processus pour en exécuter un autre. Il doit alors: suspendre l'exécution d'un processus A sauver l'information de A dans la table des processus choisir un nouveau processus B recupérer l'information de B démarrer l'exécution de B
Communication interprocessus Deux ou plusieurs processus qui collaborent à la réalisation d'une tâche peuvent vouloir communiquer entre eux et synchroniser leurs actions Les processus sont créé et détruit en effectuant un appel système. Sur UNIX chaque processus possède un processus parent (celui qui l’a créé). Structurellement les processus forment une arborescence. Le système d'exploitation fourni les outils nécessaires à la communication interprocessus: les tubes (pipes) les signaux la mémoire partagée les sockets les sémaphores etc.
Interblocage Un ensemble de processus est en interblocage (deadlock) si chacun est en attente d'un évènement ne pouvant être réalisé que par un autre. Exemple: Deux processus voulant copier le contenu d’un ruban sur un CD. Processus 1 demande et obtient l’accès au ruban Processus 2 demande et obtient l’accès au CD Processus 1 demande l’accès au CD et est suspendu jusqu’à ce que le processus 2 le libère. Processus 2 demande l’accès au ruban et est suspendu jusqu’à ce que le processus 1 le libère.
Le système de fichiers Répertoire: groupe de fichiers et de répertoires Les répertoires possèdent une structure d’arbre. Répertoire racine Chemin d’accès Répertoire courant Fichier descripteur de fichier ouverture/fermeture lecture/écriture déplacement
Les types de fichiers Ordinaires Répertoires Liens symboliques Tubes nommés Spéciaux mode bloc Spéciaux mode caractère
Le shell Interpréteur de commandes sur UNIX (ne fait pas parti du noyau). Exemples: ls : affiche les fichiers du répertoire courant cd : change de répertoire mkdir: crée un répertoire cat: affiche le contenu d’un fichier cp: copie un fichier
Les appels systèmes Sert d’interface au noyau. Dépend de la machine et habituellement écrit en assembleur. Bibliothèque de procédures fournie pour pouvoir utiliser les appels système à partir d’un programme en C. Solaris: Environ 250 procédures correspondant aux appels système. Windows: Plusieurs milliers de procédures.
Exemple: read(df, tampon, nboctets);
Appels système UNIX et Windows