Vous êtes sur la page 1sur 46

ENP dOran

Dpartement de Mathmatiques et Informatique


Option: Ingnierie et Management des Systmes
dInformation (IMSI)

Intitul de la matire: Programmation Systme

Introduction aux Systmes


dExploitation

Mme Nawel BENDIMERAD

Anne universitaire 2017/2018


1
Introduction
Un ordinateur est form dune partie matrielle et dune partie
logicielle.
Cette dernire comporte des logiciels qui sont classs en deux
catgories :
les programmes d'application des utilisateurs
les programmes systme qui permettent le fonctionnement de
l'ordinateur. Parmi ceux-ci, le systme d'exploitation (SE).
Pour quun ordinateur soit capable de faire fonctionner un
programme informatique, la machine doit tre en mesure
deffectuer un certain nombre doprations prparatoires afin
dassurer les changes entre le processeur, la mmoire et les
ressources physiques (priphriques).

2
Pourquoi utiliser un SE?
Partager une seule machine
Supporter plusieurs processus (Mme avec peu de processeurs,
sans conflit de ressources, sans famine, etc)
Supporter plusieurs utilisateurs (sans famine, avec
ventuellement des privilges)
Grer les erreurs proprement (Signaler aux programmes les
erreurs matrielles, ragir en cas d'erreur logicielle (corriger),
etc).
Fournir des statistiques d'utilisation et de fonctionnement
Remarque: Connatre le fonctionnement dun SE permet de mieux
exploiter les machines.

3
Dfinition dun SE
Un Systme dexploitation (not SE ou OS, abrviation du terme
anglais Operating System) est le logiciel de base qui permet
lutilisation dun ordinateur.
Un SE peut tre vu comme un ensemble de programmes qui
remplissent deux grandes fonctions:
Machine virtuelle.
Masquer les lments fastidieux du matriel pour fournir une interface
simple utiliser (Abstraction des priphriques).
Permettre plusieurs programmes de fonctionner en mme temps,
chaque programme ayant sa propre machine virtuelle.
Gestionnaire de ressources.
Ordonnancer et contrler lallocation des ressources (Processeur,
mmoire, priphriques, etc.)
Amliorer l'efficacit du systme 4
Contextes possibles dutilisation dun SE

Un contexte de dveloppement de programmes : le systme est


utilis par des dveloppeurs pour programmer et mettre au point
de nouvelles applications dans un contexte mtier particulier :
calcul scientifique, gestion, multimdia, tlphonie, etc

Un contexte dexploitation : le systme est utilis comme


support dexcution dun ensemble dapplications ddies :
bureautique, transactions bancaires, contrle dun racteur,
acquisition dimages satellitaires, vido la demande, etc.

5
Historique des systmes dexploitation (1)

1re Gnration (1945-1955): les tubes vide et les cartes perfores

Les machines taient normes, coteuses, trs peu fiables et beaucoup


moins rapides
Systmes dexploitation inexistants
Les programmes taient crits directement en langage machine
Au dbut de 1950, la procdure sest amliore grce lintroduction
de cartes perfores.

6
Historique des systmes dexploitation (2)
2me Gnration(1955-1965): les transistors et le traitement par lot
Les ordinateurs sont devenus plus fiable grce lapparition des
transistors
Les machines taient dotes dunits de bandes magntiques.
Commercialisation des ordinateurs des utilisateurs (grandes
compagnies, universits, ).
Les utilisations principales taient le calcul scientifique et
lingnierie (quations diffrentielles)
Apparition des langages Fortran et assembleur

7
Historique des systmes dexploitation (3)
3me Gnration(1965-1980): les circuits intgrs et la
multiprogrammation
Amlioration des cots et des performances (circuits intgrs)
Larrive sur le march des units de disques, qui offrent laccs
alatoire et des capacits de stockage importantes
Apparition du spool (spool, Simultaneous Peripheral Operation On
Line) pour le transfert des travaux des cartes vers le disques)
Apparition aussi de la multiprogrammation (partitionnement de la
mmoire pour des tches diffrentes et partage du processeur)

