1°) Différentes façons d’utiliser
un ordinateur
a) En temps réel
L’ordinateur est utilisé pour un travail immédiat qui
peut varier de quelques micro-secondes à quelques secondes.
Exemples : utilisation pour la conduite de gros processus industriels
: pilotage
fusées, trains,
robots, trains, réacteurs chimiques,…. b)
En temps différé
Un ensemble de travaux est reporté à plus tard (1h,quelques jours,…).
L’ordinateur travaille sur des ensembles de même nature ou lots(batch-processing)
avec des files d’attente pour les priorités.
Exemples : factures à la fin de la journée, bulletins de paie à la
fin du mois … c) En mode conversationnel
En temps réel, l’utilisateur dialogue à partir du clavier
avec l’ordinateur.
Exemples : interrogations de fichiers(réservation avions…),
mise au point de programmes,… d) En multiprogrammation
A un instant donné, plusieurs programmes actifs se trouvent chargés
dans la mémoire de l’ordinateur et se partagent ses ressources.
Les transactions, l’ordre de priorité, la gestion de la mémoire
sont contrôlés par un superviseur qui réside en mémoire
et qui peut être aidé par un pupitreur en salle-machine.
Les programmes passent :
– soit par priorité
– soit par tranches de quelques milli-secondes
–
soit par à-coups
L’ordre de priorité des travaux est le suivant :
- les travaux en temps réel
- utilisant des unités lentes
- très brefs comme la compilation
- utilisant un ou deux périphériques
- qui durent très longtemps comme le traitement de gros fichiers
- qui utilisent beaucoup de périphériques
Plusieurs techniques de gestion de mémoire sont utilisées
:
- le tassement
- la pagination
- l’échange de programmes
- la mémoire virtuelle e) En multitraitement
C’est de la multiprogrammation avec un ordinateur disposant de plusieurs
unités centrales(multi-processeurs) f)
En temps partagé (time-sharing)
Une partie de la capacité d’un gros ordinateur est à la
disposition de plusieurs utilisateurs.
2°) Nécessité d’un système d’exploitation
Pour qu'un ordinateur soit capable de faire fonctionner un
programme informatique (appelé parfois application ou logiciel), la machine doit être
en mesure d'effectuer un certain nombre d'opérations préparatoires
afin d'assurer les échanges entre le processeur, la mémoire et
les périphériques.
Un bon OS utilise au maximum les possibilités d’un
ordinateur.
Schéma de représentation abstraite
en couches :

Le système d'exploitation (noté SE ou OS, abréviation
du terme anglais Operating System), est chargé d'assurer la liaison
entre les ressources matérielles, l'utilisateur et les applications
(traitement de texte, jeu vidéo, ...).
Ainsi lorsqu'un programme désire
accéder à une ressource matérielle, il ne lui est pas
nécessaire d'envoyer des informations spécifiques au périphérique,
il lui suffit d'envoyer les informations au système d'exploitation,
qui se charge de les transmettre au périphérique concerné via
son pilote.
En l'absence de pilotes il faudrait que chaque programme reconnaisse
et prenne en compte la communication avec chaque type de périphérique
!

