Documente Academic
Documente Profesional
Documente Cultură
Introduction
systme dexploitation est un programme qui doit permettre aux utilisateurs dutiliser les fonctionnalits dun ordinateur. Mais il doit aussi aider le programmeur dvelopper des logiciels de la faon la plus efcace possible. Un systme dexploitation est mis en route ds quon met en marche lordinateur. Dans les grosses machines, il est toujours en excution. Le systme constitue donc une interface entre lutilisateur et la machine physique.
N
2
utilisateur 1 utilisateur 2 utilisateur 3
CHAPITRE 1. INTRODUCTION
...
utilisateur n
compilateur
assembleur
diteur texte
...
Base de donnes
programmes dapplication
Systme dexploitation
Ordinateur matriel
Les fonctions dun systme dexploitation Les systmes dexploitation modernes sont constitus de centaines de milliers, voire de millions de lignes de code et requirent une grande quantit dhomme-annes de travail. Ils ont comme fonctions principales : Chargement et lancement des programmes Gestion des processeurs, de la mmoire, des priphriques Gestion des processus (programmes en cours dexcution) et des chiers Protection contre les erreurs et la dtection des erreurs, etc.
Il y a plusieurs types de systmes dexploitation actuellement : MS-DOS, Windows OS/2, Mac-OS Unix (AIX, Xenix, Ultrix, Solaris, etc.) Linux Il y a aussi des systmes dexploitation ducatifs, comme Minix 1 cre par Andrew S. Tanembaum ou des simulateurs de systmes dexploitation comme Nachos2 .
CHAPITRE 1. INTRODUCTION
Charger en mmoire un programme spcial (lanctre des systmes dexploitation) qui lit puis excute, lun la suite de lautre, les programmes de la bande. Les rsultats sont rcuprs sur une autre bande, la n de lexcution de tout le lot. Imprimer les rsultats. Ce mode dexploitation ncessitait deux machines dont la plus puissante tait rserve aux calculs et lautre, moins chre, soccupait des priphriques lents. Le problme est que le processeur restait inutilis pendant les
Lot de travaux Mmoire centrale
Un seul travail Compilateur Moniteur denchanement de travaux Gestionnaire des entres/sorties
Lot de rsultats
F IG . 1.2 Traitement par lots et organisation de la mmoire. oprations dentre et sortie (E/S), comme on le voit sur la gure 1.3. Le temps dattente des rsultats tait trop long et en plus il ny avait pas dinteraction avec lutilisateur.
priphrique processeur
temps
Multiprogrammation et traitement par lots : 1965-1980 Lintroduction des circuits intgrs dans la construction des machines a permis doffrir un meilleur rapport cot/performance. Larrive sur le march des units de disques, qui offrent laccs alatoire et des capacits de
stockage importantes, a contribu une srie de dveloppements des systmes, notamment la possibilit de transfrer les travaux vers le disque ds leur arrive dans la salle machine. Cette technique sappelle le spool (Simultaneous Peripheral Operation On Line ) et est galement utilise pour les sorties. Cette notion de spooling ou traitement par lots subsiste dans les systmes dexploitation modernes. Tous les travaux rsidants sur le disque en attente dexcution sont conservs dans le pool des travaux en entre. La mmoire est organise en un ensemble de partitions (gure 1.4). Chaque partition peut contenir au plus un travail. Le systme dexploitation rside aussi dans une partition. Sil y a une partition libre et des travaux dans le pool dentre, le systme
SE
F IG . 1.4 Partitions de mmoire. dexploitation choisit un travail puis lance son chargement en mmoire. Il conserve en mmoire plusieurs travaux et gre le partage du processeur entre les diffrents travaux chargs en mmoire (la multiprogrammation). Le processeur est allou un travail jusqu ce quil demande une E/S (premier arriv, premier servi). Lorsquun travail demande une E/S (en attente de la n dune E/S), le processeur est allou un autre travail en mmoire (le suivant). A la n dune E/S, une interruption se produit et le systme dexploitation reprend le contrle pour traiter linterruption et lancer ou poursuivre lexcution dun travail. Ds quun travail se termine, le systme dexploitation peut lancer le chargement, partir du disque, dun nouveau travail dans la partition qui vient de se librer. Supposons trois travaux A, B et C. Dans un systme multiprogramm, trois activits peuvent tre donc menes en parallle : 1. Le chargement du travail C en mmoire, 2. Lexcution du travail B et 3. Ldition des rsultats
CHAPITRE 1. INTRODUCTION
du travail A. La multiprogrammation ncessite des circuits de contrle pour protger chaque travail contre les intrusions et les erreurs des autres. Les ordinateurs de cette poque possdaient ces circuits. Exemple 1. Considrons les travaux A, B et C en mmoire, qui sont montrs sur la gure 1.5. Lexcution de A est entame en premier puis lorsquil
priphrique
A A B C A B,C
A B C
A C
B A C B,C B C C
processeur
B
temps
F IG . 1.5 Commutation du processeur. demande une Entre/Sortie (E/S), le processeur commute sur B. A la n de lE/S demande par A, le processeur suspend lexcution de B pour commuter sur A. On suppose quA est prioritaire. Aprs un certain temps de calcul, A demande de nouveau une E/S ; ce qui provoque la commutation du processeur sur B. Durant lexcution de lE/S de A, le travail B demande une E/S. Il se met donc en attente car le priphrique est occup. Le processeur commute alors sur le travail C. Lorsque lexcution de lE/S demande par A sest termine, le processeur commute sur A et le traitement de la demande dE/S du travail B est entam par le priphrique dE/S. Multiprogrammation et partage de temps : 1965-1980 Le dsir dun temps de rponse plus rapide et dinteractivit de lexploitation a introduit la technique de partage de temps (systmes temps partag ou multi-utilisateurs) : plusieurs utilisateurs peuvent se connecter la machine par lintermdiaire de leurs terminaux et travailler en mme temps.
Le processeur est allou, tour de rle, pendant un certain temps chacun des travaux en attente dexcution. Au bout de ce temps, mme si le travail en cours ne sest pas termin, son excution est suspendue. Le processeur est allou un autre travail. Si plusieurs utilisateurs lancent partir de leurs terminaux leurs programmes simultanment, ce mode dexploitation donne limpression que les programmes sexcutent en parallle. Le cas de trois travaux A, B et C est montr sur la gure 1.6. Les temps de rponse pour chaque utilisateur sont acceptables.
CPU CPU
B,C A,C
A,B
B,C A,C
B
temps
Systmes dexploitation dordinateurs personnels Ces systmes dexploitation mono-utilisateur ne mettaient pas laccent sur lusage du processeur, ni sur la protection. Leur but tait de fournir une interface conviviale et une rapidit de raction. Ensuite, les fonctionnalits des gros systmes ont t peu peu transfres vers les microordinateurs.
Exploitation en rseau Les rseaux dordinateurs personnels qui fonctionnent sous des systmes dexploitation en rseau permettent de se connecter sur une machine distante et de transfrer des chiers dune machine une autre. Ces systmes dexploitation requirent une interface rseau, un logiciel de contrle de bas niveau, ainsi que des programmes qui permettent une connexion distante et un accs aux chiers qui se trouvent sur les diffrentes machines.
8 Exploitation en distribu
CHAPITRE 1. INTRODUCTION
Les rseaux dordinateurs qui fonctionnent sous des systmes dexploitation distribus apparaissent aux yeux des utilisateurs comme une machine monoprocesseur, mme lorsque ce nest pas le cas. Le systme dexploitation distribu gre et contrle lensemble des composants de tous les ordinateurs connects (les processeurs, les mmoires, les disques, etc.). Systmes multiprocesseurs Ces systmes sont composs de plusieurs processeurs relis au bus de lordinateur. Ils se caractrisent par leur capacit de traitement et leur abilit : la panne dun processeur narrtera pas le systme Systme dexploitation 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).
graphique a t rendue populaire par le Macintosh de Apple. Elle est maintenant propose pour la plupart des machines.
10 Appel systme fork waitpid wait execve exit open close read write Iseek stat mkdir rmdir link unlink mount umount chdir chmod kill time
CHAPITRE 1. INTRODUCTION
Description Crer un processus Attendre la terminaison dun processus Excuter un autre programme Terminer lexcution Crer ou ouvrir un chier Fermer un chier Lecture de donnes criture de donnes Pointeur dans un chier Obtenir ltat des attributs Crer un rpertoire liminer un rpertoire Liens vers un chier liminer un chier Monter un systme de chiers Dmonter un systme de chiers Changer de rpertoire Changer les permissions daccs Signaux Obtenir le temps
TAB . 1.1 Quelques appels systme Posix. des processus et des processus lgers dans le Chapitre ??). Les processus lgers sont un moyen de rafner et de diviser le travail normalement associ un processus. Lorsquon lance une application, le processus qui est cr par le systme dexploitation excute les instructions du programme en mode utilisateur. certains moments, on fait des appels systme qui requirent lexcution dinstructions (et laccs des donnes) qui appartiennent au systme dexploitation. Pour ce faire, le mme processus passe alors au mode superviseur. Il est noter quil sagit bien du mme processus, mme sil excute des instructions du systme dexploitation. On peut considrer que des routines du systme dexploitation sont excutes au nom du processsus en question. La gure 1.7 illustre ce principe. La gure 1.8 illustre de manire plus dtaille ce qui se produit typiquement lors dun appel systme. Dans cet exemple, une application ex-
11
Mode superviseur
F IG . 1.7 Alternance de modes dexcution dun processus cute fork(). Il sagit ici dune fonction dune librairie qui a t compile avec lapplication. Cette fonction prpare le terrain pour excuter le vritable appel systme, cest--dire une instruction assembleur TRAP qui prend comme paramtre un pointeur dont la valeur est ici indique par SYS_FORK. Essentiellement, cette instruction met dabord le processeur en mode superviseur, puis cherche dans une table (qui a t cr lors du chargement du systme dexploitation), la position indique par SYS_FORK, ladresse de la routine qui doit tre excute. Puis le compteur ordinal se positionne cette adresse et continue lexcution du processus, cette fois-ci avec des instructions qui appartiennent au systme dexploitation. Lorsque le service demand est termin, on revient lapplication, tout en rtablissant le mode utilisateur.
12
Application
CHAPITRE 1. INTRODUCTION
... fork(); ... fork() { ... // mise a jour des registres trap SYS_FORK; ... } sys_fork() { ... return;
sys_fork()
Librairie NOYAU
F IG . 1.8 tapes dun appel systme liste des rpertoires traverser pour accder au chier. Un chemin daccs est absolu si le point de dpart est le rpertoire racine. Un chemin daccs est relatif si le point de dpart est le rpertoire courant. Les appels systme permettent de crer les chiers et les rpertoires, ainsi que de les supprimer, de les ouvrir, de les lire et de les modier.
13
Systme de fichiers
Mmoire Kernel
E/S
Allocation de ressources
F IG . 1.9 Structure en couches. cution. Au troisime niveau, on a le module de gestion des entres/sorties qui se charge de grer tous les priphriques (clavier, cran, disques, imprimantes, etc.). Au quatrime niveau, on trouve le gestionnaire de chiers qui se charge de la gestion de lespace du disque, de la manipulation des chiers tout en assurant lintgrit des donnes, la protection des chiers, etc. Au cinquime niveau, on a le module dallocation de ressources qui se charge dassurer une bonne utilisation des ressources ; de comptabiliser et de fournir des statistiques sur lexploitation des ressources principales ; de crer de nouveaux processus et leur attribuer un niveau de priorit : de permettre chaque processus existant dans le systme dobtenir les ressources ncessaires dans des limites de temps raisonnables ; dexclure mutuellement les processus qui demandent une ressource non partageable et dviter les situations de blocage.
14
CHAPITRE 1. INTRODUCTION
procdures utilitaires qui assistent les procdures de service, par exemple la recherche de donnes des programmes utilisateur. Unix et Linux sont des
Utilisateur Prog. 1 Utilisateur Prog. n
Programmes Utilisateur
Mode Utilisateur
1 2 Kernel
Service procdures
F IG . 1.10 Structure monolithique. (1) Appel systme (Mode utilisateur Mode kernel). (2) Vrication de paramtres. (3) Appel de la procdure de service. (4) Procdure de service appel utilitaires, et puis retourner au mode utilisateur.
1.5.3 Micro-kernel
Une architecture plus moderne que celle monolitique est larchitecture micro-kernel (voir la gure 1.11) utilise en MACH 5 / HURD6 , Minix et NT. Lattribut principal qui distingue les micro-kernels des kernels monolitiques est limplantation de leurs architectures respectives en mode superviseur (kernel mode ) et en mode usager (user mode ). Larchitecture monolitique met en uvre tous les services du Systme dexploitation (controleurs de dispositifs, mmoire virtuelle, systme de chiers, rseaux, etc) dans le domaine du mode superviseur de lUCT. Par contre, larchitecture micro-kernel fait une division entre les services du Systme dexploitation, en les divisant en haut-niveau implants dans le domaine de lutilisateur et bas-niveau implants dans lespace du mode superviseur.
5 6
15
Processus systme
Mode Kernel
Micro Kernel
16
CHAPITRE 1. INTRODUCTION
VMWare7 : sur PC, excute en mme temps des sessions Windows, Linux, OS/2, etc. Nachos : SE qui sexcute dans une machine virtuelle MIPS, qui tourne sur Unix.
http ://www.vmware.com
17
Sugestions de lecture
Rfrence : Silverwschatz A., Galvin P., Gagn G., Applied Operating System Concepts, Wiley, 2003. Chaptre 1 Section 1.1 What is an operating system ? Section 1.2 Batch systems : une attention particulire au concept de multiprogrammation. Section 1.3 Time-Sharing systems : Bien saisir la diffrence entre multiprogrammation et temps partag. Bien saisir la complexit des systmes temps partag. Chaptre 2 Section 2.1 Computer-System Operation. Section 2.2 I/O Structure : Le concept dinterruption est trs important. En ce qui concerne le DMA, il est bon de savoir ce que cest. Section 2.5 Hardware protection : Important, avec une attention toute particulire aux modes utilisateur et superviseur. Section 2.6 General system architecture : Le concept dappel systme est trs important. Chaptre 3 Section 3.1 Systems components : Bien comprendre le concept de processus. Section 3.3 System Calls : Trs important.
18
CHAPITRE 1. INTRODUCTION
1.6 Exercices
1. Indiquez si les lments logiciels suivants se situent parmi la catgorie des programmes dapplication, des programmes systme, ou des programmes de systmes dexploitation. (a) Le programme more (b) Lditeur de texte emacs (c) La librairie de routines X-Window (Xlib) (d) Un script de shell (e) Le traitement de texte Ms-word (f) La fonction read 2. Lordinateur personnel compatible IBM fournit une interface aux priphriques en utilisant des routines du BIOS (Basic Input and Output System) qui est stocke en mmoire morte (ROM). Quel avantage cette interface fournit-elle aux dveloppeurs dapplications pour la plate-forme Intel 80x86 ? 3. Dans un environnement multiprogramm, y-a-t-il partage des ressources entre les processus dun mme utilisateur ? Expliquez. 4. Le degr de multiprogrammation reprsente le nombre maximal de processus quun systme uniprocesseur peut manipuler tout moment. Expliquez quelques facteurs matriels et logiciels qui pourraient avoir une certaine inuence sur le degr de multiprogrammation dun systme. 5. Dcrivez le facteur principal qui sert de mesure du temps de rponse pour un systme soumission de lots et pour un systme en temps partag. 6. Expliquez la diffrence fondamentale qui existe entre un systme dexploitation multiprogramm et un systme dexploitation rseau. 7. Une fentre (window ) reprsente un certain niveau dabstraction de lcran car les applications interagissent avec celle-ci et non pas directement lcran. Dcrivez trois prototypes de fonctions quune application pourrait utiliser pour interagir avec une fentre dcran. 8. Quelle diffrence existe-il entre un systme temps rel et une application en temps rel ? Donnez un exemple pour chaque cas. 9. Expliquez la raison principale de lutilisation de deux modes (usager, systme) dopration dans les systmes dexploitation modernes.
1.6. EXERCICES
19
10. Quel est le rle dun systme dexploitation ? Les interprteurs de commandes et les compilateurs font-ils parties du systme dexploitation ? 11. Quest ce quun systme multiprogramm ? Un systme de traitement par lots ? Un systme en temps partag ? 12. Dans le systme Unix, les vritables appels systme sont effectus partir : (a) Dun programme utilisateur. (b) Dune commande shell. (c) Dune procdure de la bibliothque standard. (d) Sont-ils excuts en mode superviseur ou en mode utilisateur ? 13. Comment sont organiss les chiers dans le systme Unix ? Un utilisateur peut-il accder un chier dun autre utilisateur ? Si oui, comment ? 14. Est-ce quun Systme dExploitation multitche est ncessairement multiusager ? Et pour linverse ? Expliquez.