8
Historique des systmes dexploitation (4)
4me Gnration (1980-1990): les ordinateurs personnels
Dveloppement des circuits LSI (Large Scale Integration)
contenant des centaines de transistors au cm2
Il existait deux principaux systmes dexploitation : MS-DOS
(Microsoft) et UNIX.
Apparition des rseaux dordinateurs individuels qui fonctionnent
sous des systmes dexploitation en rseau ou des systmes
dexploitation distribus

9
Historique des systmes dexploitation (5)
5me Gnration (1990-????): les ordinateurs personnels portables
et de poche
Apparition des PIC (Personal Intelligent Communicator) et des
PDA (Personal Digital Assistant), grce lintgration des
composants et larrive des systmes dexploitation de type
micro-noyau utiles pour les systmes de gestion des information
Les systmes dexploitation de type micro-noyau sont
modulaires (un module par fonction);ils peuvent tre raliss avec
plus ou moins de modules et donc adaptables des trs petites
machines (PDA et PIC)

10
Exemples de systmes dexploitation
Parmi les systmes dexploitation les plus connus, nous pouvons
citer :
MS-DOS, Windows (Microsoft)
Unix (AIX, Xenix, Ultrix, Solaris, etc.)
Linux (Open Source)
Linux
MacOS (Apple)
PalmOS, VxWorks, Androd, Symbian (SE embarqus)

MACOS
11
Classes de systmes dexploitation
Mono-tche (DOS) : A tout instant, un seul programme est excut;
un autre programme ne dmarrera, sauf conditions exceptionnelles,
que lorsque le premier sera termin.
Multi-tches (Windows, Linux) : plusieurs processus peuvent
sexcuter simultanment (systmes multiprocesseurs) ou en quasi-
paralllisme (systmes temps partag).
Mono-utilisateur (Windows 98,2000) : au plus un utilisateur la fois
sur une machine. Les systmes rseaux permettent de diffrencier
plusieurs utilisateurs, mais chacun deux utilise de manire exclusive
la machine.
Multi-utilisateurs (Windows XP, Linux) : Plusieurs utilisateurs
peuvent travailler simultanment sur la mme machine.
Multi-processeurs: Ces systmes sont composs de plusieurs
processeurs relis au bus de lordinateur. Ils se caractrisent par leur
capacit de traitement et leur fiabilit : la panne dun processeur12
narrtera pas le systme
SE mono-tche / mono-utilisateur

Temps de calcul squentiel


13
SE multi-tches / mono-utilisateur

Temps de calcul partag


14
SE multi-processeurs

15
SE multi-utilisateurs / mono-processeur

16
SE multi-utilisateurs / multi-processeurs

17
Systmes temps rel
Ce sont des systmes spcialiss dans la conduite
dappareillage industriel ou dans la commande de processus o
le temps joue un rle critique (des contraintes temporelles
strictes ou souples respecter).
Pour garantir le respect de limites ou contraintes temporelles,
il est ncessaire que :
les diffrents services et algorithmes utiliss sexcutent en temps
born. Un systme dexploitation temps rel doit ainsi tre conu de
manire ce que les services quil propose (accs hardware, etc.)
rpondent en un temps born ;
les diffrents enchanements possibles des traitements garantissent que
chacun de ceux-ci ne dpassent pas leurs limites temporelles.

18
Types de systmes temps rel
On distingue deux types de systmes " temps rel " :
le temps rel strict (hard real-time) : il ne tolre aucun
dpassement de ses contraintes, ce qui est souvent le cas
lorsque de tels dpassements peuvent conduire des situations
critiques, voire catastrophiques : pilote automatique davion,
systme de surveillance de centrale nuclaire, etc. ;
le temps rel souple (soft real-time) : linverse, le temps rel
souple saccommode de dpassements des contraintes
temporelles dans certaines limites au-del desquelles le
systme devient inutilisable : visioconfrence, jeux en rseau,
etc.

