CPU - My Reader

publicité
Système d’Exploitation (I)
Chapitre premier
Chapitre Premier
GENERALITES
rappel de cours
1- INTRODUCTION
Dans les premiers âges de l’informatique, les programmeurs chargeaient directement leurs
programmes en mémoire via des pupitres dédiés. Ensuite, manuellement ils indiquèrent une
adresse début et ordonnèrent le processeur de s’y brancher.
Actuellement, les systèmes modernes offrent deux services fondamentaux aux utilisateurs.
Premièrement, ils permettent un usage facile du hardware, en définissant et créant une
machine virtuelle qui diffère de marque, uniquement, de la machine réelle. Pour cette raison,
le succès des ordinateurs des deux dernières décades est dû aux systèmes d’exploitation qui
ont su achever une couverture de l’obscurité hardware. En plus, les programmeurs n’ont pas
besoin de réécrire leurs applications lorsqu’ils changent de machines.
Deuxièmement, ils gèrent les ressources, par partage, entre plusieurs utilisateurs. Une des
plus importantes ressources est le processeur.
Un système multi-tâche divise la tâche, à exécuter, entre plusieurs processus et procure pour
chaque processus les ressources nécessaires pour son exécution, en particulier, la mémoire et
au moins un thread d’exécution. Le système exécute un thread pour une très courte durée et
passe ensuite au suivant permettant une équitable exécution des différents threads. Même
dans un système mono-utilisateur, le multi-tâche est extrêmement utile puisqu’il permet
l‘exécution d’au moins deux tâches à la fois. Par exemple, un utilisateur peut éditer un texte
en même temps où il imprime ou compile un second. Chaque processus se voit servir et, à
l’œil de l’utilisateur, les programmes semblent s’exécuter simultanément.
En plus du partage du processeur, le système gère la mémoire et régularise l’accès aux
fichiers et organes d’entrée/sortie. Les systèmes se distinguent les uns des autres selon la
façon dont ils présentent leurs machines virtuelles et leur gestion des ressources.
1
Système d’Exploitation (I)
Chapitre premier
2- DEFINITION DES SYSTEMES D’EXPLOITATION
Les programmes qui s‘exécutent sur un ordinateur sont de deux types :
 Logiciel de base
 Logiciel d’application
Le système d’exploitation, constituant important du logiciel de base, est considéré comme un
programme software offrant un environnement de programmation dans lequel d’autres
programmes peuvent s’exécuter et prendre avantage du processeur et de ses organes
d’entrée/sortie.
2.1 DECOMPOSITION HIERARCHIQUE
2.1.1 Machine NUE :
Une machine nue est définie par :



Un répertoire de base = l’ensemble des instructions machines ou primitives
Une mémoire = les registres du processeur et la mémoire principale
Un mécanisme d’exécution = le cycle ou la méthode d’exécution d’une
instruction (lecture, décodage et exécution de l’instruction)
2.1.2 Machine abstraite
Tout langage définit une machine abstraite capable de l’interpréter. Elle est dite abstraite
parce qu’elle n’a pas de représentation physique. Par sa définition générale, le langage permet
de définir :



Des objets et les mécanismes permettant de les créer.
Des actions (primitives) permettant de manipuler ces objets.
Des règles de composition de ces actions.
De là on peut définir une machine abstraite comme suit :



Un répertoire de base = l’ensemble des primitives du langage
Une mémoire = la représentation des objets par ce langage
Un mécanisme d’exécution = l’ensemble des règles d’interprétation du langage
2.1.3 Décomposition hiérarchique
Si on appelle M la machine nue, on peut définir une machine M0 en associant un langage à M
tel que le problème deviendra plus simple à résoudre. La spécification de M0 se réduit à son
interface, donc aux objets et règles offerts par M0. Ainsi, une machine Mi ne dépend que de
Mj et non des détails de sa réalisation interne. La relation entre machine est dite relation de
dépendance
Ainsi, la structure d’un système peut être décrite par un graphe. Cette décomposition
hiérarchique en niveau présente plusieurs avantages qui résultent de l’indépendance introduite
par l’abstraction :
 Indépendance de conception : chaque machine est décrite par son interface.
2
Système d’Exploitation (I)
Chapitre premier
 Indépendance de modification : la modification d’une machine n’implique aucune
modification des machines qui l’utilisent tant que l’interface reste inchangée.
 Indépendance de mise au point : une fois son interface spécifiée, une machine peut
être mise au point indépendamment des machines qui l’utilisent et inversement.
D’où la notion de portabilité.
Un système constitue, donc, une interface entre l’utilisateur et la machine qui se définit par un
langage ou un moyen de communication. Toute information nécessaire à la bonne gestion du
système doit être contenue dans cette interface. Une tâche exprimée très simplement selon les
avantages offerts par la machine abstraite s’avère plus complexe à un niveau d’abstraction
inférieur. Donc une opération de haut niveau se décompose en plusieurs opérations de bas
niveau.
D’autre part, plusieurs machines virtuelles (abstraites) peuvent être définies sur une même
machine pour des utilisateurs différents. De là, il apparaît la décomposition suivante
figure1.2 :
USER
1
USER
2
USER
3
USER
n
.. .. ..
Logiciel d’application
Compilateur Assembleur Editeur de texte. . .
Base de données
Système d’exploitation
Logiciel de Base
Machine Physique
Figure1.2 : Situation abstraite d’un système d’exploitation
 Un utilisateur est caractérisé par un logiciel d’application qui constitue son environnement
