Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
INTRODUCTION
C- COMMUNICATION INTERPROCESSUS………………………………………………………………………..17
D- SECTION CRRITIQUE……………………………………………………………………………………………… 19
CONCLUSION………………………………………………………………………………………………………………………………29
Etant donné qu’il s’exécute en mode Noyau tandis que tous les autres programmes sont
exécutés en mode utilisateur cela lui permet de protéger les ressources tout en
contraignant les autres programme a faire appel à lui de manière pas nécessairement
explicite afin d’accéder aux ressources.
Pour répondre à cette problématique nous allons de fond en comble explorer les
objectifs et fonctions d’un SE, les types de Systèmes d’exploitation sans oublier de
préciser comment il manage les processus et la mémoire centrale
Le système d'exploitation étant donné que c’est un programme qui gère les ressources
de l'ordinateur, fournit des services aux programmeurs et planifie l'exécution d'autres
programmes. Une certaine compréhension des systèmes d'exploitation est essentielle
pour comprendre les mécanismes par lesquels la CPU contrôle le système informatique.
En particulier, les explications de l'effet des interruptions et de la gestion de la
hiérarchie de la mémoire sont mieux expliquées dans ce contexte.
Une ressource désigne toute entité dont a besoin un processus pour s’exécuter.
La gestion des processus : C’est l’une des fonctions les plus importante ici le
système d’exploitation détermine quel processus doit être exécuté { un moment
donné. En règle générale, le matériel interrompra un processus en cours de
temps { autre pour permettre au système d’exploitation une nouvelle décision de
planification afin de partager le temps de traitement de manière équitable entre
plusieurs processus. La gestion des processus n’a de sens que sur les machines
fonctionnant en temps partagé. Elle comprend la création et la destruction
dynamique de processus.
La gestion de la mémoire : C’est une autre fonction très importante, afin de
simplifier la gestion des processus, les systèmes d’exploitation modernes
Operating System support Page 5
travaillent dans un espace mémoire virtuel, c’est-à-dire avec des adresses
virtuelles qui doivent être traduites pour correspondre à des adresses physiques.
Cela permet d’allouer { chaque processus (y compris au noyau) son propre
espace mémoire de telle sorte qu’il a l’illusion d’avoir la machine pour lui tout
seul. La plupart des systèmes d’exploitation actuels incluent une capacité de
mémoire virtuelle, qui présente deux avantages: (1) Un processus peut
s’exécuter en mémoire principale sans que toutes les instructions et données de
ce programme soient présentes dans la mémoire principale à la fin. Une fois, et
(2) l’espace mémoire total disponible pour un programme peut dépasser de
beaucoup la mémoire principale réelle du système. Bien que la gestion de la
mémoire soit effectuée de manière logicielle, le système d’exploitation dépend
du support matériel du processeur, y compris du matériel de pagination et de
segmentation.
La gestion des entrées / sorties : Les entrées / sorties permettent de faire
transiter des données par l’ordinateur et d’utiliser ces données pour faire des
calculs. Ces données peuvent provenir de périphériques, de processus présents
sur la machine ou de processus présents sur d’autres machines (via un réseau).
Le système de fichiers : Le système de fichiers est un élément essentiel des
systèmes d’exploitation moderne : il permet d’accéder aux différents
périphériques et il propose une interface abstraite pour manipuler des données.
La gestion des communications entre machines : Il est aujourd’hui
impensable de disposer d’ordinateurs { usage professionnel sans que ceux-ci
soient reliés entre eux par un réseau local. Par ailleurs, l’utilisation de réseaux
internationaux comme l’Internet se répand et le système d’exploitation doit donc
prendre en charge la gestion des communications par réseaux.
Système monolithique
Chaque couche masque ainsi les couches situées en dessous d’elle et oblige la couche
située au-dessus { utiliser l’interface qu’elle propose. L’avantage est évident : les
couches sont totalement indépendantes les unes des autres et seule l’interface entre
chaque couche compte. Cela permet de développer, de débugger et tester chaque couche
en se fondant sur les couches inférieures qui sont sûres. Même si ce principe est
séduisant, il est très complexe { mettre en œuvre et les systèmes ainsi structurés sont
souvent très lourds et peu performants.
Machines virtuelles
La plupart du temps, les utilisateurs des ordinateurs sont assis devant leur PC (unité
centrale + les différents périphériques). Cependant, dans d’autres cas, les utilisateurs
sont en face d’un terminal connecté { un mainframe ou ordinateur connecté { d’autres
ordinateurs en réseau. Dans le premier cas, le système est conçu de telle sorte qu’un
seul utilisateur monopolise toutes les ressources. Ainsi l’objectif de tels systèmes est
l’efficacité dans l’accomplissement des tâches soumises par l’utilisateur. Ces systèmes
sont donc conçus de telle sorte qu’elles soient faciles { utiliser avec pour seule
considération les performances du système, sans se soucier de l’utilisation des
ressources. Dans le second cas (utilisation d’un terminal), la même ressource peut être
demandée par plusieurs utilisateurs chacun assis devant son propre terminal.
Dans de tels cas, la conception de ces systèmes d’exploitation met un accent particulier
sur l’accès aux ressources. Ils doivent garantir la disponibilité de ressources et un
partage équitable entre les requérants.
Les micronoyaux
Nous avons vu que les noyaux des systèmes monolithiques ont tendance à être
volumineux. Par ailleurs, si un service particulier est très rarement utilisé, il doit
néanmoins être présent dans le programme du noyau et il utilisera donc de la mémoire
de façon inutile. Pour éviter ces problèmes, une solution consiste à réduire le noyau à
quelques procédures essentielles et à reporter tous les autres services dans des
programmes système. Le noyau ainsi réduit s’appelle souvent micronoyau.
Chaque service étant cloisonné dans son espace d’adresses, il est impératif d’établir ce
mécanisme de communication entre le micro noyau et les services. Cette couche de
dialogue, qui n’existe pas dans un noyau monolithique, ralentit les opérations et conduit
à une baisse de performance.
Le modèle client-serveur
Dans cette partie, nous nous intéressons { la fonction d’exécution qui recouvre
principalement deux notions : celle de processus qui correspond { l’image d’un
programme qui s’exécute et celle d’ordonnancement qui correspond au problème de
l’allocation du processeur et donc du partage du processeur entre différents processus.
Enfin, nous terminons cette partie en abordant les problèmes de synchronisation et de
communication entre processus
A- La notion de processus
La notion de processus n’a cependant de sens que pour les systèmes d’exploitation
fonctionnant en temps partagé ou en multiprogrammation. Si un système d’exploitation
ne peut pas commuter d’un processus A { un processus B avant que le processus A ne se
termine, il est inutile de concevoir une gestion complexe des processus : il suffit de les
exécuter dans l’ordre. Un système d’exploitation digne de ce nom doit fonctionner en
temps partagé ! Les systèmes qui sont de plus multi-utilisateurs doivent offrir une
i- La gestion du temps
Supposons que trois programmes doivent être exécutés sur notre ordinateur. À un
instant donné t, seul un des processus représentant ces programmes disposera du
processeur pour exécuter les instructions de son programme. Pour faciliter
l’explication, nous nommerons A, B et C les trois processus représentant l’exécution des
trois programmes.
Une fois ce laps de temps écoulé, A sera interrompu et il sera nécessaire de sauvegarder
toutes les informations dont A a besoin pour reprendre son exécution (son contexte), en
particulier le compteur d’instructions de A.
Un autre processus peut alors utiliser le processeur pour exécuter les instructions de
son programme. Quel processus choisir ? A, B ou C ? Ce choix est assuré par le système
d’exploitation et la façon dont les processus sont choisis s’appelle l’ordonnancement ou
le scheduling. On parle aussi parfois de scheduler pour désigner la partie du système
d’exploitation qui prend en charge l’ordonnancement.
lorsque le processus obtient le processeur et s’exécute, il est dans l’état élu. L’état
élu est l’état d’exécution du processus;
Un processus est toujours créé dans l’état prêt. Un processus se termine toujours {
partir de l’état élu (sauf anomalie).
Création de processus
Exemple :
Sous Linux ou Unix, l’appel système fork permet à un processus de créer un
autre processus qui est une exacte copie de lui-même au moment de l’appel.
Le processus fils hérite du code et des données de son père, hormis son
identificateur. Ce code hérité peut être modifié pour un autre code par le biais
d’un appel { une des routines systèmes de la famille exec.
Destruction de processus
Suspension d’exécution
Les processus interactifs sont démarrés par l’utilisateur connecté au système. Ils sont
initialisés et contrôlés via une session terminale. Ces processus peuvent s’exécuter en
avant plan du terminal qui a lancé le programme. Dans ce cas aucune autre application
ne peut être lancée aussi longtemps que le processus est en train de s’exécuter en avant
plan.
Les processus automatiques ou processus par lot sont des processus non connectés au
terminal. Ce sont plutôt de tâches mises dans une file d’attente pour être exécutées.
Cette file
d’attente est gérée selon le mode du premier entré- premier sorti (First in, First out :
FIFO).
De telles tâches sont exécutées selon les critères suivants:
Le SE doit sélectionner les processus { partir de ces files d’attente d’une manière
quelconque, Cependant il effectue un processus de sélection qui doit être bien mené par
un scheduleur
Choisit parmi les processus prêts celui à être exécuté (alloue la CPU à lui).
Appelé assez fréquemment : doit être très rapide
Sera élu, le processus dont on suppose que le traitement sera le plus court. Si quatre
jobs ont des durées d'exécution a, b, c et d ; le premier se termine à l'instant a, le
second à l'instant (a+b) et ainsi de suite. La durée de rotation moyenne est de
Le premier job exécuté contribue donc beaucoup plus que les autres à la durée
moyenne. Il est donc normal d'exécuter le plus court en premier lieu. (C'est ce qui se
passe quand à la caisse d'une grande surface les clients laissent passer devant
quelqu'un qui n'a qu'un article)
Inconvénient : les jobs les plus courts sont favorisés. Si des processus courts
arrivent sans cesse, les processus plus longs n'auront jamais le temps de s'exécuter
Supposons que la valeur du quantum est fixée à 50 ms. Un processus qui n'utilise
que 1 ms avant d'être bloqué aurait droit à une priorité de 50 ms/ 1 ms = 50 tandis
qu'un processus qui se bloque au bout de 25 ms a droit à une priorité de 50/25=2 et
les processus qui consomment tout le quantum ont une priorité de 1.
C- Communication interprocessus
Les processus d’un système ne s’exécutent pas tous de manière isolée. Certains se
trouvent en compétition pour une ressource donnée, d’autres ont besoin de coopérer et
nécessitent par conséquent des moyens de communication et de synchronisation. Ainsi,
les principaux problèmes liés à la communication interprocessus sont les suivants:
Dans ce cas, chaque processus doit exécuter la séquence d’actions d’ajout d’une
tâche d’impression (voir le pseudo-code ci-dessus indiqué). Supposons que le
processus A s’exécute et est interrompu par l’ordonnanceur avant de mettre { jour la
variable globale in (c’est { dire interrompu quelque part entre la 1ère et la 3ème
instruction).
D- Section critique
Pour résoudre le cas des problèmes d’accès concurrents (voir exemple ci-
dessus), il faut éviter que plus d’un processus accèdent { une donnée partagée en
même temps. Cela consiste { mettre en place un processus d’exclusion mutuelle {
la ressource partagée aussi appelée section critique.
La mémoire est une ressource importante qui doit être gérée avec attention. Le Système
d’Exploitation doit cohabiter dans la mémoire principale avec un ou plusieurs
processus. La gestion de la mémoire prend en charge l’allocation de la mémoire aux
processus. Elle doit également protéger la mémoire qui lui est allouée contre des accès
non autorisé. Ainsi, un bon gestionnaire de mémoire doit être capable de:
i- Le partitionnement fixe
Une première stratégie pour choisir une zone libre est de prendre la première zone libre
suffisamment grande trouvée au cours du parcours de la liste chaînée des zones, c’est-à-
dire la première zone libre ZL telle que taille (ZL) supérieure ou égale à la taille
(programme à charger).
Sur la figure ci-dessus, le programme 7 dont la taille est égale à 80 Ko est ainsi placé
dans la zone libre de 120 Ko ce qui crée une nouvelle zone libre résiduelle de 40 Ko.
Cette méthode optimise la rapidité du choix d’une zone, mais elle ne conduit pas
forcément à la meilleure utilisation possible de la mémoire centrale.
Une seconde stratégie pour choisir une zone libre est de prendre la zone libre dont la
taille est la plus proche de celle du programme à allouer, donc celle engendrant
la plus petite zone libre résiduelle. C’est la zone libre Zi pour laquelle pour tout i,
taille (Zi) – taille (programme à charger) est minimum.
Sur la figure ci-dessus, le programme 7 dont la taille est égale à 80 Ko est ainsi placé
dans la zone libre de 120 Ko ce qui crée une nouvelle zone libre résiduelle de 40 Ko.
Cette méthode optimise la rapidité du choix d’une zone, mais elle ne conduit pas
forcément à la meilleure utilisation possible de la mémoire centrale.
Une dernière stratégie pour choisir une zone libre est de prendre la zone libre dont la
taille est la plus éloignée de celle du programme à allouer, donc celle engendrant la plus
Sur la figure ci-dessous, le programme 7 dont la taille est égale à 80 Ko est placé dans la
zone libre de 150 Ko ce qui crée une nouvelle zone libre résiduelle de 70 Ko.
Fragmentation externe
Pourtant l’ensemble des 4 zones libres forme un espace de 60 + 120 + 20 + 150 = 350
Ko suffisant pour y placer le programme 8. Il y’a fragmentation externe.
ii- La segmentation
Chaque segment peut être muni d’un certain nombre d’attributs tels qu’adresse
physique de base du segment, longueur du segment, attributs de protection…
C- Le swapping de processus
Grosso modo les Systèmes d’exploitation sont des machines virtuelles contenues dans
des machines réelles qui permettent aux usagers de machines réelles de travailler sans
avoir à se soucier de comment les logiciels installés cohabitent avec le matériel.
La complexité des systèmes d’exploitation est grande, elle résulte tant du nombre et de
la taille des programmes impliqués que de la multiplicité des processus et de leurs
interactions. Cette grande complexité rend illusoire le « zéro défaut » ! Aujourd’hui, on
continue à développer de nouveaux systèmes, tout en recherchant l’augmentation de
leur sûreté de fonctionnement. Pour cela, on commence à utiliser des techniques
automatiques de certification de programmes.