19
Notions de bases
Fonctions dun SE (1)
Le SE se prsente comme une couche logicielle place entre la
machine matrielle et les applications.
Il sinterface avec la couche matrielle par le biais du
mcanisme des interruptions.
Il sinterface avec les applications par le biais des primitives
quil offre : appels systme et commandes.
Un SE doit assurer plusieurs fonctions telles que la gestion du
processeur, de la mmoire, des entres/sorties, de la concurrence,
des objets externes et de la protection.

20
Fonctions dun SE (2)
Gestion du processeur
Le systme doit grer lallocation du processeur aux diffrents
programmes pouvant sexcuter.
Cette allocation se fait par le biais dun algorithme
dordonnancement qui planifie lexcution des programmes.
Selon le type de systme dexploitation, lalgorithme
dordonnancement rpond des objectifs diffrents
Le SE utilise un allocateur ( dispatcher ) responsable de la
rpartition du temps processeur entre les diffrents processus,
et un planificateur ( scheduler ) dterminant les processus
activer, en fonction du contexte.

21
Fonctions dun SE (3)
Gestion de la mmoire
Le systme doit grer lallocation de la mmoire centrale entre
les diffrents programmes pouvant sexcuter.
Comme la mmoire physique est parfois trop petite pour
contenir la totalit des programmes, la gestion de la mmoire
se fait selon le principe de la mmoire virtuelle : un instant
donn, seules sont charges en mmoire centrale, les parties de
code et donnes utiles lexcution

22
Fonctions dun SE (4)
Gestion des entres/sorties
Le systme doit grer laccs aux priphriques, cest--dire
faire la liaison entre les appels de haut niveau des programmes
utilisateurs et les oprations de bas niveau de lunit dchange
responsable du priphrique (unit dchange clavier) : cest le
pilote dentres/ sorties (driver) qui assure cette
correspondance.

23
Fonctions dun SE (5)
Gestion de la concurrence
Comme plusieurs programmes coexistent en mmoire centrale,
ceux-ci peuvent vouloir communiquer pour changer des
donnes. Par ailleurs, il faut synchroniser laccs aux donnes
partages afin de maintenir leur cohrence.
Le systme offre des outils de communication et de
synchronisation entre programmes

24
Fonctions dun SE (6)
Gestion des objets externes
La mmoire centrale est une mmoire volatile. Aussi, toutes les
donnes devant tre conserves au-del de larrt de la machine,
doivent tre stockes sur une mmoire de masse ( disque dur,
CD-ROM, etc).
La gestion de lallocation des mmoires de masse ainsi que
laccs aux donnes stockes sappuient sur la notion de
fichiers et de systme de gestion de fichiers (SGF).

25
Fonctions dun SE (7)

Gestion de la protection
Le systme doit fournir des mcanismes garantissant que ses
ressources (CPU, mmoire, fichiers) ne peuvent tre utilises
que par les programmes auxquels les droits ncessaires ont t
accords.
Il faut notamment protger le systme et la machine des
programmes utilisateurs (mode dexcution utilisateur et
superviseur)

26
Fonctions dun SE (8)
Exemples de protections
Certaines rgions ne doivent pas tre vu par les utilisateurs
tables d'authentifications
zones d'autres utilisateurs
Entres/Sorties
Toutes les instructions E/S sont privilgies
Elles passent toutes par le noyau
La mmoire
Gestion de la mmoire au niveau matriel
Temps processeur
viter les boucles infinies
-> redonner le contrle au SE rgulirement.
27
Modes dexcution et appels systme (1)
Le systme dexploitation fourni un ensemble de services aux
utilisateurs et leurs applications. Ces services peuvent tre appels
soit par des appels systmes, soit par des commandes.
Linterprteur de commande (shell sous Unix) est le mode
fondamental de contrle dun systme dexploitation : lutilisateur
entre ses commandes au clavier, qui sont ensuite transmises au
programme (linterprteur) qui excute en mode interactif les
instructions.
En gnral, les processeurs ont deux modes de fonctionnement, le
mode superviseur et le mode utilisateur.
Ces modes de fonctionnement assurent la protection du systme
dexploitation contre les intrusions et les erreurs.