de travail. Tout utilisateur a son propre environnement.
 Une partie commune à tous les utilisateurs appelée logiciel de base. Tout logiciel
d’application dépend de cette partie.
Les frontières entre ces couches ne sont pas définitives, il arrive parfois qu’un logiciel
d’application puisse être intégré au logiciel de base. Ce qui est la tâche du manager. Une
fonction du logiciel de base peut être câblée par besoin d’économie. Ce qui est la tâche du
concepteur.
A l’intérieur du logiciel de base, nous distinguons les outils et services (compilateurs,
éditeurs, utilitaires…) ainsi que le système d’exploitation lui-même.
3
Système d’Exploitation (I)
Chapitre premier
2.2 FONCTIONS D’UN SYSTEME D’EXPLOITATION
Cette partie du logiciel de base, en contact direct avec la machine, remplit deux fonctions
essentielles :
2.2.1 Gestion des resources

Gestion des Ressources physiques
 Processeurs centraux.
 Mémoire principale.
 Mémoire secondaire.
 Organes d’E/S.

Gestion des Ressources logiques
 Partage et échange d’information entre utilisateurs.
 Protection mutuelle des utilisateurs.

Divers


Comptabilité et facturation.
Statistiques et mesure des performances.
2.2.2 Machine virtuelle

Gestion de l’information
 Structuration.
 Conservation.
 Désignation.
 Transfert.

Exécution
 Exécution de programmes en séquence (Batch).
 Exécution de programmes en parallèle.
 Composition de programmes (compilation séparée).

Divers




Mise au point.
Traitement des défaillances.
Mesure du temps.
Etc.…
3. HISTORIQUE DES SYSTEMES D’EXPLOITATION
Pour comprendre encore mieux les systèmes d’exploitation et ce qu’ils font, il faudrait voir
comment ils se sont développés au cours de ces dernières années. En suivant cette évolution,
on pourra identifier les éléments communs à ces systèmes et comprendre leur développement.
Comme les systèmes d’exploitation dépendent étroitement de l’architecture des ordinateurs
sur lesquels ils fonctionnent, on passera en revue les générations d’ordinateurs pour en
examiner les différents systèmes d’exploitation.
4
Système d’Exploitation (I)
Chapitre premier
3.1 PREMIERE GENERATION (1945-1955)
Les machines de cette génération étaient construites au moyen de tubes électroniques. A cette
époque, un seul groupe de personnes concevait, construisait, programmait, utilisait et
effectuait la maintenance de la machine. La programmation se faisait intégralement en
langage machine. Les systèmes d’exploitation étaient inconnus.
Chaque utilisateur se réservait l’usage de la machine pour un temps fini et disposait de toutes
les ressources de la machine. A l’aide d’un pupitre, il communiquait son programme écrit en
binaire et lançait son exécution.
 Inconvénients : matériel trop cher, perte de temps, risque d’erreur et de panne
Au début des années 50, il y eut l’introduction de cartes perforées et la naissance de quelques
logiciels de base qui furent les outils de développements de programmes (assembleurs,
compilateurs, aide à la mise au point) et des sous programmes d’E/S. Ce modèle s’appelle la
porte ouverte open Shop
 Inconvénients : peu économique par rapport au prix du matériel, mauvaise gestion du
matériel.
3.2 DEUXIEME GENERATION (1955-1965)
La naissance des transistors améliorait la situation où les ordinateurs devinrent suffisamment
fiables pour être construits et vendus. Pour lancer un job, le programmeur écrit et tape son
programme sur des cartes perforées et les remet à l’opérateur qui prépare le compilateur en
question, lance l’exécution et remet les résultats de l’imprimante au programmeur qui corrige
son programme et ainsi de suite. La majeure partie du temps de l’ordinateur est perdue au
cours des déplacements de l’opérateur.
On adopta, alors, le traitement par lots Batch Processing qui consiste à rassembler un
ensemble de travaux et préparer leur exécution, d’où la naissance des moniteurs
d’enchaînement qui consistaient à automatiser le passage d’un programme à un autre.
 Inconvénients : Les E/S étaient gérées par le CPU d’où la faiblesse du rendement.
La solution à ce problème était la naissance du parallélisme entre le traitement et les E/S. Une
première solution consiste à utiliser deux ordinateurs séparés, un pour le traitement et l’autre
pour les E/S (IBM 1401 pour les E/S et IBM 7094 pour le traitement).
 Inconvénients : déplacement des bandes magnétiques coûteux en temps.
La deuxième solution est l’intégration des canaux d’E/S. Un canal ou unité d’échange est un
processeur capable d’exécuter des E/S de manière autonome, indépendamment du processeur
central qui exécute le traitement proprement dit.
 Inconvénients : Le CPU et les canaux accèdent à des informations communes en
