SGF et Synchro
Le premier cours traite système de gestion de fichiers.
Une première partie présente les entrées-sorties et le système de gestion de fichiers, la notion de fichier, de répertoire, les méthodes d’allocation des blocs disques ; Une seconde partie présente plus en détail le SGF de Linux.
Le second cours traite de la synchronisation de processus.
Dans un système multiprocessus, l’ordonnanceur alloue le processeur à chaque processus selon un algorithme d’ordonnancement : la politique choisie conditionne l’ordre d’exécution des processus et très souvent, les exécutions des processus s’entrelacent les unes avec les autres. Chaque processus dispose d’un espace d’adressage propre et indépendant, protégé par rapport aux autres processus. Malgré tout, les processus peuvent avoir besoin de communiquer entre eux pour échanger des données. Cet échange de données peut se faire par le biais d’une zone de mémoire partagée, par le biais d’un fichier ou encore en utilisant les outils de communication offerts par le système d’exploitation. Dans tous ces cas, les processus ne sont plus indépendants et ils effectuent des accès concurrents aux ressources logicielles que sont la mémoire partagée, le fichier ou encore les outils de communication.
Plus généralement, une ressource désigne toute entité dont a besoin un processus pour s’exécuter. La ressource peut être matérielle comme le processeur ou un périphérique ou elle peut être logicielle comme une variable.
Une ressource est caractérisée par un état qui définit si la ressource est libre ou occupée et par son nombre de points d’accès, c’est-à-dire le nombre de processus pouvant l’utiliser en même temps. Notamment, on distinguera la notion de ressource critique qui correspond à une ressource ne pouvant être utilisée que par un seul processus à la fois. Un processeur par exemple correspond à une ressource critique ; en effet, il n’est pas possible d’allouer celui-ci à deux processus simultanément. Une imprimante est un autre exemple d’une telle ressource. Plusieurs schémas de synchronisation entre processus ont été définis afin de garantir une bonne utilisation des ressources par les processus et d’une manière plus générale une communication entre processus cohérente et sans perte de données. Ces schémas sont :
– l’exclusion mutuelle ;
– le producteur-consommateur ;
– les lecteurs-rédacteurs.