28
Modes dexcution et appels systme (2)
Le mode superviseur est le mode dexcution du systme
dexploitation. Cest un mode privilgi et protg.
Le mode utilisateur est le mode dexcution de tout programme
utilisateur, y compris linterprteur de commande. Ce mode est
restrictif : des instructions machine sont interdites, et spcialement
les instructions permettant la manipulation des interruptions.
Lorsquun programme utilisateur a besoin dun appel systme (par
exemple une entre/sortie sur disque pour la lecture ou lcriture
dun fichier), il doit quitter son mode courant dexcution
(utilisateur) pour passer en mode superviseur, et excuter la routine
systme, le code du systme dexploitation.
Il y a alors commutation de contexte : le systme dexploitation
sauvegarde ltat du processus, pour charger son propre code.
Une fois lappel systme effectu, le contexte du processus appel
est restaur, pour continuer son excution normale. 29
Le gestionnaire d'interruptions (1)
Les interruptions sont des signaux envoys par le matriel,
destination du logiciel, pour signaler un vnement.
Procdure d'interruption
Sauvegarde du contexte d'excution du programme en cours.
Lire l'emplacement du programme destin grer cet
vnement (table d'association prtablie)
Excution de la routine
Restauration du contexte
Reprise du programme

30
Le gestionnaire d'interruptions (2)

Exemple d'interruption
Le gestionnaire d'interruptions prpare le
Prog. E/S et le lance
Il recharge le Prog. utilisateur qui s'excute
en mme temps que les E/S : pas d'attente
la fin du module d'E/S le gestionnaire
d'interruption reprend la main pour examiner
son tat
Le Prog. utilisateur reprend son cours

31
Le gestionnaire d'interruptions (3)
Diffrentes classes d'interruption
Les E/S
Retourne l'tat du module d'E/S : normal ou erreur
Les exceptions
Dbordements, instructions illgales, rfrence hors espace
utilisateur
Timers
Tick horloge
Suspend un programme pour effectuer des tches annexes
Dfauts matriels

32
Diffrence interruption/exception
Une interruption est provoque par un signal provenant du
monde extrieur au processeur, et modifiant le comportement
de celui-ci.
Une exception est un signal provoqu par un
dysfonctionnement du programme en cours d'excution
Chaque interruption ou exception dispose d'un sous-
programme (handler) qui prend en charge l'vnement
correspondant : table de vecteurs d'interruption ou IDT :
Interrupt Descriptor Table dans le langage Linux.

33
Structure d'un SE (1)
Il existe plusieurs possibilits de conception pour un SE:
En couches
noyau
Monolithique
Microkernel
Hybride
Exokernel

Le noyau est gnralement excut dans un espace mmoire spar


de lespace des applications: espace noyau. Par opposition
lespace utilisateur. Le passage entre ces deux espaces se fait via
des appels systmes. Lintrt de cette sparation est que le
systme ne se plante pas si une application se plante.
Structure d'un SE (2)
En couches
Structuration hirarchique bien dfinie
Une couche ne fait appel qu'aux services de la couche
directement infrieure
L'intrieur de chaque niveau est masqu par rapport aux autres.
Bonne thorie gnrale, extensible
Trs peu efficace, trop d'intermdiaires (Un appel systme
transmis de couche en couche avant d'tre trait peut ralentir
son traitement)
Traverse des couches contraignantes
pour les performances
Exemple : THE (Technische Hogeschool
Eindhoven) de Dijkstra (1968)
Structure d'un SE (3)
noyau
Structuration deux niveaux :
Mode noyau (Kernel Mode)
Mode utilisateur (User Mode)
Les applications en mode utilisateurs doivent demander des
services au noyau travers des appels systme
Structure d'un SE (4)
noyau : Monolithique
Le terme monolithique dsigne un seul niveau,
Les SE monolithiques intgrent une grande quantit de
fonctionnalits dans le noyau,
Efficaces l'excution.
Gchis de mmoire (tout est charg)
Exemple : MS-DOS, les premires versions dUNIX
Structure d'un SE (5)
Exemple de noyau monolithique