mémoire centrale, et les vitesses, relatives au traitement et au transfert, deviennent
5
Système d’Exploitation (I)
Chapitre premier
un facteur important. Le débit du périphérique est très faible par rapport à la
capacité de traitement.
En voulant faire du transfert simultané, on a crée une accumulation d’information sous forme
de buffers d’E/S en MC. La solution est de transporter les buffers en mémoire secondaire à
grande capacité telle que le débit de transfert soit un peu plus élevé que les périphériques
lents. Ces transferts sont généralement commandés par un canal.
Cette forme de traitement est appelée SPOOLING figure1.3. Ce nom est acronyme pour
Simultaneous Peripheral Operation On Line. Le Spooling utilise essentiellement le disque
comme un buffer très grand pour lire sur les dispositifs d’entrées et mémoriser les fichiers de
sortie jusqu’à ce que les dispositifs de sorties puissent les accepter.
C
CPPU
U
LECTEUR
CANAL
M
MC
C
CANAL
PRINTER
CANAL
DISQUE
Figure1.3 : Le Spooling
 Inconvénients : le processeur reste inactif pendant la durée de l’E/S. Un travail bref
arrivant pendant l’exécution d’un travail lent attend la fin de celui-ci.
La solution est qu’il faut songer à un système qui accepte plusieurs programmes en mémoire
centrale.
3.3 TROISIEME GENERATION (1965-1980)
Cette génération est caractérisée par la naissance des circuits intégrés et la
multiprogrammation. Des mémoires rapides et de grande capacité ont vu le jour et ont permis
de penser au partage de celles-ci entre plusieurs utilisateurs en même temps.
On dit qu’il y a multiprogrammation lorsque plusieurs programmes coexistent en mémoire et
que le déroulement de l’un peut être interrompu au profit d’un autre avec reprise ultérieure du
programme interrompu.
6
Système d’Exploitation (I)
Chapitre premier
La solution qui en résulte consiste à partitionner la mémoire. Chaque partition contient une
tâche différente. Lorsqu’une tâche attend la fin d’une E/S, une autre tâche peut utiliser le
CPU.
 Inconvénients :
a- Complexité du système : partage de la mémoire et protection des programmes entre
eux en mémoires centrale et secondaire.
b- Partage des ressources : équilibre de la charge du CPU, mémoire centrale et des
organes d’E/S.
c- Protection mémoire et réentrance.
La solution est donc la naissance du temps partagé. Le premier système à temps partagé est le
TCSS qui fut suivi par le système MULTICS ( MULTiplexed Information and Computing
Service).
Cette génération est aussi caractérisée par le développement des mini-ordinateurs de la série
PDP11 de la DEC et une nouvelle version de Multics baptisée UNIX (UNiplexed Information
and computing service).
Le principe du temps partagé consiste à allouer à chaque utilisateur une portion de temps
(quantum) lui permettant de disposer de toutes les ressources dont il a besoin. Ces tranches
de temps sont de quelques millisecondes (ms).
Cette génération fut aussi caractérisée par le développement des systèmes temps réel qui sont
une forme de systèmes d’exploitation spécialisés. Ils consistent à conduire des processus
industriels par un ordinateur. L’ordinateur fait lui-même des prélèvements de données dont il
a besoin (température, pression, etc.…) et agit directement sur les organes du processus
industriel. Les mesures sont enregistrées périodiquement, affichées sur un tableau de bord et
stockées pour des statistiques d’exploitation. L’ordinateur veille que les mesures prises soient
normales et ne dépassent pas un certain seuil. Sinon, il provoque l’arrêt du processus
industriel. Comme les pannes ou les défaillances sont aléatoires, le système doit rester en
garde pour éviter tout accident. On dit qu’il travaille en temps réel.
3.4. QUATRIEME GENERATION (1980 – 1990)
Cette génération est caractérisée par les ordinateurs personnels, les réseaux et les systèmes
répartis.

Ordinateurs Personnels
Les PCs sont apparus dans les années 1970 grâce à l’électronique LSI (Large Scale
Integration) et VLSI. Leurs systèmes d’exploitation n’étaient ni multi-utilisateurs ni multitâches. Depuis, ces systèmes ont opté pour la commodité et la rapidité d’où la naissance de
CPM, MSDOS, OS/2, Xenix qui sont simples d’utilisation et ont commencé à intégrer
beaucoup de concepts d’Unix. Microsoft a étendu MSDOS pour inclure un système de
fenêtrage et IBM a intégré le multitâche et le système de fenêtrage a OS/2.
En même temps on a développé également du matériel plus puissant, plus rapide et plus
sophistiqué. Les stations de travail comme les stations Sun, Appolo d’HP ou la RS/6000
d’IBM sont des résultats d’un tel effort. Actuellement, beaucoup d’universités et de sociétés
7
Système d’Exploitation (I)
Chapitre premier
préfèrent utiliser un grand nombre de stations connectées en réseaux locaux. La ligne qui
sépare la station du PC tend à s’effacer dans l’avenir.
 Les systèmes distribués
