Académique Documents
Professionnel Documents
Culture Documents
——————————————————————
Cours de
SYSTEMES D'EXPLOITATION
- Introduction -
——————————————————————
UF 75 52 03 U32 D2
H. Schyns
Septembre 2012
Version provisoire
Systèmes d'eploitation Sommaire
Sommaire
1. INTRODUCTION
2.1. Definition
2.2. Rôles d'un système d'exploitation
2.2.1. Gérer les ressources
2.2.2. Créer des couches d'abstraction
2.2.3. Fournir une interface ergonomique
2.2.4. Autres fonctions
4. HISTORIQUE
5. SOURCES
5.1. Internet
5.2. Autres
H. Schyns S.1
Systèmes d'exploitation 1 - Introduction
1. Introduction
Nous avons vu dans le cours de structure des ordinateurs que, d'un point de vue
matériel, celui-ci s'organise autour d'une unité de traitement des données (fig. 1.1) :
Unité de
Traitement
UAL
L'unité de traitement doit échanger des informations avec son environnement grâce
à des périphériques d'entrée (clavier, scanner, souris, …) et des périphériques
de sortie (écran, imprimante, …)
Elle doit aussi conserver les données et les résultats pendant les traitements ce qui
implique l'existence d'une mémoire (fig. 1.2).
Mémoire Mémoire
(données) (programmes)
H. Schyns 1.1
Systèmes d'exploitation 1 - Introduction
D'un autre côté, en supposant qu'un programme soit en cours d'exécution comment
sait-il où se trouve tel ou tel fichier auquel il doit accéder ? Comment connaît-il les
emplacements de mémoire auxquels il peut accéder ?
Evidemment, ce processus de gestion est lui aussi un programme qui est aussi
exécuté par l'unité de traitement (processeur). Et ce programme doit aussi utiliser
certaines ressources. Mais comment sait-il… Nous tournons en rond (fig. 1.3).
Le truc consiste à mettre "en dur" dans la machine un petit programme qui
s'exécutera automatiquement dès la mise sous tension : le programme
d'amorçage (ang.: boot process).
D'où vient ce premier programme ? Comment va-t-il permettre de lancer tous les
autres ? Quels sont ces autres programmes ? C'est ce que nous verrons dans le
cadre de ce cours.
Il est commode de présenter la réalisation d'une tâche à l'aide d'un ordinateur selon
un modèle en couches superposées.
Chaque couche possède son langage particulier, c'est à dire un jeu d'instructions
qui lui est propre. Chaque couche se fonctionne comme un traducteur placé entre
la couche qui lui est supérieure et la couche qui lui est inférieure.
H. Schyns 1.2
Systèmes d'exploitation 1 - Introduction
Les programmes d'application sont tous les logiciels dont l'utilisateur se sert
couramment : tableur, traitement de texte, navigateur internet. Tous ces logiciels
ont leurs propres jeux de commandes et de fonction.
Langage
6 Excel est conçu en C ou C++
de programmation
Le logiciel va utiliser des ressources système : il doit lire la souris, scruter le clavier,
afficher des informations à l'écran, utiliser de la mémoire. Toutes ces ressources
sont gérées de manière standard par le système d'exploitation. C'est lui par
exemple qui sait comment on ouvre un fichier sur le disque dur, comment on y
inscrit une information, comment on la relit. Le système d'exploitation a son propre
langage : on ne s'adresse pas à DOS comme à Windows ou à Linux.
H. Schyns 1.3
Systèmes d'exploitation 1 - Introduction
1
Chaque processeur a son propre langage machine ( ). C'est un langage natif,
codé en "dur" dans chaque processeur, le seul qu'il comprenne; ce qui rend
incompatibles des processeurs de familles différentes.
Une application n'est pas un processus. Plus exactement, pour qu'une application
fonctionne, il peut y avoir des dizaines de processus mis en œuvre en arrière plan.
Pour faire simple, nous dirons qu'un processus est un segment de programme en
cours d’exécution
Le processus est donc la plus grosse séquence d'instruction que le processeur peut
traiter seul.
Une application peut être multitâches ou, plus simplement, multiprocessus. Ceci a
pour avantage
1
Plus exactement, ce langage est particulier à chaque famille de processeurs p.ex. la ligne des
processeurs Pentium de Intel.
H. Schyns 1.4
Systèmes d'exploitation 2 - Définition et rôles d'un système d'exploitation
2.1. Definition
A son origine, dans les années 1950, le système d'exploitation était simplement
définit comme le programme qui contrôle le matériel.
Ainsi qu'il a été dit ci-dessus, le premier rôle du système d'exploitation a été de de
contrôler la manière dont les ressources (entités passives) sont allouées aux
processus (entités actives) : quantité de mémoire, temps de calcul autorisé, etc.
Ainsi, un système d'exploitation est capable de voir que le temps de calcul qu'il a
attribué à un processus est écoulé. Il peut alors l'interrompre tout en mémorisant
l'état dans lequel il a été interrompu. Ceci fait, il peut dégager les ressources qui lui
était attribuées et les donner à un nouveau processus qui veut lancer ou à un
processus qui avait été mis en attente précédemment et qu'il veut réactiver.
Il est important de noter que c'est le système d'exploitation et non le matériel qui
définit si un système informatique est mono- ou multi-tâches.
H. Schyns 1.1
Systèmes d'exploitation 2 - Définition et rôles d'un système d'exploitation
Une première couche d'abstraction (ang.: abstraction layer) permet de masquer les
détails du fonctionnement d'une ressource (mémoire, disque dur, clavier, écran, …)
tout en offrant un ensemble de fonctions standardisées à un utilisateur (lequel peut
être un être humain ou un logiciel).
Un exemple est la notion de flux (ang.: stream) qui peut tout aussi bien représenter
l'envoi de données vers l'écran, vers un fichier sur disque dur ou vers la carte
réseau. Le développeur utilisera les mêmes instructions dans tous les cas.
1 Les fabricants veillent à rester cohérents dans leurs lignes de produits (p.ex. imprimantes) en utilisant les
mêmes codes pour produire les mêmes effets mais il n'y a généralement pas d'accord entre les fabricants
sur les codes à utiliser.
H. Schyns 1.2
Systèmes d'exploitation 2 - Définition et rôles d'un système d'exploitation
En faisant exécuter tous les processus sur des machines virtuelles indépendantes
qui disposent de leurs propres ressources, le système d'exploitation peut facilement
contrôler si l'une d'elle tente d'écrire dans la zone de mémoire attribuée à une autre.
Il peut aussi régler les conflits engendrés entre deux processus qui tenteraient
d'accéder simultanément à un même fichier du disque dur. Il réduit ainsi
considérablement les risques de plantage du système.
Bien souvent, l'utilisateur est plus intéressé par les caractéristiques de l'interface
que par les performances rélles du système d'exploitation. C'est notamment ce qui
explique la popularité de Windows comparée à celle de Linux.
De plus, l'interface doit lui permettre de gérer non seulement sa propre machine,
mais aussi de nombreux processus qui s'exécutent sur des ensembles d'ordinateurs
mis en réseaux.
1 Il ne s'agit pas encore de machines virtuelles telles que celle crées à l'aide de logiciels de virtualisation tels
que VMware ou VirtualBox car celles dont on parle ici ne sont accessibles que par le SE.
H. Schyns 1.3
Systèmes d'exploitation 2 - Définition et rôles d'un système d'exploitation
H. Schyns 1.4
Systèmes d'exploitation 3 - Types de système d'exploitation
Rien que dans le monde des PC, il en existe des dizaines, chacun ayant ses
avantages et ses inconvénients. Citons en vrac Linux, OS2, OS9, Paradox…
Les gros systèmes (ang.: mainframes) utilisés dans les grosses sociétés ont eux
aussi leurs systèmes d'exploitation : Unix, VMS (IBM), MVS (VAX), HP2000 (HP),
etc. Ils permettent notamment de faire du traitement par lots (ang.: batch) et de
gérer des files d'attente (ang.: queues) pour de multiples utilisateurs.
Enfin, les petits appareils "embarqués" tels que téléphones portables (GSM),
agendas électroniques (PDA), et autres systèmes d'aides à la navigation (GPS)
fonctionnent aussi grâce à un système d'exploitation très léger.
Par contre les petits ordinateurs qui équipent les ascenseurs, les fours à micro–
ondes, les machines à lessiver et autre electr-ménager "blanc", en sont parfois
encore dépourvus.
3.2. Monotâche
Exemples : MS-DOS
3.3. Multitâche
partagé (ang.: time sharing) donne l'impression que tous ces programmes
s'exécutent simultanément.
Chaque application dispose des ressources du système puis les libère pour
permettre à l'application qui la suit dans une file d'attente d'en disposer à son tour.
L'activation d'une tâche est confiée à la tâche qui prècède, un peu comme dans une
chaîne de montage automobile. Chaque tâche dépend des autres pour exécution :
si une des tâches est bloquée, c'est l'ensemble du système qui s'arrête.
3.3.3. Multiutilisateur
Naguère, seuls les gros systèmes nommés ordinateurs centraux (ang.: mainframes)
permettaient à plusieurs utilisateurs de travailler simultanément en se servant de
terminaux passifs.
Le temps processeur est non seulement réparti entre plusieurs tâches mais aussi
partagé entre plusieurs utilisateurs qui opèrent depuis les terminaux.
3.3.4. Multithreading
Une application multithread est un logiciel qui dès sa conception a été partagé en
différentes sous-applications appelées fils d'exécution (ang.: threads). Leur
exécution est confiée au système d’exploitation.
H. Schyns 3.2
Systèmes d'exploitation 3 - Types de système d'exploitation
autres, les threads issus d'une même application partagent un même espace
mémoire.
3.3.5. Synthèse
OS Multitâche Multiutilisateur
DOS Non Non
Unix Oui Oui
Windows 95 - 98 - millénium Coopératif Non
Windows NT - 2000 - XP - etc Préemptif Non
idem + terminal server Préemptif Oui
3.4. Multiprocesseur
Notons qu'un système d'entrée/sortie avancé, tel qu'une carte graphique pourvue
d'un processeur dédicacé (GPU), ne constitue pas un système mutli processeur car
ce n'est pas le processeur graphique qui exécute et contrôle l'application de
l'utilisateur.
Dès les années 1960, époque à laquelle les ordinateurs occupaient une salle
entière, il est apparu qu'ajouter un deuxième CPU au système revenait bien moins
cher que l'achat d'un deuxième ordinateur.
En effet, les systèmes d'exploitation de l'époque avaient été développés pour gérer
un seul processeur. En gérer deux de manière efficace allait demander une refonte
complète des systèmes d'exploitation. Une solution plus rapide était de créer un
lien maître-esclave entre les deux CPU : le système d'exploitation fonctionnant
uniquement sur le CPU primaire (ang.: foreground) tandis que le processeur
secondaire (ang.: background) exécutait les applications de l'utilisateur.
H. Schyns 3.3
Systèmes d'exploitation 3 - Types de système d'exploitation
Bus
RAM
Bus
Arbitrage
BUS
CPU CPU
RAM
3 4
Les processeurs peuvent exécuter des programmes différents et travailler sur des
données différentes. Ils peuvent aussi partager les ressources comme des zones
de mémoires, le système d'interruptions, etc. Une des limitations du système est la
bande passante du bus et son usage doit faire l'objet d'un arbitrage, exactement
comme dans le cas d'un réseau.
3.5. Multiordinateur
Pour être exécutée sur un tel système, l'application doit être découpée en
séquences de calcul indépendantes. La coordination est assurée par un intergiciel
(ang.: middelware) qui assure le dialogue entre les machines.
H. Schyns 3.4
Systèmes d'exploitation 4 - Historique
4. Historique
fig. 4.1 Vue du clavier de démarrage de l'ordinateur Data General Eclipse S/130 (1)
Ce système reste d'actualité puisque ce n'est rien d'autre que la séquence de boot
encodée aujourd'hui dans la ROM du BIOS.
1 Source : http://www.chookfest.net/computers/s130.html
2 De nombreux progrès informatiques, dont l'émergence d'Internet, sont dûs à l'impulsion des militaires.
Aujourd'hui, il s'agit plutôt des financiers.
H. Schyns 4.1
Systèmes d'exploitation 4 - Historique
des données, calcul, impression des résultats, entrée des données, etc. L’IBM 704
fut d’ailleurs le support d’un nombre considérable d’innovations capitales.
Assez vite une constatation se fit jour : l’impression des résultats, à la cadence d’un
télétype capable d’imprimer dix caractères par seconde, voire même leur écriture
sur bande magnétique, pouvait prendre un temps aussi long que le calcul
proprement dit, ce qui immobilisait la coûteuse unité centrale pour une tâche somme
toute subalterne.
Il aurait été possible de réduire la perte de temps due à l’impression des résultats en
les écrivant provisoirement sur une mémoire auxiliaire électromagnétique (disque,
bande, tambour...) beaucoup plus rapide qu’une imprimante, puis en les imprimant
plus tard, pendant que l’unité centrale effectuerait d’autres calculs. Cela semblait
possible parce que la tâche d’impression, ralentie par les opérations mécaniques de
l’imprimante, n’utilisait les circuits de l’unité arithmétique et logique que fort peu,
voire pas du tout si l’on avait pris soin d’enregistrer avec les résultats proprement
dits des codes de commande destinés à l’électronique (rudimentaire) de
l’imprimante pour indiquer les sauts de ligne, de page, etc.
(à suivre…)
H. Schyns 4.2
Systèmes d'exploitation 5 - Sources
5. Sources
5.1. Internet
5.2. Autres
H. Schyns 5.1