Les systmes dexploitation sous une structure monolithique


sont un ensemble de procdures:
une procdure principale qui appelle la procdure de
service requise,
des procdures de service qui excutent les appels
systme et
un ensemble de procdures utilitaires qui assistent les
procdures de service, par exemple la recherche de donnes
des programmes utilisateur.

38
Structure monolithique

(1) Appel Systme (mode utilisateur -> mode kernel).


(2) Vrification des paramtres.
(3) Appel de la procdure de service.
(4)Appel utilitaires par la procdure de service et puis retourner au
mode utilisateur. 39
Structure d'un SE (6)
noyau : Micronoyau
Noyau rduit au stricte ncessaire (microkernel)
Ensemble de petits modules bien dfinis dont un seul (le
micronoyau) fonctionne en mode noyau.
Gre principalement l'ordonnancement et les transferts de
messages entre les programmes
Les drivers et les applications s'excutent en mode utilisateur
Systme client-serveur
Portable et facilement maintenable
Exemples : Minix
Comparaison entre noyau monolithique et
micronoyau

41
Structure d'un SE (7)
noyau : Hybride
Compromis entre le kernel monolithique et le microkernel
Les drivers s'excutent en mode noyau
Exemple : Windows
Structure d'un SE (8)
noyau : Exonoyau
Exokernel est un petit noyau grant gnralement des
machines virtuelles excutes en mode utilisateur
Les ressources sont alloues aux machines virtuelles par
l'exokernel
Un SE de SE en quelque sorte
Le modle client/serveur
Le systme dexploitation est compos dun noyau et dun
ensemble de serveurs.
Le noyau gre la communication entre les clients et les serveurs.
Les clients sont les demandeurs de services. Par exemple, pour
demander un service, comme la lecture dun bloc dun fichier, un
processus utilisateur (aussi appel processus client) envoie une
requte un processus serveur qui effectue le travail et renvoie
une rponse.
Les serveurs sexcutent en mode utilisateur. Ils ne peuvent
donc pas accder directement au matriel. Par consquent, une
erreur dans le serveur de fichiers, par exemple, naffectera pas, en
gnral, lensemble de la machine. Les dgts se limitent au
serveur.
44
Machines virtuelles
Le cur du systme se charge de la multiprogrammation en
fournissant la couche au dessus plusieurs machines virtuelles.
Des systmes dexploitation diffrents peuvent tourner au dessus
dune machine virtuelle.
Exemples de machines virtuelles :
IBM VM: offre chaque usager sa propre machine virtuelle
monotche. Les machines virtuelles taient planifies avec du
temps partag.
Java : les programmes compils en Java tournent sur une
machine virtuelle (JVM).
VMWare : sur PC, excute en mme temps des sessions
Windows, Linux, OS/2, etc.
Nachos : SE qui sexcute dans une machine virtuelle qui
tourne sur Unix.
45
Avantages des machines virtuelles
Plusieurs machines virtuelles sont obtenues partir dune seule
machine physique:
Utilisation plus efficace du matriel.
Utile des fins dexprimentation:
Un nouveau SE ou une nouvelle application peuvent tre
dvelopps sur une machine virtuelle sans affecter les autres.
Protection complte, car les machines virtuelles sont isoles les
unes des autres.

46

Vous aimerez peut-être aussi