De tels systèmes possèdent plus d’un processeur en étroite communication partageant le bus
de l’ordinateur, l’horloge et quelquefois la mémoire et les périphériques. Il existe plusieurs
raisons pour créer de tels systèmes. En augmentant le nombre de processeurs, on espère
améliorer la capacité de traitement, c’est à dire, effectuer plus de travail en moins de temps.
Un autre avantage aussi considérable est la fiabilité. Si l’on peut distribuer correctement les
fonctions parmi les différents processeurs, une panne d’un processeur n’arrêtera pas le
système mais peut être le ralentira seulement. Les autres processeurs auront à effectuer les
tâches du processeur en panne jusqu’à son rétablissement. Ce mode de fonctionnement
s’appelle le mode dégradé.
Les systèmes multiprocesseurs actuels les plus courants utilisent le modèle de traitement
symétrique où chaque processeur exécute une copie du système d’exploitation. Au besoin, ces
copies communiquent entre elles. D’autres utilisent le traitement asymétrique où à chaque
processeur est assignée une tâche spécifique. Un processeur maître contrôle le système, les
autres attendent que le maître donne des instructions. Le processeur maître alloue par
scheduling du travail aux processeurs esclaves. Dans de tels systèmes, les utilisateurs n’ont
pas à connaître où se trouvent leurs fichiers ou leurs programmes. Les systèmes distribués
permettent l’exécution simultanée et distribuée de plusieurs programmes sur plusieurs
processeurs. Le scheduling est complexe et doit optimiser le parallélisme. Il doit également se
dérouler en cas d’informations incomplètes ou fausses à cause des délais de communication.
 les systèmes répartis
Les processeurs ne partagent pas de mémoire ni d’horloge. Au lieu de cela, chaque processeur
possède sa propre mémoire locale. Les processeurs communiquent à travers diverses lignes de
communication.
Dans un système réparti, les processeurs peuvent varier en taille et en fonction. Ils peuvent
inclure des PCs, des stations, des mini-ordinateurs et de grands systèmes à usage général. Ces
processeurs portent différentes appellations sites, nœuds, ordinateurs, etc. Dans un tel
système, les utilisateurs connaissent l’existence des différents sites, peuvent se connecter sur
une machine distante et transférer des fichiers d’une machine à une autre. Chaque ordinateur
fonctionne avec son propre système et au compte d’un utilisateur particulier.
Les raisons pour construire des systèmes répartis sont le partage des ressources, l’accélération
du calcul, la fiabilité et la communication.
4. STRUCTURE DES SYSTEMES D’EXPLOITATION
Un système doit être conçu soigneusement pour fonctionner correctement et être modifié
facilement.
4.1 SYSTEME MONOLITHIQUE
Le système est, dans ce cas, un ensemble de procédures pouvant s’appeler entre elles. Chaque
procédure doit avoir une interface bien définie. Le système est considéré comme une seule
8
Système d’Exploitation (I)
Chapitre premier
pièce, lorsqu’il prend le contrôle il masque toutes les caractéristiques matérielles en particulier
les interruptions.


Avantage : Cette structure est relativement simple à concevoir et à implémenter.
Inconvénient : n’importe quelle interruption invoque le système et masque toutes les
autres. Ce qui tend à dégrader le temps de réponse, spécialement quand il y a plusieurs
processus.
MSDOS en est un exemple écrit pour fournir le plus de fonctionnalité possible dans le
moindre espace, à cause du matériel sur lequel il allait tourner. Il n’a donc pas été
soigneusement divisé en modules. La figure1.4 montre sa structure courante. Même s’il
possède une structure quelconque, ses interfaces et ses niveaux de fonctionnalités ne sont pas
bien séparés. Les programmes d’application sont capables d’accéder aux routines D’E/S de
base (BIOS) afin d’écrire directement sur l’écran ou sur l’unité de disque par exemple. Un tel
risque rend MSDOS vulnérable devant les programmes erronés, ce qui se caractérise par des
blocages complets assez souvent du système.
PROGRAMMES D’APPLICATION
PROGRAMMES SYSTEMES
RESIDENTS
DRIVERS MSDOS
DRIVERS BIOS
Figure1.4 : La structure de MSDOS
4.2 SYSTEME EN COUCHES
Dans l’approche en couches, on dit également noyau, le système est réparti en un noyau et un
nombre de processus systèmes s’exécutant simultanément. Chaque couche représente une
machine virtuelle cachant tous les détails de la machine de niveau inférieur.

Avantage : est la modularité. Les couches sont sélectionnées de telle sorte que
chacune utilise seulement les fonctions et services des couches inférieures. Cette
approche simplifie la mise au point du système.

