Grande Encyclopédie Larousse 1971-1976Éd. 1971-1976
O

ordinateur (suite)

La gestion des tâches

On appelle tâche tout module de programme implanté en mémoire et susceptible d’être activé sous certaines conditions liées aux interruptions ou à l’exécution d’autres tâches. Les tâches prioritaires, dont l’activation ne dépend que d’un événement externe, peuvent, exceptionnellement, être associées de façon directe à une interruption câblée. C’est le cas des programmes d’action de sécurité en conduite de procédés industriels. Les autres sont généralement gérées par un module appelé superviseur. Celui-ci reçoit et analyse les interruptions, tient à jour l’état des différentes tâches et, en fonction de ces éléments, active ou, si elle a été interrompue, réactive la tâche en attente de plus haute priorité. En dernière priorité, il passe la main aux tâches d’arrière-plan.


La gestion de la mémoire centrale

• Recouvrement et « swapping ». La mémoire centrale est souvent trop limitée pour contenir certains programmes en entier ou encore l’ensemble des programmes des divers utilisateurs travaillant en partage de temps. Dans le premier cas, les programmes doivent être segmentés par le programmeur, un segment origine appelant successivement les autres segments, qui viennent se recouvrir dans une même zone de mémoire selon la technique de recouvrement. Dans le second cas, la technique de swapping consiste, sous le contrôle du système d’exploitation, à amener depuis les disques un programme en mémoire centrale, à lui accorder sa tranche de temps, à le renvoyer sur disque pour laisser la place au programme suivant, qui bénéficiera de sa propre tranche de temps, et ainsi de suite.

• Gestion statique et registre de translation. Au cours du fonctionnement d’une machine en multiprogrammation, des programmes se terminent, laissant la place à d’autres programmes qui n’utilisent pas exactement la même quantité de mémoire. La mémoire s’émiette peu à peu, laissant de petites zones libres, chacune insuffisante pour recevoir un nouveau programme. Une solution consisterait à regrouper les zones libres par tassement des zones occupées en début de mémoire, le tassement par simple copie n’étant possible que si la configuration binaire des programmes est indépendante de leur implantation en mémoire centrale. Dans les machines qui permettent le tassement, les adresses sont notées par rapport à la première instruction du programme, et la machine possède un registre de base appelé registre de translation, dans lequel le système d’exploitation range l’adresse d’implantation du programme avant de lui passer la main.

• Gestion dynamique et pagination. En gestion statique, programmes ou segments doivent être implantés intégralement et d’un seul tenant en mémoire centrale pour pouvoir être exécutés. L’application des techniques de pagination à la gestion de la mémoire centrale lui confère un caractère dynamique : une petite portion de chaque programme est chargée en mémoire et évolue selon la progression du travail. Les programmes sont divisés en pages d’égale grandeur et résident en mémoire de masse. La mémoire centrale est également divisée en pages. À un instant donné, seules quelques pages d’un programme sont chargées dans des pages non forcément contiguës de la mémoire centrale. Une référence en dehors des pages chargées en mémoire centrale entraîne une interruption vers le système d’exploitation, qui charge la page référencée soit dans une page libre, soit en remplaçant par swapping une page peu utilisée. Une table des pages généralement implantée dans des registres de l’unité centrale permet d’associer par une procédure câblée l’adresse en mémoire centrale à l’adresse virtuelle définie dans l’instruction et de tenir à jour des informations indiquant le degré d’utilisation de chaque page. Outre la gestion dynamique de la mémoire centrale, la pagination constitue un premier pas vers les machines virtuelles, la longueur d’un programme n’étant plus limitée par la taille physique de la mémoire centrale : on parle alors de mémoire virtuelle. Le principe de pagination a tendance à se généraliser à la gestion automatique des hiérarchies de mémoires.


Les protections

Il s’agit d’interdire aux programmes utilisateurs toute modification d’information, intempestive ou volontaire, soit dans le système, soit chez les autres utilisateurs. Pour les fichiers en mémoire auxiliaire, la protection est assurée par le système d’exploitation, qui, gérant toutes les entrées-sorties, s’assure que les opérations demandées sont permises. Cette méthode, réalisée entièrement au niveau du logiciel, est inapplicable pour la protection en mémoire centrale, car elle supposerait une analyse préalable par le système de chaque instruction. Différents dispositifs au niveau du matériel peuvent être utilisés.

• La technique des registres limites est employée dans les machines à registre de translation : l’écriture n’est permise qu’entre l’adresse de base et l’adresse limite, ces deux adresses délimitant la zone accordée à un programme.

• La technique des clés et verrous de protection utilise une mémoire divisée en secteurs d’égale longueur, possédant chacun un verrou de protection, dont la configuration binaire est rendue identique à celle de la clef affectée au programme qui y est implanté. L’écriture n’est permise que si la clé du programme en cours ouvre le verrou du secteur adressé.

Ces dispositifs câblés sont gérés par le système d’exploitation, qui charge les registres limites ainsi que les clés et les verrous de protection. Il est donc nécessaire que les instructions correspondantes ainsi que toutes les instructions d’entrée-sortie soient interdites au programmeur normal. Pour cela, l’ordinateur dispose de deux modes de fonctionnement : le mode maître, réservé au système d’exploitation où toutes les instructions sont permises, et le mode esclave, qui convient aux utilisateurs, où certaines instructions sont interdites. Toute tentative d’utilisation d’instruction interdite ou de violation de protection-mémoire en mode esclave crée une interruption qui donne la main au système tout en mettant la machine en mode maître. Le système la remet en mode esclave en passant la main à un programme utilisateur.