Le système d'exploitation permet ainsi de "dissocier" les
programmes et le matériel, afin notamment de simplifier la gestion des
ressources et offrir à l'utilisateur une interface homme-machine (notée «IHM»)
simplifiée afin de lui permettre de s'affranchir de la complexité de
la machine physique.
Un OS est conçu pour un type de processeur. Il est long à écrire
car il nécessite des centaines de milliers d’instructions d’où son
prix. Maintenant on l’écrit d’abord
puis on construit les UC.
Rôles d’un système d’exploitation
Ils sont divers car l’OS organise les échanges au sein du système
informatique et dialogue avec l’utilisateur :
- Gestion du processeur :
le système d'exploitation est chargé de
gérer l'allocation du processeur entre
les différents programmes
grâce à un algorithme d'ordonnancement.
Le type d'ordonnanceur est totalement dépendant
du système d'exploitation, en fonction
de l'objectif visé.
-
Gestion de la mémoire vive : le système d'exploitation
est chargé de gérer l'espace mémoire alloué à chaque
application et, le cas échéant, à chaque
usager. En cas d'insuffisance de mémoire
physique, le système d'exploitation
peut créer une zone mémoire sur
le disque dur, appelée «mémoire
virtuelle». La mémoire virtuelle
permet de faire fonctionner des applications
nécessitant plus de mémoire qu'il
n'y a de mémoire
vive disponible sur le système. En contrepartie
cette mémoire
est beaucoup plus lente.
-
Gestion des entrées/sorties : le système d'exploitation
permet d'unifier et de contrôler l'accès des programmes
aux ressources matérielles :
lecteurs-enregistreurs de disques, imprimantes,
tables traçantes, écran,
clavier, souris, stylo optique, modem, hub, routeur,….
par l'intermédiaire des pilotes ou drivers (appelés également
gestionnaires de périphériques ou gestionnaires d'entrée/sortie).
-
Gestion de l'exécution des applications : le système
d'exploitation est chargé de la bonne exécution
des applications en leur affectant les ressources nécessaires à leur
bon fonctionnement. Il permet à ce
titre de «tuer» une application ne
répondant
plus correctement.
- Gestion des droits : le système d'exploitation est chargé de
la sécurité liée à l'exécution
des programmes en garantissant que les ressources
ne sont utilisées que par les programmes
et utilisateurs possédant les droits adéquats.
- Gestion
des fichiers : le système
d'exploitation gère la lecture
et l'écriture dans le système de
fichiers et les droits d'accès
aux fichiers par les utilisateurs et les applications.
Il range, met à jour,
modifie, supprime, renomme, copie les fichiers.
- Gestion
des informations : le système
d'exploitation fournit un certain nombre d'indicateurs
permettant de
diagnostiquer le
bon fonctionnement
de la
machine.
Il traite les erreurs d’utilisation, les erreurs de programmation, les
erreurs causées par la défaillance du matériel.
Composantes
d’un système d’exploitation
Le système d'exploitation est composé d'un ensemble de logiciels
permettant de gérer les interactions avec le matériel. Parmi
cet ensemble de logiciels on distingue généralement les éléments
suivants :
- Le noyau (en anglais kernel)
représentant les fonctions fondamentales
du système d'exploitation telles que la gestion de la mémoire,
des processus, des fichiers, des entrées-sorties principales, et des
fonctionnalités de communication.
- L'interpréteur de commande (en anglais shell, traduisez «coquille» par
opposition au noyau) permettant la communication avec le système d'exploitation
par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur
de piloter les périphériques en ignorant tout des caractéristiques
du matériel qu'il utilise, de la gestion des adresses physiques, etc.
- Le système de fichiers (en
anglais «file system», noté FS),
permettant d'enregistrer les fichiers dans une arborescence.
Propriétés des systèmes d’exploitation
1 - Systèmes multi-tâches
Un système d'exploitation est dit «multi-tâche» (en
anglais multithreaded) lorsque plusieurs «tâches» (également
appelées processus) peuvent être exécutées simultanément.
Les applications sont composées en séquence d'instructions que
l'on appelle «processus légers» (en anglais «threads»).
Ces threads seront tour à tour actifs, en attente, suspendus ou détruits,
suivant la priorité qui leur est associée ou bien exécutés
séquentiellement.
Il existe 3 grands types :
a) Les systèmes multi-tâches coopératifs
Les applications autorisent ou non d'autres applications à exécuter
des fonctions.
Le système n'intervient pas dans la répartition des ressources
et temps processeurs.
b) Les systèmes multi-tâches préemptifs
Le système gère tout. L'OS répartit le temps processeur
et les ressources à chaque application. Il possède un ordonnanceur
(aussi appelé planificateur), qui répartit, selon des critères
de priorité, le temps machine entre les différents processus
qui en font la demande.
c) Les systèmes à temps partagé
Un quota de temps est alloué à chaque processus par l'ordonnanceur.
C'est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs
utilisateurs d'utiliser simultanément sur une même machine des
applications différentes ou bien similaires : le système est
alors dit «système transactionnel». Pour ce faire, le système
alloue à chaque utilisateur une tranche de temps.
2 – Systèmes multi-processeurs
Le multiprocessing est une technique consistant à faire fonctionner
plusieurs processeurs en parallèle afin d'obtenir une puissance de calcul
plus importante que celle obtenue avec un processeur haut de gamme ou bien
afin d'augmenter la disponibilité du système (en cas
de panne d'un processeur).
On appelle SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor)
une architecture dans laquelle tous les processeurs accèdent à un
espace mémoire partagé.
Un système multiprocesseur doit donc être capable de gérer
le partage de la mémoire entre plusieurs processeurs mais également
de distribuer la charge de travail.
3 – Les systèmes embarqués
Les systèmes embarqués sont des systèmes d'exploitation
prévus pour fonctionner sur des machines de petite taille, telles que
des PDA (personal digital assistants ou en français assistants numériques
personnels) ou des appareils électroniques autonomes (sondes spatiales,
robot, ordinateur de bord de véhicule, etc.), possédant une autonomie
réduite. Ainsi, une caractéristique essentielle des systèmes
embarqués est leur gestion avancée de l'énergie et leur
capacité à fonctionner avec des ressources limitées.
Les principaux systèmes embarqués «grand public» pour
assistants numériques personnels sont :
- PalmOS
- Windows CE / Windows Mobile / Window Smartphone
4 – Les systèmes en temps réel
Les systèmes temps réel (real time systems), essentiellement
utilisés dans l'industrie, sont des systèmes dont l'objectif
est de fonctionner dans un environnement contraint temporellement. Un système
temps réel doit ainsi fonctionner de manière fiable selon des
contraintes temporelles spécifiques, c'est-à-dire qu'il doit être
capable de délivrer un traitement correct des informations reçues à des
intervalles de temps bien définis (réguliers ou non).
Voici quelques exemples de systèmes d'exploitation temps réel
:
- Mac OS-10 ;
- RealTime Linux ;
Evolution des types de systèmes
d’exploitation
On distingue plusieurs types de systèmes d'exploitation, selon qu'ils
sont capables de gérer simultanément des informations d'une longueur
de 16 bits, 32 bits, 64 bits ou plus.
Au début, dans les années 1950, ils s’appelaient DOS(Disk
Operating system) ou SED (système d’exploitation de disquettes
car le système était livré sur des disquettes –systèmes
dites disquettes maîtres.
L’évolution de la technologie a entraîné une complexité de
plus en plus grande dans l’utilisation ordinateurs, il était donc
nécessaire que les systèmes d’exploitation connaissent
un développement parallèle d’une génération à l’autre.
-
1ère
génération : le programme est enregistré en
mémoire centrale grâce à un programme appelé « chargeur ».
le traitement des travaux s’effectue en séquentiel dans le temps.
- 2ème génération :
On peut conduire simultanément
calcul et opérations d’entrée/sortie mais cette simultanéité n’est
possible qu’à l’intérieur d’un même programme
car le traitement des travaux demeure séquentiel.
- 3ème génération :
plusieurs programmes peuvent résider
simultanément en mémoire centrale. Un seul utilisant le processeur,
les autres peuvent traiter des entrées-sorties : c’est de la « multiprogrammation ».
- 4ème génération :
système conversationnel, mémoire
virtuelle,…
Système |
Codage |
processeur |
Mono-utilisateur |
Multi-utilisateur |
Mono-t âche |
Multi-tâche |
CP /M |
|
Zilog Z80 |
* |
|
* |
|
|
16 bits |
Intel 8086,8088 |
* |
|
* |
|
PROLOGUE
1975 |
|
Intel 8086,8088 |
|
* |
* |
|
OS/2 |
|
Intel 80286,80386 |
|
|
|
|
AppleDOS
1976 |
|
Maxwell 6502 |
* |
|
* |
|
MacOS
1984 |
|
Motorola 68000 |
* |
|
* |
|
Windows3.1 1990 |
16/32 bits |
Intel
80286,80386 |
* |
|
|
non préemptif |
Windows95/98/Me |
32 bits |
Intel 80486 |
|
* |
|
coopératif |
WindowsNT/2000 |
32 bits |
Intel Pentium |
|
* |
|
préemptif |
WindowsXP |
32/64 bits |
Intel Pentium |
|
* |
|
préemptif |
Unix 1969/ Linux1991 |
32/64 bits |
Multi-plateformes |
|
* |
|
préemptif |
MAC/OS X |
32 bits |
PowerPC d’IBM
et de Motorola |
|
* |
|
préemptif |
MACOS10.6 |
32 bits |
Intel Core Duo |
|
* |
|
préemptif |
Windows Vista 2007 |
|
Intel Pentium |
|
* |
|
préemptif |
|