Inconvénient : pour exécuter une opération d’E/S, un programme utilisateur doit
exécuter un appel système à la couche gestion des E/S qui appelle, elle-même, la
couche gestion de la mémoire puis la couche scheduling du CPU et enfin le matériel.
Dans chaque couche, les paramètres d’appel sont sujets de changement. Chaque
couche ajoute une surcharge à l’appel, ce qui rend l’appel plus lent que dans un
système qui n’est pas en couches.
9
Système d’Exploitation (I)
Chapitre premier
OS/2, descendant direct de MSDOS, a été conçu en couches comme le montre la figure1.5 :
APPLICATIO
N
APPLICATIO
N
APPLICATIO
N
USER MODE
KERNEL MODE
FILE SYSTEM
MEMORY AND I/O DEVICE MANAGEMENT
PROCESSOR
SCHEDULING
Figure1.5HARDWARE
: La structure de OS/2
4.3 MACHINES VIRTUELLES
L’approche en couches a abouti au concept de la machine virtuelle. La figure1.6 montre une
telle structure. Le noyau se charge de la multiprogrammation et fournit plusieurs machines
virtuelles. Ces machines sont des modèles logiques de la machine réelle. Chaque machine
virtuelle exécute n’importe quel système d’exploitation. Il serait préférable d’utiliser des
systèmes mono-utilisateurs tels que MSDOS. IBM, le pionnier de ce domaine, appelle ces
machines des CMS (Conversational Monitor System). L’avantage est que les diverses
ressources du système sont totalement protégées. Chaque machine virtuelle est entièrement
isolée des autres, il n’existe pas de problème de sécurité. Il n’y a aucun partage direct des
ressources. Il est possible de définir un réseau de machines virtuelles communiquant entre
elles.
USER 1
USER 2
USER 3
USER 4
CMS
MACHINE VIRTUELLE
NOYAU LOCAL
CMS
MACHINE VIRTUELLE
NOYAU LOCAL
CMS
MACHINE VIRTUELLE
NOYAU LOCAL
CMS
MACHINE VIRTUELLE
NOYAU LOCAL
Noyau
MULTIPROGRAMMATION
GESTION DES MESSAGES
10
Système d’Exploitation (I)
Chapitre premier
MATERIEL
Figure1.6 : Système en machines virtuelles
4.4 CLIENT/SERVEUR
L’idée est de décomposer le système en un ensemble de processus clients et serveurs, chacun
des processus serveurs implémente un ensemble de services, par exemple les services de
gestion de la mémoire, des processus ou du scheduling. Chaque serveur tourne en mode
utilisateur, exécutant une boucle qui vérifie toujours s’il y a des requêtes de services des
clients. Le client qui peut être un autre composant (serveur) du système d’exploitation ou une
application utilisateur exprime ses requêtes de services par envoi de messages aux serveurs.
Un noyau tournant en mode kernel (noyau) gère la communication et le transfert des
messages entre les différents éléments (clients et serveurs). Chaque processus peut s ‘exécuter
sur un processeur distinct, ce qui rend le système adaptable à une structure distribuée. Ce
modèle se prête bien aux réseaux et systèmes répartis.
Processus
client
Processus
client
Serveur
Processus
Serveur
Mémoire
Serveur
Fichiers
Serveur
Terminaux
NOYAU
MATERIEL
Figure1.7 : Le modèle client/serveur
4.5 MODELE HYBRIDE
Ce modèle est une combinaison des modèles précédents. Il se base surtout sur le modèle en
couches et sur le modèle client/serveur. Le système se décompose généralement en une
couche d’abstraction du hardware ce qui constitue la machine virtuelle, d’un noyau et d’un
exécutif. Le noyau implémente les fonctions de bas niveau tout comme le noyau du modèle
client/serveur. Il comprend le scheduling des threads, la gestion des interruptions et la
synchronisation multiprocesseur. Il comprend également un ensemble de routines et d’objets
de base nécessaire à l’exécutif.
11
Système d’Exploitation (I)
POSIX
Subsystem
Chapitre premier
OS/2
Subsystem
Win32
Subsystem
Security
Subsystem
Win32
Client
SYSTEM CALLS
Object
Process
Memory
Security
I/O
Manager
Manager
Manager
Manager
System
KERNEL
HARDWARE ABSTRACTION
LAYER
HARDWARE
Figure1.8 : Windows NT, un modèle hybride
4.6 APPELS SYSTEMES
D’après les structures des systèmes précédentes les appels système peuvent être divisés en
plusieurs catégories selon les modules ou serveurs des couches inférieures. Grossièrement, ils
sont représentés en cinq catégories.

Processus :







Arrêter (end) , stopper un processus (abort)
Charger (load), exécuter un processus(execute)
Créer (fork) ,terminer(exit)
Obtenir(get, set process attib), définir des attributs
Attendre un certain temps(wait time)
Attendre , signaler des événements( wait, signal )
Allouer, libérer la mémoire(alloc, dealloc)
 Fichiers :
12
Système d’Exploitation (I)




Chapitre premier
créer , supprimer (create, delete)
ouvrir , fermer (open, close)
lire, écrire, repositionner (read, write, reposition)
obtenir, définir des attributs(get ,set file attributes)
 I/O :
 demander, libérer des périphériques(request, release)
 obtenir, définir des attributs de périphériques (get, set)
 attacher, détacher attach, detach)
 Information :
 date et heure (date, time)
 données système (get, set)
 processus, fichiers, périphériques (get,set)
 Communication :




créer, supprimer des connexions(open , close)
envoyer, recevoir des messages(send receive)
transférer des informations sur les états(get , set)
attacher, détacher des périphériques à distance
13
Système d’Exploitation (I)
Chapitre premier
GENERALITES
EXERCICES
EXERCICE 1 :
On considère un ordinateur dont les organes périphériques sont un lecteur de cartes(1000
c/minutes) et une imprimante (1000 l/minutes). Un « travail moyen » est ainsi défini :
 lire 300 cartes.
 Utiliser le processeur pendant 1 minute.
 Imprimer 500 lignes.
On suppose que tous les travaux soumis par les usagers ont des caractéristiques identiques à
celle du travail moyen. On définit 2 mesures des performances du système :
 Le débit moyen D des travaux : nombre de travaux exécutés en 1 heure
 Le rendement M de l’unité centrale (UC) : fraction du temps total d’utilisation de l’UC
