II.8.2.1.1. Le matériel idéal et le
matériel réel :
Pour un programme, le matériel idéal aurait des
ressources infinies (mémoire, calcul, etc.) et immédiatement
disponibles. Tous ses composants disposeraient aussi de la même interface
simple.
Le matériel réel n'a hélas pas ces
propriétés : aucun composant matériel ne peut
réagir instantanément. Les ressources matérielles
étant onéreuses, il est souvent nécessaire de les partager
entre plusieurs tâches logicielles (c'est notamment le cas pour le
processeur et la mémoire). Enfin les différents composants
matériels peuvent proposer une très grande variété
d'interfaces (pour des raisons de performance, ou tout simplement du fait de
leurs fonctionnalités).
II.8.2.1.2 Solution apportée par le système
d'exploitation :
Un système d'exploitation peut être vu comme un
matériel abstrait idéal. Il s'agit en fait d'une couche
logicielle qui encapsule le matériel et dont le but est de simplifier la
conception des applications logicielles. Il peut alors se placer comme unique
interlocuteur avec les programmes car il présente les
caractéristiques suivantes.
- Il peut cacher aux tâches logicielles les
indisponibilités du matériel ;
- Il peut offrir des fonctions de gestion de ressources, qui,
même si elles ne permettent pas de les rendre infinies, soulagent le
programme de cette gestion. Par exemple, un ordonnanceur permettra à
plusieurs tâches logicielles de partager le processeur ;
- Il peut fournir une interface simple identique quel que soit le
composant matériel (par exemple UNIX encapsule les accès
matériels dans des accès fichiers).
La figure II.15 représente une application
complète allant des programmes logiciels (Tâche 1, Tâche 2
et Tâche 3) à l'architecture matérielle permettant son
fonctionnement. Chaque couche ne peut communiquer qu'avec ses voisines, ainsi
les tâches logicielles ne peuvent communiquer qu'avec le système
d'exploitation.
Tâche 1
|
Tâche 2
|
Tâche 3
|
Système d'exploitation
|
Processeur
|
Périph.1
|
Périph.2
|
Périph.3
|
|
Logiciel
Matériel
|
Figure II.15 : Système d'exploitation en tant
qu'abstraction du matériel
II.8.2.2. Un système d'exploitation en tant que
gestionnaire de ressource :
II.8.2.2.1. Les ressources matérielles
:
Les programmes peuvent être vus comme des entités
consommatrices de ressources, ces ressources représentant le
matériel.
Parmi les ressources matérielles, les premières
sont le processeur sur lequel les programmes sont exécutés et la
mémoire dans laquelle ils stockent leurs données.
Les autres peuvent être des éléments de
calcul, de communication, etc. II.8.2.2.2. La gestion des
ressources : le système d'exploitation
Les ressources matérielles ne sont pas toujours
directement accessibles. De plus dans les applications complexes, elles sont
souvent partagées entre plusieurs programmes : il arrive par exemple
souvent que plusieurs programmes doivent se partager le même processeur.
Il est donc nécessaire de pouvoir gérer ces ressources.
Le système d'exploitation peut être
considéré comme ce gestionnaire de ressources matérielles
pour l'application, il peut gérer la ressource processeur grâce
aux algorithmes d'ordonnancement de tâches, la ressource mémoire
grâce aux fonctions d'allocation et de libération de la
mémoire, ainsi que toutes les autres ressources grâce à des
gestionnaires de périphériques.
La gestion de ces ressources peut être plus ou moins
équitable suivant les besoins de l'application : l'ordonnancement peut
avoir des tâches prioritaires, certaines zones mémoire peuvent
être réservées pour certaines tâches. Une telle
vision du système d'exploitation est illustrée par la figure
II.16 : dans cette figure, le système d'exploitation, associé au
matériel, est considéré comme un serveur de ressources et
les tâches logicielles sont considérées comme des
clients.
Chapitre II conception des logiciels embarqués
Tâche 1
R S
Tâche 2
Tâche 4
S R
Tâche 3
Système
Service d'exploitation requête +
Requête Matériel service
Figure II.16 : Système d'exploitation en tant
que gestionnaire de ressources
|