pendant lequel elle exécute du travail utile (autre que la gestion des périphériques)
1) On suppose d’abord que les périphériques sont gérés par l’UC. Calculer M et D dans les
hypothèses de fonctionnement suivantes :
a) Le système est exploité en porte ouverte, la durée d’une session est limitée à 15 min
b) Le système est exploité avec un moniteur d’enchaînement séquentiel des travaux
2) On suppose maintenant que les périphériques sont gérés par un ordinateur séparé qui
constitue une bande magnétique (BM) à partir des cartes et liste sur l’imprimante le
contenu d’une BM de sortie. L’ordinateur principal est alimenté par la BM d’entrée et
produit la BM de sortie. On néglige la durée de lecture et d’écriture des BM. Le temps de
transfert des BM d’un ordinateur à l’autre est de 5 min, dans chaque sens ; on suppose
qu’une BM regroupe une journée de 50 travaux.
a) On suppose que le rythme de soumission des travaux est suffisant pour occuper
l’ordinateur central à plein temps. Calculer M et D
b) Etablir la planification de la constitution du train des travaux et calculer le temps
d’attente moyen d’un usager (temps entre la soumission du travail et la réception du
résultat). On admettra que les travaux arrivent à un rythme régulier, que le temps de
constitution d’une journée (préparation du train de cartes) est de 10 min, et que le
temps de distribution des résultats d’une journée (découpage et tri des listes) est de 10
min également.
3) Les périphériques sont maintenant gérés par un canal d’E/S. Le système est
monoprogrammé et le moniteur d’enchaînement permet à l’UC d’exécuter le traitement
parallèlement à la lecture des suivants et à l’impression du précédent. Calculer dans ces
conditions M et D. Même question si le travail moyen lit 1200 cartes et imprime 1500
lignes pour 1 min d’utilisation du l’UC.
4) Les E/S sont maintenant gérés avec tampons sur disque (spool de lecture et d’impression).
Le travail moyen est celui défini en (3) (1200 cartes, 1 minute et 15000 lignes)
a) On suppose qu’une carte et une ligne d’impression occupent respectivement 80 et 100
octets. Quelle est la taille minimale nécessaire des tampons (buffers) de lecture et
14
Système d’Exploitation (I)
Chapitre premier
d’impression sur disque que l’UC soit utilisée à son rendement maximal ? Quel est
alors le débit des travaux.
b) Le rythme d’arrivée des travaux et la taille du tampon de lecture sont ceux calculés en
a) et la taille du tampon d’impression sur disque est 2 Mega-Octets. Quel est le
rendement de l’UC ?
EXERCICE 2 :
Soient 3 programmes P1, P2 et P3 de priorité décroissante, on suppose qu’il n’y a pas de
conflits au niveau des périphériques pour l’exécution de ces programmes en
multiprogrammation. On veut utiliser la méthode du quantum de temps attribué à chacun des
programmes.
 Un programme devra abandonner l’UC lorsqu’il l’aura utilisé pendant le temps T
 Un programme peut abandonner l’UC pendant un temps t1<T, sachant que:
P1 utilise 10mn d’UC pour 25ms d’opération d’E/S
P2 utilise 30mn d’UC pour 40ms d’opération d’E/S
P3 utilise 5mn d’UC pour 30ms d’opération d’E/S
T= 10ms
1) Représenter graphiquement l’exécution des 3 programmes
2) Citer quelques avantages et inconvénients en utilisant les différents algorithmes
 interruption d’une tâche et lancement d’une opération d’E/S
 utilisant le critère de priorité
 utilisant le quantum de temps
EXERCICE3 :
1- Quels sont les objectifs principaux d’un système d’exploitation ?
2- Une méthode extrême de Spooling connue comme Staging, consiste à lire le contenu
d’une bande magnétique sur disque avant de l’utiliser. Exposer le principal avantage
d’un tel système ?
3- Dans un système multiprogrammé et en temps partagé, plusieurs utilisateurs partagent
le système simultanément. Cette situation peut provoquer divers problèmes de
sécurité :
a - Quels sont ces problèmes ?
b – Dans une machine en temps partagé, pouvez vous assurer le même
degré de sécurité que dans une machine dédiée.
4- Quel est le principal avantage de la multiprogrammation ?
5- Quelles sont les principales différences entre les systèmes pour les gros ordinateurs et
les ordinateurs personnels ?
6- Définissez les propriétés suivantes :
a- Batch
b- Interactif
c- Temps partager
d- Temps réel
e- Réparti
7- Nous avons insisté sur la nécessité pour un OS d’utiliser efficacement le matériel.
Quand est ce que le système (OS) délaisse ce principe et gaspille des ressources ?
Pourquoi un tel système n’est il pas du gaspillage. ?
15
Système d’Exploitation (I)
Chapitre premier
8- Dans quelles circonstances serait-il mieux qu’un user utilise un système en temps
partagé plutôt qu’un PC ou une station de travail mono utilisateur ?
9- Donner les différences entre multitraitement symétrique et asymétrique. Quels sont les
avantages et les inconvénients des OS multiprocesseurs ?
10- Pourquoi les systèmes répartis sont-ils souhaitables ?
11- Quelle est la principale difficulté à surmonter pour écrire un système temps réel ?
12- Quelles sont les activités d’un système d’exploitation en ce qui concerne la gestion des
processus ?
13- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la
gestion de la mémoire ?
14- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la
gestion de la mémoire auxilliaire ?
15- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la
gestion des entrées-sorties ?
16- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la
gestion de fichiers ?
17- Quel est l’objectif de l’interpréteur de commandes. Pourquoi est-il habituellement
séparé du noyau ?
18- Enumérer les cinq services fournis par un système d’exploitation. Expliquer comment
chacun d’entre eux rend le système plus pratique pour les utilisateurs. Expliquer
également dans quels cas il serait impossible pour les programmes niveau utilisateur
de fournir ces services ?
19- Quel est l’objectif des appels système ?
20- Quel est l’objectif des programmes système ?
21- Quel est le principal avantage de l’approche en couches pour la conception des OS ?
22- Pour un concepteur d’OS, quel est le principal avantage d’utiliser une architecture de
machine virtuelle. Quel en est le principal avantage pour l’utilisateur ?
16
Système d’Exploitation (I)
Chapitre premier
GENERALITES
SOLUTION DES EXERCICES
EXERCICE1 :
1a/ On réserve la machine à l’user pour une durée de 15mn.
Durée d’1 travail (W)
 15mn
Débit  60mn  Débit = Nombre de travaux en une heure = 1/15.60
= 4 wx.
Rendement (η) = Tps utile/Tps total.
Chaque travail (W) occupe le CPU pendant 1mn et la session dure 15mn donc
η = 1/15 ≈ 6%



b/ Le système est exploité avec un séquenceur automatique.
Durée d’un travail = Tps lecture des cartes + Tps d’exécution + Tps impression des cartes
Tps lecture des cartes : 1000 c  1mn
300 c  T1= 3/10
Tps d’exécution : T2 = 1mn
Tps impression des cartes : 1000 l 1mn
500 l  T3= 5/10
Donc Tps d’un W moyen = T1 + T2 + T3 = 1.8
Débit :
Tps d’un W moyen 
1.8
Débit
 60mn  Débit =60/1.8 ≈ 3 wx
Rendement η= 1/1.8=0.55= 55%
2- Transfert : LC  BM = 5mn
BM  Imp = 5mn BM  50wx
a/ Le processeur travaille pendant une minute pour un travail moyen
Donc Tps CPU = 50 wx*1 = 50mn pour une journée
Tps d’occupation de l’UC dans la journée = 5 + 50 +5 = 60mn= 1h
Donc Débit (D) = 50wx
Rendement (η)= 50/60 ≈ 83%
b/ Tps de préparation de train des cartes = 10mn
Tps de distribution d’une journée = 10mn
Tps d’attente moyen d’un usager =
Tps moyen de préparation des cartes (T1)
+
Tps de transfert du LC vers BM (T2)
+
Tps d’occupation de l’UC dans la journée (T3)
17
Système d’Exploitation (I)
Chapitre premier
+
+
Tps de transfert de BM vers IMP (T4)
Tps moyen de distribution (T5)
T1= 10/2= 5mn en moyenne
T2= 15mn
1000 c  1mn
300*50 T2
T3= 5 +50 + 5=60mn
T4= 25 mn
1000 l  1mn
500*50 T4
T5= 10/2= 5mn en moyen
Donc Tps d’attente moyen = 110mn
3Tps =Tlect + NTproc + Timp =60mn  N= (60- 3/10- 5/10) /1 = 59.2
Donc Débit = 59.2
Rendement (η) = 59.2/60 = 98%
Même question avec 1 travail moyen (LC=1200c, Proc=1mn, Imp=1500 l)
Tps LC :
1000 c  1mn
1200 c  1200/1000 = 1.2mn
Tps Imp :
1000 l  1mn
1500 l  1500/1000 = 1.5mn
Tps = TpsLect + TpsProc + NTpsImp = 60mn  N= (60 – 22/10) * 10/15 = 38.5
Donc Débit = 38
Rendement (η) = 58.5/60 = 64%
4a/ La taille minimale du tampon d’entrée est celle d’un travail :
1c
 80 octets
1200 c  1200*80= 960000 octets
Donc TailleTE ≈ 96 Koctets
Taille minimale du tampon de sortie est celle des résultats d’un travail :
1l
 100 octets
1500 l  1500 * 100 = 1500000 octets
Donc TailleTS ≈ 150 Koctets
Comme le spooling permet l’aiguillage rapide de la tête du disque pour une lecture ou une
écriture l’UC étant utilisée à son rendement maximale c.à.d 100%. La durée d’un travail se
réduit donc au temps de l’exécution par l’UC c.à.d 1mn. Donc Débit = 60
18
Système d’Exploitation (I)
Chapitre premier
b/ Pendant l’utilisation de l’UC d’une minute, il y a l’impression de 1500 lignes sur disque 
150 Koctets après 13.3mn d’exécution , 2 Mégaoctets peuvent être imprimés et 96k lus sur
disque. Donc η = 1.
EXERCICE3 :
1-
OS
Machine
Virtuelle
Gestion des
ressources
a- présente une machine virtuelle.
b- gestion des ressources.
 physiques : CPU, MC, MS (disque), E/S
 logiques : données et programmes
- partage et échange
- protection mutuelle
Machine virtuelle : présenter les outils pour pouvoir
Conservation
Exécution Batch
Désignation
Données
Exécution Parallèle Programmes
Structuration
Composition des programmes
2) Avec Spooling :
C
CPPU
U
BANDE
CANAL
M
MC
C
CANAL
PRINTER
CANAL
DISQUE
19
Système d’Exploitation (I)
Chapitre premier
Sans Spooling :
CPU
BANDE
MC
PRINTER
Explication :
 Sans spooling  les E/S sont simultanées avec la lecture  Encombrement de la
mémoire.
 Avec spooling  on utilise le disque pour accélérer.
 Le staging  copier de la bande magnétique sur disque.
 Avantage : gain de temps dû à la différence de vitesse entre bande et disque.
3)
Les problèmes de sécurité sont :
a/ Protéger le système contre les utilisateurs.
b/ Protéger les utilisateurs entre eux.
c/ Assurer la protection par le système de fichiers (SGF) qui affecte à chaque utilisateur
une Home directory (espace de travail). Par contre la machine dédiée est sécurisée.
4/ La multiprogrammation  plusieurs programmes en mémoire. L’exécution d’un
programme et les E/S d’un autre se font en parallèle ce qui augmente le rendement et
l’efficacité du CPU.
5/ Comparons deux systèmes connus : MS – DOS pour le PC et Unix pour gros système
Critères
Sécurité
Multitâche
Ms-dos (pc)
Limitée
Non Préemptif
Gestion de la Mémoire
Totalement allouée à
l’utilisateur
Partage du disque
Généralement accès
Séquentiel(Simultanéité avec
le système)
unix (gros système)
Renforcée
Préemptif
(Notion
de
priorité, de quantum…)
Partagée entre plusieurs
utilisateurs ayant plusieurs
programmes chacun
Accès Multiple
20
Système d’Exploitation (I)
Chapitre premier
6)
a- Batch : traitement séquentiel par lots.
b- Interactif : traitement séquentiel ou lire (commande – réponse)
c- Temps partager : plusieurs terminaux reliés à une centrale (sécurité…)
d- Temps réel : notion de deadline gestion du temps.
e- Réparti : plusieurs PC reliés en réseaux.
7)


1er cas : OS peut gaspiller des ressources pour gérer le temps efficacement dans un
système en temps réel où la notion de deadline (temps critique) est très importante.
2ème cas : OS peut gaspiller des ressources au profil de l’interactivité. Dans une
machine dédiée les E/S, la MC et le CPU ne sont pas exploités à 100% car ils sont
dédiés à un seul utilisateur à un instant t.
8) Il serait meilleur qu’un utilisateur utilise un système en temps partagé plutôt qu’un PC ou
une station de travail mono utilisateur, lorsqu’il y a un accès partagé aux données et/ou
programmes.
9) Système symétrique :
 Avantage : indépendance des machines
 Inconvénient : la sécurité n’est pas très fiable.
MC
P1, P2,…, Pi
MC
P1, P2,…, Pi
MC
P1, P2,…, Pi
OS
OS
OS
CPU
CPU
CPU
Système asymétrique :
 Avantage : la sécurité de l’OS est efficace.
 Inconvénient : si la machine qui contient l’OS tombe en panne, tout le système est
paralysé.
21
Système d’Exploitation (I)
MC
Chapitre premier
MC
P1, P2,…, Pi
MC
P1, P2,…, Pi
OS
CPU
CPU
CPU
10) Les systèmes répartis sont souhaitables du point de vue coût par rapport au temps partagé.
Aussi la liberté de travail et de maintenance.
11) La difficulté à surmonter pour écrire un système en temps réel est la gestion du temps (le
deadline) qui nécessite un changement du scheduling et du système d’interruption.
12) Les activités du SE concernant la gestion des processus sont :
 Création et suppression des processus utilisateurs et systèmes.
 Suppression et reprise des processus.
 Fourniture de mécanismes de communication des processus.
 Fourniture des mécanismes de synchronisation des processus
 Fourniture des mécanismes pour le traitement des interblocages.
13) Les activités du SE concernant la gestion de la mémoire sont :
 Savoir en permanence quelles parties de la mémoire sont en cours d’usage
et par qui.
 Décider quels processus doivent être chargés en mémoire quand on
dispose de l’espace libre.
 Allouer et désallouer de l’espace si nécessaire.
14) Les activités du SE concernant la gestion de la mémoire auxiliaire sont :
 Gestion de l’espace libre.
 Allocation de la mémoire.
 Scheduling du disque.
15) Les activités du SE concernant la gestion des Entrées-Sorties sont :
 Un système de mise en mémoire cache (à coté du contrôleur disque ou sur
la RAM)
 Une interface générale de drivers.
 Des drivers pour des périphériques spécifiques.
16) Les activités du SE concernant la gestion des fichiers sont :
22
Système d’Exploitation (I)





Chapitre premier
Création et suppression de fichiers.
Création et suppression de répertoires.
Support de primitives pour manipuler des fichiers et des répertoires.
Correspondance entre les fichiers et la mémoire auxiliaire.
Sauvegarde des fichiers sur support stable (non volatil).
17) Les cinq services fournis par un système d’exploitation sont :
 Exécution des processus.
 Opération des E/S
 Manipulation du système de fichiers.
 Communication
 Détection d’erreurs
18) Les appels systèmes jouent le rôle d’interface entre le software et les processus (un
processus en évolution fait appel à plusieurs appels systèmes).
19) Les programmes systèmes facilitent la tâche de programmation de l’utilisateur
20) Avantage de l’approche en couches pour la conception des OS est la modularité :
 Indépendance entre couches
 Modification ou chargement des couches
o Portabilité
o Facilité de mise au point
o Facilité de conception
21) Avantage d’utiliser une architecture de machine virtuelle est :
 Du point de vue concepteur : Réduction du code. Uniquement le code de
la machine virtuelle
 Du point de vue utilisateur : Pas de recyclage. Il travaille sur le système
qu’il maîtrise.
23
Téléchargement