Sie sind auf Seite 1von 230

Systmes d'exploitation des ordinateurs

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

Universit Virtuelle de Tunis

2007

Introduction aux systmes d'exploitation


Objectifs

1. 2. 3. 4. 5. 6.

Rappels sur le matriel Notions de systmes d'exploitation historique des systmes d'exploitation Les principaux systmes d'exploitation Le logiciel dans un ordinateur TD1

1. Rappels sur le matriel

1.1. Architecture simplifie d'un ordinateur 1.2. la carte mre 1.3. L'unit centrale

1.1 Architecture simplifie d'un ordinateur

Commenons par prciser ce que nous entendons par le terme "ordinateur", car les ordinateurs ne sont pas tous pareils. Un ordinateur dans le jargon des utilisateurs est associ au PC (personnel Computer) qui dsigne lordinateur personnel. Toutefois, un ordinateur peut tre une machine beaucoup plus puissante quun simple PC. De nos jours un ordinateur est constitu dune partie matrielle et dune partie logicielle. Mme s'ils n'ont pas tous le mme aspect, tous les ordinateurs comportent les mmes lments de base savoir :
q

Une unit pour effectuer les traitements, galement appele unit centrale ou processeur, Une unit pour contenir les programmes excuter qui est le lieu de travail dans un ordinateur communment appele mmoire centrale, Des priphriques de stockage permanent pour y enregistrer les travaux effectus en mmoire centrale tel que le disque dur, Des dispositifs pour entrer et rcuprer des donnes appels priphriques d'entresortie : un cran, une souris, un clavier, un lecteur de disquettes et un lecteur de CDROM ou DVD-ROM.

On trouve galement une horloge et plusieurs bus afin de permettre ces units de communiquer. Le processeur est un composant qui a besoin d'une horloge pour contrler la cadence des oprations qu'il excute. L'unit centrale et la mmoire centrale sont internes l'ordinateur et sont disposes sur une carte appele carte mre qui est en fait un circuit imprim base de silicium. Les autres

section1

composants sont externes, quoique le disque dur soit gnralement plac l'intrieur mais il peut galement fonctionner en tant externe. La figure suivante explicite la structure d'un ordinateur d'un point de vue systme :

Fig. 1. Structure simplifie d'un ordinateur

1.2 La carte mre

Du point de vue physique, la carte mre est une plaque de rsine contenant l'intrieur et sur les deux faces une fine couche de cuivre sur laquelle est imprim le circuit imprim. La couche de cuivre contient les fils lectriques qui relient les composants. La carte mre supporte les principaux lments d'un PC, sans elle un ordinateur ne peut pas fonctionner. On y trouve les lments suivants :
q q

Le microprocesseur La mmoire vive RAM (Random Access Memory). Elle reprsente le lieu de travail dans un ordinateur savoir quun programme stock sur le disque dur est charg en mmoire centrale o ses instructions seront accdes une une pour tre excutes par le processeur. La RAM est une mmoire volatile c'est--dire que son contenu serait perdu en cas de coupure dlectricit. Elle est constitue dun ensemble de puces (circuits intgrs) assembles en barrettes de 32, 64 ou 128 MO dites barrettes SIMM ou DIMM. La mmoire morte ROM (Read Only memory). Elle contient les programmes du BIOS qui grent le chargement du systme et les entres-sorties. On distingue plusieurs

section1

puces ROM tel que la PROM (Programmable ROM) et EPROM (Erasable Programmable ROM) ---> La hierarchie des mmoires.
q

L'horloge qui permet de cadencer le fonctionnement du processeur, du bus. Sa frquence caractrise la carte mre. Elle est gnralement trs infrieure celle du processeur (de l'ordre de quelques centaines de MHz). Un ensemble de bus : un bus est un ensemble de fils de cuivre incrusts dans la carte mre qui permettent de vhiculer l'information. Le bus se caractrise par le nombre de fils qui le composent. Si le nombre de fils est de 64, on parle alors de bus 64 bits. Il est galement caractris par sa frquence de fonctionnement. Le "chipset" ou "jeu de composants" soud sur la carte mre. Le chipset rgit tous les changes au sein du PC en aiguillant les donnes sur les diffrents bus de la carte mre.

Les priphriques sont des dispositifs qui sont assez lents par rapport l'unit centrale, cette dernire ne peut donc pas rester l'coute pour savoir si le priphrique est prt lui envoyer une donne ou la recevoir. Un composant appel contrleur est associ chaque priphrique et gre le dialogue avec l'unit centrale. La mmoire centrale galement a une frquence faible par rapport l'unit centrale, on lui associe donc un contrleur. On distingue les contrleurs suivants prsents sur la carte mre :
q q

Les diffrents contrleurs dentre/sortie (disque, mmoire, clavier, moniteur) Des slots : emplacements pour connecter des cartes d'extension. On peut ainsi connecter une carte rseau avec ou sans fil, une carte modem, une carte son, carte TV, une carte graphique. des connecteurs d'alimentation, USB, de clavier, de disque etc. Exemple de connecteur : connecteurs d'extension .

La figure n 2 qui suit prsente une unit centrale de PC dcouverte. On peut voir au fond la carte mre et les cartes d'extension. La figure n 3 prsente la carte mre d'un ordinateur de type PC.

section1

Fig. 2. Vue des diffrentes cartes d'un PC

Fig. 3. Exemple de carte mre Exercice 1 sur les composants de la carte mre. Exercice 2 sur les composants de la carte mre. Exercice 3 sur les composants de la carte mre.

1.3 L'unit centrale

On utilise souvent le mme terme pour dsigner l'unit centrale et le botier de l'unit centrale. Il s'agit en ralit d'un abus de langage et l'unit centrale est un circuit intgr qui ralise les

section1

traitements et les dcisions. Elle est galement appele microprocesseur. Elle se compose d'une unit de commande et de contrle UCC, d'une unit arithmtique et logique UAL, de registres, d'une horloge et d'un bus interne qui relie ces units.
q

q q q

Les registres sont des zones mmoires internes au processeur destines accueillir les donnes, les instructions et les rsultats. L'UCC recherche les instructions, les dcode et en supervise leur excution par l'UAL. L'UAL ralise les traitements qu'ils soient arithmtiques ou logiques. Le bus interne permet ces units et aux registres de communiquer entre eux. L'horloge rythme le processeur. A chaque top d'horloge le processeur effectue une instruction, ainsi plus l'horloge a une frquence leve, plus le processeur effectue d'instructions par seconde (MIPS: Millions d'instruction par seconde). Par exemple un ordinateur ayant une frquence de 1 GHz (1000 MHz) effectue 1000 millions d'instructions par seconde.

La figure qui suit prsente une architecture lmentaire d'unit centrale.

Fig. 4. Structure simplifie de l'unit centrale De nos jours d'autres composants sont intgrs au processeur tels que :
q q

Une unit flottante pour le calcul des oprations sur les nombres rels. La mmoire cache : c'est une mmoire de petite taille, accs plus rapide que la mmoire principale. Elle permet au processeur de se "rappeler" les oprations dj effectues auparavant. En effet, elle sert conserver les donnes ou les instructions frquemment utilises par le processeur. De la sorte il ne perd pas de temps recalculer

section1

des choses qu'il a dj faites prcdemment. La taille de la mmoire cache est gnralement de l'ordre de quelques centaines de KO. Ce type de mmoire rsidait sur la carte mre, sur les ordinateurs rcents ce type de mmoire est directement intgr dans le processeur. Les units de gestion mmoire servent convertir des adresses logiques en des adresses relles situes en mmoire.

section2

2. Notions de systmes dexploitation

Avant l'avnement des systmes d'exploitation, la conception dun programme ncessitait la connaissance parfaite du mode de fonctionnement de la machine. Le programmeur devait grer au moindre dtail le placement des programmes en mmoire en utilisant directement les adresses, lexcution au niveau du processeur savoir le chargement et la terminaison des programmes, l'affichage sur l'cran des rsultats, etc. Cette tche tant trs complexe, peu de programmes pouvaient tre dvelopps. Il y a quelques annes, on a ressenti le besoin de dissocier la programmation de la machine utilise afin d'atteindre un grand nombre d'utilisateurs. Ainsi, on a dvelopp une couche de logiciel pour enrober le matriel et le prsenter aux programmeurs comme une machine virtuelle plus facile comprendre et utiliser. Le systme dexploitation est une couche de logiciel. La fonction du systme dexploitation est de masquer la complexit du matriel et de proposer des instructions plus simples lutilisateur Le systme d'exploitation est un gestionnaire de ressources, c'est--dire qu'il contrle l'accs toutes les ressources de la machine, l'attribution de ces ressources aux diffrents utilisateurs et la libration de ces ressources lorsqu'elles ne sont plus utilises. ce titre, tous les priphriques comme la mmoire, le disque dur ou les imprimantes sont des ressources. Le processeur galement est une ressource.

section3

3. Historique des systmes d'exploitation

Partant du fait qu'un systme d'exploitation est conu pour une machine bien particulire, il est logique que les systmes d'exploitation voluent avec les gnrations dordinateurs. Sans les progrs de l'optique et de la chimie il n' y aurait pas de circuit intgr ni de processeur, indispensables au micro-ordinateur moderne. Il a fallu attendre les circuits intgrs et le premier vritable ordinateur pour disposer d'un vritable systme d'exploitation. A l'origine on a commenc par dvelopper du logiciel pour automatiser certaines tches, pour compiler des programmes et pour raliser les entres-sorties. Ce n'est qu'avec la multiprogrammation qu'on a rellement ressenti le besoin d'un systme d'exploitation capable de prendre en charge la machine et d'en dispenser le programmeur. Cette section commence par rappeler les premires ralisations de machines, ensuite nous prsentons pour chaque gnration d'ordinateurs l'tat d'avancement des systmes d'exploitation.

Sommaire de la section : Premires ralisatons La premire gnration (1945-1955) La deuxime gnration (1955-1960) La troisime gnration (1960-1970) La quatrime gnration (1971- ) La cinquime gnration (dbut des annes 90) Les gammes d'ordinateurs

section3_1

3.1 Premires ralisations


L'introduction des cartes perfores par la mcanographie, a encourag les premires machines calculer. L'avnement de l'lectronique a permis l'informatique d'atteindre le dveloppement qu'on lui connat actuellement. Le mathmaticien, penseur et crivain Blaise Pascal met au point en 1642 ( l'ge de 19 ans) une machine, qu'il appelle Pascaline, capable d'effectuer l'addition et la soustraction, pour aider son pre qui tait percepteur de taxes. Les calculs s'effectuaient en base 10 l'aide d'un mcanisme roues dentes.

Fig. 5 . La machine calculer de Pascal de l'extrieur et de l'intrieur Au dbut des annes 1800, vint la notion d'automates avec le mtier tisser (tissage des pulls) de Joseph-Marie Jacquard qui introduisit lutilisation des cartes perfores. La carte perfore permettait aux machines de tisser les pulls en alternant les pelotes de diffrentes couleurs automatiquement grce au dessin reproduit sur la carte. Charles BABBAGE (mathmaticien anglais l'universit de Cambridge) conoit vers 1830 sa machine analytique, capable d'enchaner des oprations arithmtiques de faon autonome. Cette premire ralisation tait entirement mcanique. Elle comportait une mmoire, une unit de calcul et utilisait les cartes perfores pour les entres/sorties.

section3_1

Fig. 6 . La machine de Charles Babbage En savoir plus sur les premires ralisations En 1847, Georges BOOLE (mathmaticien anglais) labore la logique algbrique moderne, laquelle servira ultrieurement l'laboration des langages informatiques actuels. En 1939, John Vincent Atanasoff, avec l'aide de son tudiant Clifford Berry de l'universit d'Iowa, achve la mise au point de la premire machine calculer utilisant un systme binaire, la ABC (Atanasoff-Berry Computer, complte en 1942), destine rsoudre des quations diffrentielles. Ce calculateur fonctionnait avec des lampes, et tait capable de rsoudre des quations 29 variables. Sa frquence d'horloge tait de 60Hz et il effectuait 1 multiplication la seconde. En 1970, Alan Turing a introduit la notion d'algorithme et est connu pour avoir propos une machine (virtuelle) capable de rsoudre tout problme pouvant tre mis sous forme d'algorithme.

section3_2

3.2 La premire gnration (1945-1955) : Prototypes dordinateurs base de tubes lectroniques vide
Le plus connu des ordinateurs non mcaniques est l'ENIAC (Electronic Numerical Integrator And Computer) mis au point de 1943 1946 par John Mauchly et J. Presper Eckert de l'Universit de Pennsylvanie. Il pse 30 tonnes, occupe quelques dizaines de m2, comporte 18 000 tubes vide, et ncessite 140 KW d'nergie. Il est capable d'effectuer 5000 additions la seconde. Il avait t conu dans le but d'effectuer des calculs pour l'arme amricaine pendant la guerre, mais fut termin trop tard. Il servit aprs la guerre aux calculs pour la bombe H, et fut utilis jusqu'en 1955. Command par l'arme des tats-Unis en 1943 pour effectuer les calculs de balistique, il remplaait 200 personnes charges auparavant de calculer les tables de tir. L'ENIAC effectue ses calculs en dcimal. Les donnes sont lues au moyen d'un lecteur de cartes perfores, et les rsultats sont fournis sur cartes perfores ou imprims avec une machine crire lectrique.

Fig. 7. L'ENIAC En savoir plus sur cette gnration L'une des figures les plus marquantes de l'volution des ordinateurs fut sans conteste John Von

section3_2

Neumann. Mathmaticien de gnie, John Von Neumann participa l'laboration de la thorie des ensembles, la conception de la bombe H, et fut le prcurseur de l'intelligence artificielle et des sciences cognitives. Il dfinit pour la premire fois le concept de calculateur programme enregistr, qui rgit tous les types actuels d'ordinateurs sous le terme gnrique de "machines de Von Neumann " (sauf dans de rares cas de paralllisme). La proposition de Von Neumann prsente l'ordinateur comme une machine dote d'une unit centrale pour effectuer les calculs et d'une mmoire centrale pour y ranger les donnes et le programme excuter. L'unit centrale est compose d'une unit de commande et d'une unit arithmtique et logique. Par ailleurs, dans sa proposition, Von Neumann adopte le systme binaire la place du dcimal. Pour la premire fois, le programme n'est pas cbl, mais est stock en mmoire comme les donnes. Les travaux de Von Neumann furent utiliss pour la construction du premier ordinateur programme enregistr : la machine EDVAC en 1947 par Eckert et Mauchly l'universit de Pennsylvanie, l'EDSAC en 1949 par Maurice Wilkes de l'universit de Cambridge. L'EDSAC avait une mmoire centrale totale de 4096 mots de 40 bits. D'autres calculateurs l'ont suivi tel que l'UNIVAC (dpartement du recensement amricain) en 1951. En 1953 IBM met en circulation son premier ordinateur lectronique bas sur les travaux de Von Neumann : le 701. Bien entendu, aucun de ces calculateurs ne disposait de systme d'exploitation. Par ailleurs, un groupe restreint de personnes concevait, construisait, programmait, utilisait et effectuait la maintenance de la machine.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_3

3.3 La deuxime gnration (1955-1960): Les transistors et le traitement par lots


En 1947, W. Shockley, W. Brattain et J. Bardeen, ingnieurs chez Bell, testent avec succs le transistor ouvrant ainsi la voie la rvolution des semi-conducteurs. En 1954, Texas Instruments met au point le transistor avec jonction base de silicium. Il est plus petit, moins coteux et dissipe moins d'nergie qu'une lampe vide. Les transistors remplacent progressivement les tubes vide. Ils permettent de concevoir des ordinateurs moins encombrants. L'emploi de mmoires de masse comme les bandes et les disques magntiques se gnralise. Les principaux vnements En 1955, des chercheurs des laboratoires Bell annoncent la cration de TRADIC, le premier ordinateur compos en totalit de transistors. C'est pour cette raison que la deuxime gnration commence en 1955. Le transistor a permis l'ordinateur de gagner en fiabilit et par consquent den augmenter les ventes. De nombreuses constructions voient le jour. Par ailleurs, des langages de programmation comme Fortran (FORmula TRANslator) et LISP (premier langage de l'Intelligence Artificielle par John McCarthy), sont mis au point. Le premier disque dur est commercialis par IBM, le RAMAC 305 (Random Access Method of Accounting and Control). Il peut stocker 5 MO de donnes. Le traitement par lots Le traitement par lot consiste enchaner automatiquement les travaux. Lide tait de collecter un ensemble de travaux, de les enregistrer sur bande magntique, puis de faire lire la bande par lordinateur charg des calculs. Les rsultats taient rcuprs sur une autre bande pour tre imprims. Chaque programme de la bande tait lu, excut et ensuite lordinateur passait automatiquement au suivant. Cet automatisme tait possible grce un programme rsident en mmoire appel moniteur systme qui permettait de passer le contrle d'un programme un autre. En savoir plus sur cette gnration
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_3

Les systmes d'exploitation sont apparus avec les premiers vrais ordinateurs c'est--dire avec lapparition du transistor. Dsormais la machine devient un ordinateur et on dissocie le programmeur du constructeur de cette dernire. Le traitement par lots est n dans les centres de calculs o plusieurs programmeurs transcrivaient sur cartes perfores leurs programmes crits en fortran, assembleur et autres. Des oprateurs taient chargs de donner les cartes lire lordinateur, de rcuprer les rsultats et de les communiquer aux programmeurs. Ils devaient galement charger le compilateur adquat qui lui aussi se trouvait sur bande magntique. L'existence de ces oprateurs tait due des raisons de scurit, en effet les ordinateurs de l'poque valant plusieurs milliers de dollars, ils taient conservs dans des pices air conditionn o seuls les oprateurs taient autoriss pntrer. Il y avait un second avantage au traitement par lot savoir que les oprateurs pouvaient trier les travaux et regrouper les programmes ncessitant le mme compilateur ensembles. Voyons prsent de plus prt le moniteur. Celui-ci consiste en un programme dont on commande l'excution en utilisant des directives pour indiquer par exemple quel est le premier programme excuter, quel compilateur utiliser. Le caractre $ tait alors adopt pour signaler une directive au moniteur (programme batch). La firme IBM l'poque permettait le traitement par lot grce deux machines : un ordinateur simple le 1401 pour grer les cartes et le 7094 pour effectuer les calculs. Les systmes d'exploitation sappelaient Fortran Monitor System FMS et IBSYS.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_4

3.4 La troisime gnration (1960-1970) : Les circuits intgrs et la multiprogrammation


Le premier circuit intgr est dvelopp par Jack Kilby en 1958 Texas instruments. Le principe consiste fabriquer dans un mme bloc de semi-conducteur le plus rduit possible, un maximum de fonctions logiques, auxquelles l'extrieur pourrait accder grce des connexions rparties tout autour du circuit. En 1959, Robert Noyce met au point la socit Fairchild un circuit intgr imprim sur une surface de silicium. De 1958 nos jours, le concept de circuit intgr s'est extraordinairement dvelopp. Son application la plus rpute a t le microprocesseur. Les principaux vnements La troisime gnration d'ordinateurs est trs riche en vnements, en effet elle a vu la cration de la socit Intel, la naissance du systme Unix et la mise en place du rseau de communication Arpanet anctre d'Internet. En 1968, Robert Noyce et Gordon Moore, fondent la compagnie, Intel, contraction de Integrated et d'Electronics. Cette gnration a t marque par la naissance du systme Unix en 1969. Son anctre Multics (MULTiplexed Information and Computing System) a t conu et dvelopp par des chercheurs des laboratoires Bell et dautres du MIT (Massachusetts Institute of Technology). Ce dernier avait des ambitions grandioses quil ne put jamais atteindre. En 1969, deux chercheurs Ken Thompson et Dennis Ritchie dcidrent den rcrire une version simplifie en assembleur qui sest avre fonctionnelle. Elle reut le nom de UNICS (UNiplexed Information and Computing System, Uniplexed en opposition MULTiplexed) puis fut trs vite rebaptis UNIX. Unix tournait sur le PDP-7 et occupait 16 KO en mmoire. UNIX fut rcrit en langage C en 1973 ce qui a permis de le porter sur de nombreuses plate-formes. La multiprogrammation
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_4

Cette gnration introduit la notion de multiprogrammation puisque le processeur peut se partager entre plusieurs tches. La multiprogrammation trouve ses origines dans l'ide suivante : un programme peut ncessiter une arrive de donne partir du clavier ou partir d'une bande qui peut ne pas tre disponible. Dans tous les cas de figure, c'est une instruction d'entre-sortie et son excution est trs lente vu la diffrence de vitesse entre le priphrique et le processeur. Au lieu que celui-ci reste inactif dans l'attente de la ralisation de cette dernire, le systme d'exploitation fait basculer le processeur vers un autre programme et l'excute. Le processeur peut ainsi avoir un rendement de 100%. La multiprogrammation est un concept logiciel et non matriel. Il ne s'agit pas d'un nouveau modle de processeur capable de raliser plusieurs tches en mme temps, mais d'un systme d'exploitation multiprogramm, qui permet de grer l'excution de plusieurs programmes au niveau du processeur et de la mmoire. Les systmes d'exploitation de l'poque offraient les fonctionnalits d'allocation du processeur et de gestion des files dentre-sortie. La prsence de plusieurs programmes en mmoire ncessite de nouveaux contrles pour les protger entre eux, ainsi le systme d'exploitation grait en plus l'allocation de la mmoire. En savoir plus sur cette gnration Vers le milieu des annes 60, IBM lance la gamme de machines SYSTEM/360 (avec le systme d'exploitation OS/360) qui permet de grer les entres-sorties et deffectuer des calculs en mme temps. SYSTEM/360 est une famille de six ordinateurs compatibles entre eux et de quarante priphriques capables de travailler ensemble. La socit DEC met en vente en 1965, le premier mini-ordinateur ayant connu un certain succs commercial le PDP-8. La socit HP commercialise sa gamme de mini-ordinateurs HP2000 puis 3000. En 1966, Seymour Cray labore le super calculateur CDC 6600, un ordinateur multiprocesseurs capable d'excuter trois millions d'instructions la seconde. Le langage Pascal est invent en 1968 par Nikhlaus WIRTH.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_4

Pour en revenir l'histoire, les supports de stockage de masse sont largement exploits cette poque et les ordinateurs 1401 disparaissent puisque le systme d'exploitation charge les programmes directement partir du disque. Avec l'avnement des disques, un nouveau mode de fonctionnement s'est dvelopp : le spooling ou spool. Le spool (Simultaneous Peripheral Operations On Line) consiste, lorsque la mmoire est sature, placer les programmes non encore excuts sur le disque dur dans une zone dite zone de spool. Ds que la mmoire se libre le systme d'exploitation slectionne un programme et le charge en mmoire centrale. Aprs le traitement par lots, plusieurs modes dexploitation des ordinateurs ont vu le jour :
q

Le temps partag variante de la multiprogrammation. Plusieurs utilisateurs peuvent se connecter une mme machine. Le processeur est partag quitablement entre les tches des diffrents utilisateurs. Des systmes temps partag ont t dvelopp pour la gamme 360 de IBM. Le temps rel pour le contrle des systmes temps rel : processus industriels, systmes avioniques, radars, centrales nuclaires. Un systme temps rel est un systme dont lexcution doit tenir compte de la survenue dvnements extrieurs auxquels il doit ragir en respectant certains dlais, afin de garantir la fiabilit du systme.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_5

3.5 La quatrime gnration (1971- ) : Les micro-ordinateurs et les systmes d'exploitation actuels
Cette gnration est apparue vers les annes 70 et est de loin la plus mouvemente et celle qui a le plus marqu la micro-informatique. Elle ne comporte pas de limite dans le temps, en effet aucun composant n'est venu rvolutionner le monde de l'informatique depuis. De nouveaux micro-ordinateurs et systmes sont sans cesse mis sur le march. Pour cette raison, certains pensent que nous sommes encore en quatrime gnration. On la doit la Technologie MOS (Metal Oxyde Semiconductor). Cette technologie permet de fabriquer des transistors plus petits et plus rapides. Lapparition des circuits LSI (Large Scale Integration) et VLSI (Very Large Scale Integration) a permis le dveloppement des microprocesseurs. Le processeur occupe une surface de quelques mm2 et son prix chute considrablement. On peut dsormais avoir son ordinateur personnel bon prix. Certaines fonctionnalits du systme d'exploitation sont intgres dans le silicium grce la technologie VLSI (la traduction des adresses par exemple). Cette gnration compte des centaines de fabricants de matriel informatique. 1.3.5.1 Les principaux vnements Le premier microprocesseur, le Intel 4004 apparat en 1971. Conu par Ted Hoff, ingnieur chez Intel, le 4004 est un microprocesseur capable de traiter des donnes de 4 bits. Il contient 2300 transistors et peut excuter 60.000 oprations par seconde (frquence de base de 108 KHz). Sa puissance tait gale celle de l'ENIAC.

Fig. 8. Le processeur 4004 En 1974, Gary Kildall (directeur de Digital Research) crit CP/M (Control Program for
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_5

Microcomputers) le premier systme d'exploitation pour micro-ordinateur, anctre de MSDOS. En 1975, la socit Microsoft est cre par Bill Gates et Paul Allen. Ils commencent par crire un interprteur BASIC pour l'ordinateur Altair. Le 1er Avril 1976, deux amis, Steve Wozniak et Steve Jobs fondent officiellement l'Apple Computer Company afin de commercialiser l'apple I. Jobs choisit le nom Apple car il pensait la pomme comme au fruit parfait, et il voulait que Apple fut la compagnie parfaite. La plupart des systmes d'exploitation voient le jour et voluent durant cette gnration. Ils sont pour la plupart multitches, multi-utilisateurs et grent la mmoire virtuelle. En savoir plus sur cette gnration Le premier micro-ordinateur, le Kenback 1 (de Kenback Corporation), voit le jour en 1971. Il intgrait le processeur 4004 et avait une mmoire de 256 octets. Suivi du Micral en 1973, fabriqu par la socit R2E (Ralisations Etudes Electroniques en France). Il tait muni du processeur 8008 de Intel et capable d'adresser 16 KO de mmoire. En 1975, Le Altair 8800 est prsent par ED. Roberts (MITS) et bas sur le processeur 8080. Le produit phare d'apple, l'ordinateur Apple I tait bas sur la puce MOS 6502 (MOS Technologies) de puissance 1 MHz et capable d'adresser 64 KO de mmoire, alors que la plupart des autres micro-ordinateurs taient construits base d'Intel 8080. Il tait plus simple au dmarrage grce un programme intgr en ROM. L'Apple I n'tait qu'une carte-mre, (la plupart des Apple 1 ont t quips ensuite d'un caisson en bois, cf. figure n 13). Cette premire machine ne fut pas un succs. LApple II, sorti en 1977 ft le premier succs de la socit grce son interface graphique. Le macintosh de la socit sera commercialis en 1984 (figure n 14).

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_5

Fig. 9. L'apple I dans un caisson en bois

Fig. 10. Le Macintosh En 1977, deux tudiants de l'Universit de Californie Berkeley, Bill Joy et Chuck Haley, proposent leur premire version d'UNIX BSD (Berkeley Software Distribution) qui comporte de nombreuses amliorations par rapport la version AT&T. L'ordinateur Alto est construit en 1974, au centre de recherche Xerox. Il utilise le langage objet Smalltalk, une souris comme outil de pointage et peut tre raccord avec d'autres ordinateurs Alto. En 1978, Intel 8086 prsente le premier processeur architecture x86, qui permettait d'adresser 1 Mo de mmoire. La socit DEC prsente son ordinateur 32 bits, le VAX 11/780 (Virtual Address eXtension.) le premier modle de "supermini". Il prsentait suffisamment de ressources pour supporter des applications qui taient jusqu'ici rserves aux gros calculateurs. La srie des VAX fonctionne avec le systme d'exploitation VMS. En 1979, Motorola prsente le 68000 (le premier d'une grande famille) un processeur 32 bits. Motorola nomma son processeur 68000 car il contenait 68000 composants, il quipera le Macintosh en 1984 ainsi que les Atari et Amiga.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_5

Le 12 aot 1981, IBM dvoile son "Personal Computer" une machine 16 bits btie sur le processeur Intel 8088 avec 16 KO de mmoire RAM et capable d'adresser jusqu' 1MO de mmoire physique (centrale). En 1982, Le microprocesseur Intel 80286, sera au cur de la fameuse machine AT d'IBM. En 1983 IBM lance un nouveau micro, le XT, avec un disque dur intgr de 10 MO.

Fig. 11. L'IBM PC Les processeurs Motorola partir du 68010 pouvaient grer la mmoire virtuelle, qui est une technique o la mmoire centrale est tendue de manire virtuelle par de l'espace sur le disque dur. L'anne 1982, verra la cration de Sun (Stanford University Network) Microsystems, en plein cur de la Silicon Valley, par des universitaires issus de Berkeley et Stanford. Sun invente le concept de station de travail, intermdiaire entre le PC et le mini-ordinateur. Unix sera leur systme d'exploitation. Les processeurs Risc voient le jour. Les plus clbres fabricants sont : SUN avec l'architecture SPARC, Motorola avec le 88000, IBM avec RISC6000, Motorola-IBM-Apple avec le PowerPC, HP avec HP-PA, Digital avec Alpha, MIPS (devenu Silicon Graphics ) avec les Rx000. Cette gnration a galement vu la naissance des diffrentes formats de disquettes : la 8 pouces en 1971 par IBM, la 5 pouces en 1976 par Shugart Associates et la fameuse 3 pouces en 1980 par Sony. En 1991, Linus Torvald, 21 ans, tudiant en licence universitaire d'informatique en Finlande,
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_5

prsente la premire version de Linux, un systme d'exploitation gratuit et incluant les sources, qui va rvolutionner l'informatique au 21me sicle. En 1993, Intel prsente le Pentium l'an d'une famille de processeurs 32 bits. En 1995 Sun Microsystems prsente le langage orient objet, JAVA.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_6

3.6 La cinquime gnration (dbut des annes 90) : Les systmes parallles et rpartis
On observe depuis quelques annes une tendance vers les systmes multiprocesseurs. Les raisons ayant conduit au dveloppement de tels systmes sont entre autres un besoin de plus grandes capacits et de performances, une qute de machines plus fiables, et un partage de ressources. On distingue deux types d'architectures multiprocesseurs : les systmes dits parallles et ceux dits rpartis ou distribus. Un systme informatique rparti est compos de plusieurs sites chacun comportant une ou plusieurs machines relies travers un rseau de communication. Il comporte galement des ressources matrielles telles que les imprimantes, les disques durs et autres qui peuvent ainsi tre partages par tout le systme. Un systme d'exploitation rparti fournit et contrle l'accs aux diffrentes ressources du systme. Il doit offrir une transparence aux utilisateurs, ceux-ci doivent pouvoir accder toute ressource distante comme si elle tait locale. La figure n 16 illustre un exemple de systme rparti.

Fig. 12. Schma de systme rparti Dans un systme rparti, le calcul peut tre acclr mais d'une manire transparente l'utilisateur savoir qu'il ignore si une partie de son traitement a t excute sur un autre site. Outre l'acclration du calcul, ces systmes offrent l'avantage de partager des ressources. Un
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_6

disque de grande capacit peut tre utilis par plusieurs sites, de mme qu'une imprimante, ce qui permet de raliser des conomies. Un campus universitaire est typiquement un exemple de systme rparti. Un systme parallle est un systme d'exploitation pour une machine parallle qui est compose de plusieurs processeurs. Le nombre des processeurs peut atteindre plusieurs milliers. Des exemples de machines parallles sont le CDC 6600, le premier super calculateur suivi de la famille des CRAY (CRAY Research). Egalement la Paragon de Intel, la Connection machine, l'Hypercube base des processeurs transputers de Inmos, le Butterfly de BBN, le RP3 de IBM.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_7

3.7 Les gammes d'ordinateurs


On distingue principalement 3 gammes d'ordinateurs, chacune ayant ses propres systmes d'exploitation :
q

Le micro-ordinateur : on y trouve le compatible PC (ordinateur personnel), le

Macintosh, le portable et la station de travail : le Macintosh est apparu en 1984 et c'est un des premiers ordinateurs pilots par une souris et dots d'une interface utilisateur graphique (aprs l'alto de Xerox). Le Macintosh ne peut supporter que le systme du Macintosh Mac-OS, qui a atteint la version X. Il se caractrise par une interface graphique trs sophistique qui a de loin devance le PC. En revanche le PC peut supporter plusieurs systmes d'exploitation tels que Ms-Dos, diverses versions d'Unix et de Windows. A noter qu'il existe des centaines de fabricants de matriel informatique qui construisent des ordinateurs compatibles PC, mais que seule la socit Apple fabrique des Macintosh. La plupart des constructeurs d'ordinateurs proposent un modle de leur gamme en portable. Le processeur Intel centrino a t spcialement conu pour les portables. Il leur permet en outre d'tre lgers. La station de travail est une sorte d'ordinateur personnel mais bien plus puissant et disposant gnralement d'une carte graphique haut de gamme. La puissance est obtenue grce l'adjonction de processeurs ou par l'utilisation de modles de processeurs architecture diffrente tels que les processeurs RISC par exemple le processeur SPARC (SUN), PowerPC (IBM), Alpha(DEC). Nous citons les stations SUN, HP, IBM, DEC, MIPS. On distingue les stations de travail sur plate forme Intel (plus conomiques) et les stations de travail sur architecture RISC qui restent les plus performantes en calcul 3D par exemple. La station de travail tant une machine chre, elle est souvent exploite par plusieurs utilisateurs qui s'y connectent pour excuter des logiciels qui ncessitent des quantits de mmoire et des performances de calcul en virgule flottante considrables dans des domaines tels que les effets spciaux de films, les animations 3D, l'ingnierie et les applications scientifiques.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3_7

Les minis ordinateurs : ce sont des serveurs multiprocesseurs auxquels on peut

connecter (grce un rseau local) plusieurs terminaux qui peuvent tre gographiquement loigns. On les utilise gnralement pour les systmes bancaires, de rservation d'avion, les assurances etc. Dans les agences, les terminaux permettent de se connecter au serveur et d'excuter les applications qui s'y trouvent. Gnralement les terminaux ne disposent ni de processeur ni de mmoire de stockage. Tout le travail et la sauvegarde sont effectus sur le serveur. Ces mini-ordinateurs ont souvent leur systme propritaire fourni par le constructeur. Nous citons les systmes OS400 et AIX pour les ordinateurs IBM, VMS pour les machines de type VAX (DEC) etc. Toutefois certains mini supportent des systmes d'exploitation tels que Unix et Windows 2000 mais dans une version plus volue que celle pour PC.
q

Les super calculateurs : Cette gamme dsigne les machines comportant un trs

grand nombre de processeurs et rserves des calculs scientifiques longs et complexes. A titre d'exemple nous citons les centres de recherche spatiale qui les utilisent pour simuler de manire intensive les programmes destins aux futures navettes. Ces calculateurs galement ont un systme d'exploitation propritaire fourni par le constructeur. Parmi les super-calculateurs, on retrouve les CRAY, Les SP de IBM, La Connection machine (16 000 processeurs), la Paragon de Intel (2 000 processeurs) etc.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

4. Les principaux systmes d'exploitation

Lvolution des micro-ordinateurs a t encourage par lapparition des systmes d'exploitation adquats. Les systmes d'exploitation actuels sont multi-utilisateurs. Ils intgrent une gestion des rseaux, et permettent la protection des utilisateurs entre eux. Nous prsentons ci-dessous une liste des principaux systmes sur le march dans un ordre chronologique (approximatif). Une liste exhaustive est fournie dans ?? VMS VMS est la proprit de DEC. Il est apparu avec le premier ordinateur VAX de digital. VMS (Virtuel Memory System), est un des premiers systmes appliquer la mmoire virtuelle. CP/M L'histoire des systmes d'exploitation pour PC commence avec CP/M cr par Gary Kildall en 1974. A cette poque, chaque ordinateur tait livr avec son propre systme d'exploitation, troitement dpendant du matriel utilis. L'ide de CP/M (Control Program for Microcomputers), une premire l'poque, consistait crer un systme d'exploitation pouvant fonctionner sur les machines de plusieurs constructeurs. C'est d'ailleurs avec CP/M que le Bios apparat, cette couche logicielle basse permettant d'interfacer matriel et systme d'exploitation. CP/M est port sur presque toutes les plates-formes en vue de l'poque. MS-DOS MS-DOS est le plus connu des premiers systmes d'exploitation pour PC. Ses concepteurs ne se doutaient pas du succs qu'il aurait. Il est mono-utilisateur et mono-tche. On a du greffer des couches logicielles pour rpondre aux volutions matrielles et aux demandes des utilisateurs. Ms-Dos a t rapidement supplant par les systmes Windows. Mac OS C'est le systme d'exploitation de la firme Apple. Il a t livr pour le Macintosh en 1984.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

C'est un des premiers systmes utiliser la souris et une interface graphique avec plusieurs fentres. La version actuelle est la X (prononcer dix). Mac OS X se distingue par un noyau Darwin qui est un open source. Mac OS est un des principaux rivaux des Windows. OS/2 En 1987, IBM propose le PS/2, plus puissant que le PC avec un nouveau systme d'exploitation OS/2 (coproprit d'IBM et de Microsoft). Celui-ci est multitche. Il est renomm OS/2 Warp Server partir de la version 3. NetWare NetWare de Novell est le premier systme d'exploitation rseau 32 bits pour PC. Il intgre un serveur de fichiers et d'impression. Unix Unix tant distribu gratuitement ses tous dbuts, il a donn naissance de nombreuses versions : Les versions les plus connues a ce jour sont Unix SYSTEM V (volution de la version initiale d'AT&T et Bell) et Unix BSD. Il fonctionne aussi bien sur PC que sur les miniordinateurs. Les principaux Unix du march sur Intel sont : Open Server et Unixware de SCO (Santa Cruz Operation), Solaris (Sun Microsystems), BSD (Berkeley), Caldera OpenLinux. Cependant trois Unix dominent le monde des serveurs : HP/UX, Sun Solaris, IBM AIX. Linux Linux a pris des parts de march aux Unix, Novell Netware et Windows NT-2000 serveur. Il s'est impos ds la fin du 20me sicle. Linux est multi-utilisateurs, multi-tches, stable et gratuit. Principales distributions de Linux : RedHat (la plus apprcie des administrateurs de serveurs),
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

MandrakeSoft (plus facile ou assiste pour dbutants), Suze (allemande), Debian, Caldera (devenue payante), Turbolinux (plus connue en Asie). La famille des Windows : Microsoft propose en 1992 Windows 3.10 et Windows pour Workgroups 3.11 dont les mots cls sont Multifentres et Multitches coopratif. En 1993, on voit apparatre la premire version de Windows NT 3.1 suivie en 1994 par NT 3.5. L'anne 1995, verra la sortie du fort clbre Windows 95 ("Et soudain le monde devient plus beau"). En 1996, Windows NT 4 avec deux versions station de travail et Serveur. Ensuite, Windows Terminal Server : un systme qui simule un environnement multi-utilisateurs et prend en charge la connexion de plusieurs terminaux. En 1998 Windows 98. En 2000, Microsoft commercialise Windows 2000 professionnel et serveur, Windows Millenium, suivi de Windows XP familial et serveur. Windows 2003 (initialement baptis .NET) sort en 2003.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5

5. Le logiciel dans un ordinateur

La dfinition correcte d'un ordinateur inclut la machine elle-mme, le systme d'exploitation et les logiciels. En effet, si l'on fait l'acquisition d'un ordinateur c'est gnralement pour une utilisation immdiate [vu la somme qu'il faut dbourser]. Il est donc ncessaire de se munir de logiciels ou d'applications excuter sur son ordinateur. A prsent, il s'agit de situer le systme d'exploitation parmi le logiciel qui se trouve tre un terme familier pour dsigner un programme. Pour comprendre cela, le logiciel dans un ordinateur se rpartit en 2 catgories :
q

Les programmes fondamentaux qui permettent le fonctionnement de lordinateur (dits programmes systme) Les programmes destins aux utilisateurs (logiciels et applications)

La figure n 17 prsente en dtail les diffrents types de logiciels dans un ordinateur.

Fig. 13. Types de logiciel dans un ordinateur La partie matrielle contient au plus bas niveau les circuits intgrs, les priphriques etc, en somme les composants matriels de l'ordinateur. Au dessus, on trouve une couche de logiciel pour contrler ces priphriques et excuter les instructions en langage machine. Ce logiciel est considr comme faisant partie du matriel par les constructeurs.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5

Sommaire de la section : Les programmes systme Les logiciels et les applications

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5_1

5.1 Les programmes systme


La deuxime couche constitue les programmes systmes. Le systme dexploitation est le programme fondamental des programmes systme. Il est gnralement livr avec un ensemble d'outils galement ncessaires pour pouvoir exploiter l'ordinateur. Nous citons les diteurs de texte ncessaires afin de taper un fichier de commandes ou un fichier dans un langage de programmation donn, les compilateurs pour compiler ces fichiers. Il est galement ncessaire de disposer d'un interprteur de commandes qui comme son nom l'indique transforme des commandes simples dictes par l'utilisateur en des ordres mieux labors pour le systme d'exploitation. Des utilitaires systme sont galement fournis tel que la compression ou la vrification du disque. Le systme d'exploitation est un logiciel protg. Un utilisateur peut crire son propre compilateur, mais il ne peut pas modifier un systme de gestion dinterruptions ou de mmoire et en proposer un autre pour le systme d'exploitation ( moins qu'il ne dispose du code source du systme). Les outils systmes se trouvent au dessus du systme d'exploitation car ils y font appel. Nous verrons par la suite que tout ce qui s'excute sur un ordinateur doit tre gr par le systme d'exploitation. Souvent toute cette couche est vue comme le systme dexploitation car elle est fournie ensemble.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5_2

5.2 Les logiciels et les applications


La dernire couche est compose des applications et des logiciels. Elle est entirement indpendante du systme d'exploitation mais elle repose bel et bien au dessus. Un logiciel donn fait appel au systme d'exploitation afin d'ouvrir un fichier par exemple. Un mme logiciel ne peut pas tre compatible avec toutes les plates-formes et il existe une version par systme d'exploitation. 1. Il existe une diffrence fondamentale entre l'application et le logiciel. Les applications sont destines tre utilises par un public de non spcialistes en informatique. On distingue les applications bancaires, de rservation d'avion, les jeux, les applications de gestion, de comptabilit, les applications du domaine industriel etc. Vouloir tout citer devient un dfi. Toutefois, le logiciel peut tre structur en deux catgories : le logiciel d'exploitation et le logiciel de dveloppement.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

TD systme dexploitation N1
1. Quelles sont les deux principales fonctions dun systme dexploitation ? 2. Que fait lUC quand il n ya aucun programme excuter ? 3. Quelle est la caractristique commune aux droutements, aux interruptions, aux appels au superviseur et aux appels aux sous-programmes ? 4. Quest ce qui diffrence les droutements, les interruptions et les appels au superviseur des appels aux sous-programmes ? 5. Parmi les instructions suivantes, lesquels doivent tre privilgies ( savoir lesquels ne peuvent tre excutes quen mode superviseur) ? a. b. c. d. e. changement des registres de gestion de mmoire criture du compteur de programmes lecture de lhorloge rglage de lhorloge changement de la priorit du processeur

6. Un systme dexploitation peut mettre en uvre un priphrique dE/S de mmoire. Les oprations dE/S du priphrique provoquent la lecture ou lcriture de lemplacement de mmoire correspondant. Quel est linconvnient de ce type de priphrique ? doit-il tre accessible aux utilisateurs ou simplement aux administrateurs systme ? 7. Les applications suivantes sont-elles des applications par lot ou des applications interactives ? a. b. traitement de texte production de relevs bancaires mensuels

c. calcul du nombre pi jusqu un million de chiffres aprs la virgule


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

8. Pourquoi un ordinateur doit-il dmarrer en mode superviseur lors de sa premire mise sous tension 9. Quelle est la taille maximale dun programme dinitialisation de niveau 1 au dbut du disque dur, sachant que le profil binaire valide est de 2 octets et la taille du secteur est de 512 octets ?

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

plan_ch2_m1

Architecture des systmes d'exploitation


Objectifs

1. 2. 3. 4.

Les tches dun systme dexploitation L'interface de programmation Modles de systmes d'exploitation TD2

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

1 - Les tches dun systme dexploitation


L'existence d'une multitude de systmes d'exploitation peut laisser penser qu'ils sont tous diffrents. Sachant que les systmes sont conus pour une gamme d'ordinateurs, il est plus judicieux de dire que les systmes d'exploitation sont diffrents d'une gamme d'ordinateurs l'autre. Ils se distinguent par l'interface qu'ils proposent et les algorithmes et stratgies qu'ils appliquent. Le principal objectif d'un systme est de grer les composants de l'ordinateur. On retrouve par consquent quatre tches qui correspondent la gestion du disque dur, de la mmoire centrale, du processeur et des priphriques.

Sommaire de la section : La gestion de la mmoire secondaire La gestion de la mmoire centrale La gestion du processeur La gestion des entres/sorties La gestion du rseau L'interface du systme d'exploitation

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.1 La gestion de la mmoire secondaire Le disque dur est un support auxiliaire qui a pour objectif de conserver de manire permanente les programmes excuts en mmoire centrale (celle-ci tant volatile). Les programmes sont stocks sous forme de fichiers sur le disque dur et organiss en rpertoires. La gestion de la mmoire secondaire inclut ainsi la gestion des fichiers c'est pour cela que l'on parle de SGF : Systme de Gestion des Fichiers. Le systme de fichiers doit offrir des primitives afin de crer, copier, lire, supprimer ces fichiers. Il doit galement grer l'espace occup par les fichiers ainsi que lespace libre. Pour finir il doit prendre en charge le partage et la protection des fichiers dans un environnement multi-utilisateurs.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.2 La gestion de la mmoire centrale La mmoire centrale est un espace de taille importante organis en mots (ensemble d'octets) et destin accueillir les donnes traiter par l'unit centrale. L'unit centrale charge les instructions excuter dans les registres du processeur partir d'adresses en mmoire centrale. De mme aprs excution, les rsultats sont placs en mmoire centrale. Il sagit ici de grer lallocation de cette mmoire aux programmes (attribution, libration de mmoire), les rgles dadressage et de veiller ce que les programmes en mmoire ne puissent pas interfrer entre eux. Le systme doit prendre en charge la mmoire virtuelle et offrir tous les mcanismes ncessaires sa mise en uvre. La mmoire virtuelle est une technique grce laquelle on peut considrer la mmoire centrale comme de taille infinie. En ralit, les programmes sont stocks sur disque dur et ils sont chargs en mmoire centrale au fur et mesure que cela est possible.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.3 La gestion du processeur La principale tche du systme d'exploitation concerne l'allocation du processeur aux processus. Il sagit de dcider quel processus sexcute un moment donn, quel moment interrompre le processus, quel sera le suivant, et de quoi il a besoin comme ressources pour son excution. Le systme d'exploitation doit grer deux types de processus : les siens et ceux des utilisateurs. Le systme d'exploitation gre galement les conflits dus la concurrence et leurs solutions, en effet les processus peuvent utiliser des variables en commun. Si un premier processus utilise une variable donne X et s'il la modifie et est ensuite interrompu, un second processus ayant besoin de la valeur de X doit y trouver la dernire valeur obtenue par le premier processus et non une valeur intermdiaire. Le systme doit par ailleurs offrir des primitives pour assurer la communication entre les processus ainsi que leur synchronisation. Pour finir le systme d'exploitation doit parer aux erreurs et effectuer la correction des situations d'interblocage entre processus en fournissant les mcanismes adquats.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.4 La gestion des entres/sorties L'existence d'entres-sorties dans un programme introduit de nombreux problmes dus notamment la diffrence de vitesse entre les priphriques et lunit centrale, le risque d'erreur de programmation qui peut entraner le blocage de l'unit centrale. Ainsi lors de la conception d'un systme d'exploitation, une attention particulire est accorde au entressorties et gnralement cela se traduit par la conception d'un systme d'entre-sortie qui permet de protger les entres-sorties et d'en interdire gnralement l'accs direct aux programmeurs (mais cela dpend du systme d'exploitation). De la sorte on vite de monopoliser lunit centrale pendant le droulement de lentre-sortie, et on assure un partage efficace des ressources entre les programmes.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.5 La gestion du rseau Les systmes d'exploitation modernes intgrent d'autres caractristiques qui trouvent leurs origines dans les volutions des systmes informatiques. L'interconnexion des machines par des rseaux locaux, constitue une des majeures volutions. Les systmes d'exploitation actuels prennent en charge cet aspect dans la mesure o ils offrent un partage des fichiers utilisateurs, une protection pour ces fichiers, l'identification des machines et des utilisateurs connects au rseau etc. Nous ne traiterons pas cette partie car cet cours tudie les systmes d'exploitation centraliss. Les lecteurs intresss peuvent consulter les rfrences bibliographiques suivantes (21), (24).

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.6 L'interface du systme d'exploitation L'interaction entre les systmes d'exploitation et l'utilisateur se fait gnralement de deux manires. La premire est simple d'utilisation, conviviale et est destine aux utilisateurs peu expriments ou bien ceux dsirant simplement interroger le systme. Le dialogue se fait travers des commandes telles que "dir" ou "ls" pour visualiser le contenu d'un rpertoireUn programme systme appel interprteur de commandes offre de nombreuses commandes outre "dir" ou "ls" afin d'interroger le systme. Rcemment, les systmes d'exploitation ont adopt les fentres multiples disposant de proprits graphiques, ce qui rend cet change encore plus convivial. En sus le systme d'exploitation offre une autre forme de dialogue adapte aux programmeurs. Elle consiste en une srie d'appels systme correspondant des fonctions qui permettent par exemple l'affichage du contenu d'un rpertoire, la cration d'un rpertoire, l'allocation d'une zone de la mmoire principale, la cration d'un processus.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

2 - L'interface de programmation

Sommaire de la section : Les appels systme Les modes superviseur et utilisateur Excution d'un appel systme

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

appel

2.1 Les appels systme Certains traitements ne peuvent pas tre excuts et contrls directement par un programme utilisateur car le systme ne le permet pas. Le programmeur doit faire explicitement appel aux services du systme d'exploitation pour accder certaines ressources. ces fins, le systme d'exploitation propose une interface de programmation, c'est--dire qu'il permet d'accder un certain nombre de fonctionnalits qu'il excute pour l'utilisateur. Les appels systme sont l'interface propose par le systme d'exploitation pour accder aux diffrentes ressources de la machine. Pour chaque composant de l'ordinateur le systme d'exploitation propose des appels systme. Seuls ces appels systmes peuvent tre utiliss, en effet le reste des primitives du systme est protg et leur usage direct est interdit aux utilisateurs. Les appels systme sont gnralement classs en quatre catgories : Gestion des processus Gestion des fichiers Communication et stockage d'informations Gestion des priphriques Par exemple, il est ncessaire de faire appel au systme d'exploitation pour crer un fichier sur le disque dur et cela via un appel systme comme createfile sous Windows 2000. Il est logique d'interdire au programme utilisateur d'effectuer luimme la cration pour les raisons suivantes : Le systme d'exploitation doit vrifier si l'utilisateur dispose du droit d'criture dans le rpertoire, autrement il refusera de crer le fichier. Il doit galement vrifier si un fichier du mme nom n'existe pas dj La cration du fichier ncessite l'attribution de quelques secteurs du disque dur pour l'enregistrement des donnes du fichier. L'utilisateur n'a aucune connaissance des zones libres
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

appel

du disque.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

mode

2.2 Les modes superviseur et utilisateur Afin de protger l'excution du systme d'exploitation de celles des programmes utilisateurs, les processeurs actuels proposent deux modes de fonctionnement : Le mode utilisateur dans lequel les programmes utilisateurs sont excuts. Un programme utilisateur qui perd le contrle peut anantir des donnes d'un autre programme ou mme nuire au systme d'exploitation. Dans ce mode certaines instructions sont interdites, de cette manire on contraint les programmes faire appel au systme d'exploitation pour certaines oprations. Le mode protg ou superviseur (galement appel mode noyau) est rserv l'excution des primitives du systme d'exploitation. Dans ce mode le processeur peut excuter toutes les instructions. Les appels systme sexcutent dans ce mode. En n'autorisant l'accs aux diffrentes ressources de la machine qu'aux programmes s'excutant en mode protg, le systme d'exploitation protge ses ressources et contraint les programmes utilisateurs faire appel lui pour accder aux ressources de la machine.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

mode

2.3 Excution d'un appel systme Lorsqu'un programme effectue un appel systme, son excution en mode utilisateur est interrompue et le systme prend le contrle en mode superviseur. En effet un appel systme provoque en fait une interruption logicielle et il suffit alors de programmer la machine pour que la routine correspondant l'interruption fasse partie du systme d'exploitation. Un appel systme est excut en mode noyau mme si le programme ayant demand son excution est excut en mode utilisateur.

Fig. 14. Excution d'un programme utilisateur par le systme d'exploitation Les appels systme sont des fonctions, leur excution donne en retour un rsultat (un descripteur de fichier pour un appel systme concernant les rpertoires et fichiers). Si l'appel choue, le rsultat vaut -1.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3

3 - Modles de systmes d'exploitation


Le systme d'exploitation se prsente sous la forme d'un ensemble de primitives, chacune mettant en oeuvre une partie du systme. Lorsqu'un utilisateur donne un ordre au systme d'exploitation, ce dernier doit appeler plusieurs primitives, chacune excutant la partie qui lui incombe. Prenons l'exemple d'une requte d'ouverture de fichier. Nous pouvons aisment imaginer les primitives invoques : la recherche de l'existence du fichier travers les informations maintenues par le systme d'exploitation, la vrification de l'existence du fichier en mmoire centrale, le chargement des blocs constituant le fichier partir du disque dur. On distingue plusieurs manires de structurer ces primitives. Par exemple, le systme d'exploitation peut autoriser que ces dernires s'appellent entre elles sans aucune restriction, ou bien il peut interdire des fonctions de gestion de la mmoire d'appeler des fonctions de gestion des entres/sorties. On distingue trois principales manires d'organiser les primitives du systme travers les diffrents types de systmes d'exploitation. La section suivante prsente les diffrents modles de systmes d'exploitation.

Sommaire de la section : Les systmes monolithiques Les systmes couches Le modle client-serveur

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_1

3.1 Les systmes monolithiques Cette approche est rpute pour son dsordre, car elle ne possde pas de structure bien dfinie. Le terme monolithique dsigne un seul niveau. Le systme d'exploitation est constitu d'un gros noyau et de programmes systme, une collection de fonctions chacune pouvant appeler l'autre tout moment. Le noyau s'excute en mode superviseur et les programmes en mode utilisateur. On peut illustrer le systme d'exploitation (voir la figure n 15) comme un programme principal qui appelle plusieurs procdures chacune correspondant un appel systme, et qui utilise des procdures utilitaires pour assister ces procdures.

Fig. 15. Un systme d'exploitation structure monolithique Ainsi, n'importe quelle procdure du noyau peut en appeler n'importe quelle autre et l'implantation de nouveaux services est trs dlicate : une erreur un endroit du noyau peut entraner un dysfonctionnement un autre endroit qui, a priori, n'a rien voir avec le premier. Le systme MS-DOS appartient cette catgorie, en effet, il a t conu par des personnes qui ne se doutaient pas du succs qu'il aurait. Le fait que les procdures ne soient pas protges les unes des autres explique les blocages frquents qui peuvent avoir lieu avec ce systme. Les premires versions de Unix utilisaient un modle structur en noyau et en modules s'excutant en mode utilisateur. Le noyau quant lui tait structure monolithique. Toutes les fonctionnalits (gestion du matriel, des processus, gestion du rseau et des systmes de fichiers) taient regroupes dans un seul module volumineux. Linux galement possde un noyau monolithique. Il prsente toutefois l'avantage d'tre modulaire savoir que le noyau est fragment en plusieurs modules ce qui l'avantage de regrouper ensemble les procdures destines la gestion d'un mme composant.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

3.2 Les systmes couches Un systme est structur en couches lorsqu'il est compos de plusieurs niveaux, chacun s'appuyant sur celui qui lui est immdiatement infrieur, et que l'intrieur de chaque niveau ou couche est masqu par rapport aux autres. Le masquage des informations est important dans la mesure o il protge les couches entre elles dans un premier temps et dans un second temps donne une libert aux programmeurs ; on parle alors de systme modulaire. Chaque couche est implmente en appelant les primitives offertes par la couche immdiatement infrieure. L'intrieur de ces primitives, savoir les structures de donnes, le code et les appels que cette couche fait, est masqu.

Fig. 16. Structure d'un systme d'exploitation en couches Cette approche prsente toutefois divers inconvnients qui ont fait qu'elle a t dlaisse par la suite. Le principal inconvnient est qu'un appel systme est transmis de couche en couche avant d'tre trait, ce qui ralentit son traitement. L'autre difficult est qu'il faut dfinir de manire adquate les couches et les frontires entre elles. On peut effectuer un dcoupage logique, par exemple, une couche implmente la gestion de la mmoire, une autre
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

l'ordonnancement des processus, etc. Le systme THE dvelopp par E. W Dijskstra et ses lves aux Pays-bas, est un des premiers systmes couches. Il porte le nom de l'institut o il a t dvelopp Technische Hogescholl d'Eindhoven. MULTICS, anctre d'Unix, tait bas sur la structure en couches, et tait compos de 6 couches concentriques.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

3.3 Le modle client-serveur Il est issu d'une tendance des systmes d'exploitation actuels rduire le systme un noyau minimal. Pour viter les problmes poss par les gros noyaux ci-dessus prsents, une solution consiste rduire le noyau quelques procdures essentielles (ordonnancement des tches, primitives d'entres/sortie) et reporter tous les autres services dans des programmes utilisateurs. Lorsque le noyau est extrmement rduit, on le qualifie de micro noyau. Dans ce cas, le micro noyau est conu de manire compltement diffrente. En effet, tout ce qui sort du cadre strict de la gestion de matriel, de processus, de mmoire et de la communication inter processus ne fait plus partie du micro noyau. L'avantage qui en dcoule est naturellement une modularit extrme. Il est alors possible d'implmenter toutes les autres fonctionnalits en dehors du noyau, ce qui a pour effet de les placer dans le mode utilisateur et de rduire les blocages. Dans le modle client-serveur, une grande partie des programmes du systme est dplace dans une couche qui repose sur le micro-noyau et qui se prsente sous l'aspect de processus clients et de processus serveurs. Tous les appels systme ou presque sont dsormais des processus clients. Le noyau gre la communication entre les processus clients et serveurs. Par exemple pour crer un fichier un processus client va envoyer un message au processus serveur qui se trouve tre le systme de gestion des fichiers.

Fig. 17. Exemple de modle client/serveur Ce modle rend les systmes portables. Il a permis la naissance des systmes distribus o le processus ne se soucie pas de savoir si sa requte (son service) sera traite localement ou non. Autre point positif dans ce modle, un dysfonctionnement dans l'un des modules n'affecte pas les autres. Les systmes Windows NT et 2000 appliquent le modle client-serveur tout en ayant un noyau structur en couches. Le noyau (appel Excutif par Microsoft) contient un gestionnaire d'objet, un moniteur de rfrences de scurit, un gestionnaire de processus, une unit de gestion des appels de procdures locales, un gestionnaire de mmoire, un gestionnaire d'entres/sorties et une autre partie situe au niveau le plus bas et appele noyau par Microsoft.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

Certaines versions actuelles de Unix (compatible POSIX et X/OPEN) ont une architecture en micro-noyau qui implmente les fonctions de base, base sur le micro-noyau Mach. Si l'on veut rsumer schmatiquement l'volution des diffrents systmes du point de vue de leur architecture de conception, nous pouvons reprsenter le modle monolithique comme un gros bloc, le modle couches comme un bloc dcompos en sous blocs. Quant au modle client serveur, il est obtenu en retournant de 90 le bloc couches et en sparant les appels systmes du reste du systme. Ils peuvent ainsi tre plac sur des machines diffrentes, la communication se faisant travers le noyau. Ce dernier peut avoir une structure monolithique ou couches.

Figure 18 : volution des systmes d'exploitation

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

TD systme dexploitation N2
1. Sur un systme dot de n UC, quel est le nombre maximum de processus pouvant se trouver dans les tats prt, excution et bloqu ? 2. Sur un systme dot de n UC, quel est le nombre minimum de processus pouvant se trouver dans les tats prt, excution et bloqu ? 3. Quel est le principal avantage de la multiprogrammation ? 4. Quel est le principal inconvnient qui dcoule dun abus de la multiprogrammation ? 5. Le pourcentage dattente des E/S, w , dun processus est le pourcentage de temps pendant le quel ce processus attend lachvement des E/S, lors de lexcution dans un environnement de monoprogrammation. Sur un systme qui a recours lordonnancement tourniquet avec n processus, tous ayant le mme pourcentage dattente des E/S, quel est le pourcentage de temps dinactivit de lUC en termes de w . 6. Pour chacune des transitions suivantes entre les tats des processus, indiquez si la transition est possible. Si cest le cas, donnez un exemple dun lment qui pourrait en tre lorigine. a. En excution prt b. En excution bloqu c. En excution permut-bloqu d. Bloqu En excution e. En excution termin 7. soit un systme avec n processus, combien existe-t-il de manires dordonnancer ces processus. 8. sur un systme recourant lordonnancement tourniquet, quelle serait la consquence de lintroduction dun mme processus deux reprises dans la liste des processus 9. avec les processus du tableau ci-dessous dessinez un schma illustrant leurs excutions laide de : f. lalgorithme FCFS

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

g. #9; lalgorithme SJF h. lalgorithme SRT i. lalgorithme tourniquet (quantum = 2) j. lalgorithme tourniquet (quantum = 1) Processus Temps darrive Temps de traitement

0,000

1,001

4,001

6,001

10. pour les processus de lexercice 9, quel est le temps moyen de rotation (arrondi au centime) si lon utilise k. #9; lalgorithme FCFS l. #9; lalgorithme SJF m. lalgorithme SRT n. lalgorithme tourniquet (quantum = 2) o. lalgorithme tourniquet (quantum = 1) 11. pour les processus de lexercice 9, quel est le temps dattente de chaque processus (arrondi au centime) si lon utilise p. #9; lalgorithme FCFS
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

q. #9; lalgorithme SJF r. lalgorithme SRT s. lalgorithme tourniquet (quantum = 2) t. lalgorithme tourniquet (quantum = 1) 12. pour les processus de lexercice 9, quel est le dbit si lon utilise u. #9; lalgorithme FCFS v. #9; lalgorithme SJF w. lalgorithme SRT x. lalgorithme tourniquet (quantum = 2) y. lalgorithme tourniquet (quantum = 1) 13. avec les processus du tableau ci-dessous dessinez un schma illustrant leurs excutions utilisant lordonnancement de priorit. Un nombre de priorit lev correspond une priorit plus importante : z. premptif aa. Non premptif Processus Date darrive Cycle Priorit

0,000

1,001

2,001

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

3,001

14. pour les processus de lexercice 13, quel est le temps de rotation (arrondi au centime) de chaque processus si lon utilise bb. premptif cc. Non premptif 15. pour les processus de lexercice 13, quel est le dbit moyen ? 16. Simulez l'excution, avec un ordonnancement "le plus court d'abord", les 5 travaux (nots de A E) qui ont des temps d'excution respectifs de 2, 4, 1, 1 et 1 unit(s) et qui sont soumis aux instants 0, 0, 3, 3 et 3. Calculez l'attente moyenne dans ce contexte, puis dans un contexte o tous les travaux sont soumis en mme temps. 17. Cinq travaux, nots de A E, demandent tre excuts au mme instant. Leurs temps d'excution respectifs sont estims 10, 6, 2, 4 et 8 minutes. Leurs priorits, dtermines de manire externe, sont respectivement 3, 5, 2, 1 et 4. Dterminez le temps moyen d'attente pour chacun des algorithmes d'ordonnancement suivants : "tourniquet", "avec priorits", "premier arriv premier servi", "le plus court d'abord". Pour le premier mcanisme d'ordonnancement, on considre que le SE est multiprogramm et que le temps processeur est quitablement rparti entre les diffrents travaux. Pour les autres, on suppose que chaque travail est excut jusqu' ce qu'il se termine. Dans tous les cas, les travaux n'effectuent pas d'E/S. 18. sur un systme utilisant des files multiniveaux retour, un processus entirement tributaire lUC a besoin de 14 secondes pour sexcuter. Si la premire file utilise un quantum de temps 2 et qu chaque niveau, le quantum de temps augmente de 5 unit. Combien de fois sera interrompu le travail et dans quelle file se trouvera-t-il lorsquil sachvera ? 19. sur un systme Unix , un appel systme permet daugmenter ou de rduire la valeur de la priorit associe un processus. Aprs laugmentation de la valeur de la priorit des processus, on observe que le systme semble sexcuter plus lentement pourquoi ? 20. le choix dun algorithme dordonnancement non premptif est-il un choix judicieux pour
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

un systme interactif. Expliquez brivement pourquoi. 21. A quel degr les algorithmes suivants favorisent-ils les processus tributaires de lUC ? dd. FCFS ee. SJF ff. #9; SRT gg. RR hh. MFQ

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

plan_ch3_m1

La gestion des processus


Objectifs

1. 2. 3. 4. 5. 6. 7.

Introduction aux processus Description d'un processus Ordonnancement de processus La synchronisation de processus : le problme des accs concurrents Les interblocages La communication inter-processus TD3

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

3 - Introduction aux processus

Un processus est l'entit cre par le systme d'exploitation pour l'excution d'un programme. Rappels sur la multiprogrammation La multiprogrammation permet au processeur de se partager entre tous les processus actifs. Ainsi, quand le processeur atteint une instruction d'entre-sortie (les priphriques ayant une vitesse de transfert et d'excution bien infrieure celle du processeur), il interrompt le programme en cours sitt les paramtres de lentre/sortie transmis au priphrique et passe l'excution d'un autre programme. La multiprogrammation ncessite le partage du processeur entre les programmes mais galement le partage de toutes les ressources disponibles de lordinateur (mmoires, priphriques). Un programme a une existence statique, il est stock sur le disque puis charg en mmoire afin dtre excut. Le processus en revanche a un contact direct avec le processeur en effet c'est l'entit excute par le processeur. Le processus est cr par le systme d'exploitation ou l'utilisateur au moment o l'excution du programme doit commencer, comme illustr travers la figure n 19. Une fois le processus termin, il est supprim par le systme d'exploitation. Toutefois un seul programme peut ncessiter plusieurs processus pour son excution.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

Fig. 19. Un programme et son processus La gestion des processus consiste dcider quel processus sexcute un moment donn, quel moment interrompre le processus, quel sera le suivant, et de quelles ressources il a besoin pour son excution. Le systme d'exploitation manipule deux types de processus : ceux du systme et ceux des utilisateurs. Les fonctionnalits du systme dexploitation en matire de gestion de processus sont : La cration, suppression et interruption de processus L'ordonnancement des processus afin de dcider d'un ordre d'excution quitable entre les utilisateurs tout en privilgiant les processus du systme. La synchronisation entre les processus ainsi que la communication La gestion des conflits d'accs aux ressources partages La protection des processus d'un utilisateur contre les actions d'un autre utilisateur.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

2 - Description d'un processus

Sommaire de la section : Etats dun processus Structure de l'espace mmoire d'un processus Structures de donnes pour la gestion des processus

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_1

2.1 Etats d'un processus Un processus est une suite d'instructions, il a des donnes en entre et en sortie. Du fait qu'il s'excute et qu'il peut tre interrompu, il est dcrit par un tat courant (en attente, suspendu, termin.) Un processus peut passer par plusieurs tats avant de finir son excution. On distingue les quatre tats suivants : En excution : le processus est en cours d'excution au niveau du processeur prt : le processus est prt et pourra s'excuter ds qu'il sera slectionn par le systme d'exploitation. En attente : le processus est en attente ou bloqu car il attend des donnes ou la libration d'une ressource afin de poursuivre son excution. Pendant ce temps le processeur est attribu un autre processus. Termin : le processus a termin son excution. Plusieurs processus peuvent se trouver dans l'tat prt ou en attente, le systme d'exploitation les place alors dans une file d'attente (une par tat) au niveau de laquelle ils vont attendre leur tour. Le systme d'exploitation slectionne toujours le processus en tte de la file et l'extrait. C'est le principe des files d'attente en algorithmique: on rejoint une file d'attente par la queue et on la quitte par la tte comme toute file d'attente au niveau d'un guichet. Six transitions peuvent avoir lieu entre ces tats, elles sont illustres dans la figure n 20 : La transition 1 a lieu quand le processus ne peut plus poursuivre son excution car il a besoin d'une ressource non disponible par exemple : il passe l'tat en attente. La transition 2 a lieu quand le processus a termin le temps imparti par le systme d'exploitation pour son excution. Un processus ne s'excute pas forcment jusqu' la fin car le systme d'exploitation a d'autres processus excuter. Cette transition a galement lieu si un processus plus urgent doit prendre la main (bien entendu parmi ces processus urgents, se
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_1

trouvent tous les processus du systme d'exploitation). Nous verrons plus loin dans ce chapitre que quand le systme ne distingue pas entre les processus en utilisant une priorit, ils les excute de manire quitable en allouant chacun la mme dure appele quantum. Nous rappelons que l'interruption d'un processus parce que sa tranche de temps s'est coule, a t introduite par la notion de temps partag. La transition 3 signale que le systme d'exploitation a slectionn un processus pour l'excuter. La transition 4 indique que le processus a fini son excution. La transition 5 a lieu sitt que le processus n'a plus de raison d'tre bloqu; par exemple les donnes deviennent disponibles. Le processus passe l'tat prt. La transition 6 a lieu quand l'vnement attendu par le processus ne peut se raliser. Il est donc inutile de faire patienter davantage ce processus, autant le terminer. Un cas d'interblocage en est une parfaite illustration.

Fig. 20. Les diffrents tats d'un processus Lorsqu'un processus est interrompu suite l'excution d'une instruction d'entre-sortie, expiration du quantum ou excution d'un processus plus urgent, on parle d'interruption logicielle. 2.1.1 Fonctionnement d'une interruption logicielle
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_1

Nous rappelons qu'une interruption est provoque par un signal gnr sur occurrence d'un vnement qui peut tre interne (li au processus) ou externe et indpendant. Lorsqu'une interruption est gnre, le processus en cours d'excution est interrompu. Il quitte le processeur et un gestionnaire d'interruption est charg dans les registres du processeur et s'excute pour traiter l'interruption. Dans un premier temps il est ncessaire de connatre quelle interruption a eu lieu. Une fois le signal de l'interruption reconnu, le gestionnaire d'interruption accde une table appele table des vecteurs d'interruptions et y recherche l'adresse du programme associ excuter. Ce programme est appel routine d'interruption. Une fois l'interruption traite, le systme charge un autre processus partir de la file d'attente et l'excute.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_2

2.2 Structure de l'espace mmoire d'un processus L'espace mmoire utilis par un processus est divis en plusieurs zones. On trouve en particulier le segment de code, le segment de donnes, la pile et le tas. Le segment de code Le segment de code reprsente le programme excuter. Il est toujours plac dans des zones fixes de la mmoire, c'est--dire au dbut de la zone disponible (puisqu'il n'est pas ammen augmenter de taille durant l'excution du processus). Le segment de donnes Au dessus du segment de code se trouve le segment de donnes. Ce segment est traditionnellement compos d'un segment de donnes initialises (les variables globales et statiques) et d'un segment de donnes non initialises qui est cr dynamiquement. Ce segment est amen crotre dcroitre suite l'allocation dynamique de variables. La pile Pour stocker les donnes obtenues en cours d'excution, le systme utilise un segment pile. Ce segment est gnralement situ en haut de l'espace d'adressage et il crot vers les adresses basses (pile renverse) On utilise souvent les piles lors des appels de fonction. Le systme empile le nom de la fonction et les paramtres passer la fonction puis les diffrentes variables locales de la fonction. Une fois la fonction termine le systme dpile toutes les donnes qu'il a places pour l'appel de la fonction. Il a nouveau accs aux donnes qu'il avait stockes avant l'appel de la fonction et peut poursuivre l'excution du programme.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_3

2.3 Structures de donnes pour la gestion des processus Les systmes d'exploitation manipulent deux structures de donnes principales pour grer les processus crs sur une machine : la table des processus et le bloc de contexte d'un processus. 2.3.1 Contexte d'un processus

Le contexte d'un processus galement appel bloc de contexte ou de contrle est une structure de donnes qui dcrit un processus en cours d'excution. Ce bloc est cr au mme moment que le processus et il est mis jour en grande partie lors de l'interruption du processus afin de pouvoir reprendre l'excution du processus ultrieurement. Le contexte d'un processus comporte les informations suivantes : Le compteur ordinal : adresse de la prochaine instruction excuter par le processeur Les contenus des registres gnraux : ils contiennent les rsultats calculs par le processus Les registres qui dcrivent l'espace qu'il occupe en mmoire centrale (l'adresse de dbut et de fin par exemple) Le registre variable d'tat qui indique l'tat du processus D'autres informations telles que la valeur de l'horloge, la priorit du processus,

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_3

Fig. 21. Schma d'une commutation de contexte L'opration qui consiste sauvegarder le contexte d'un processus et copier le contexte d'un autre processus dans l'unit centrale s'appelle changement ou commutation de contexte (context switching en anglais). La dure d'une commutation de contexte varie d'un constructeur un autre, elle reste toutefois trs faible. 2.3.2 La table des processus

Le systme d'exploitation manipule une structure de donnes qui lui permet de conserver d'autres informations sur les processus : la table des processus. La table des processus contient toutes les informations indispensables au systme d'exploitation pour assurer une gestion cohrente des processus. Elle est stocke dans l'espace mmoire du systme d'exploitation, ce qui signifie que les processus ne peuvent pas y accder. Elle comporte une entre par processus qui rassemble toutes les informations concernant un processus (mme si le processus n'est pas en mmoire), aussi bien celles concernant son excution au niveau du processeur mais galement des informations sur les fichiers qu'il
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec2_3

manipule (ncessaires au SGF) ainsi que des informations sur son occupation mmoire. Quant aux informations sur l'occupation mmoire on y trouve par exemple des pointeurs sur les diffrents segments code, donnes et pile. Pour limiter la taille de la table, de nombreux systmes reportent toutes les informations qui ne sont pas absolument indispensables la gestion des processus dans l'espace mmoire de ceuxci, dans le bloc de contrle.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3

3 - Ordonnancement de processus

Lordonnancement de processus sarticule autour de 2 composantes : La file dattente des processus : elle regroupe les descripteurs des processus prts. Cest partir de cette file que lordonnanceur choisit le processus excuter. Lalgorithme dordonnancement appliquer : il organise les descripteurs de processus dans un ordre qui reflte la stratgie applique. L'ordonnancement des processus (on parle galement dordonnancement de lunit centrale) permet d'optimiser le temps de rponse : moyenne des temps dexcution. Cela est perceptible essentiellement au niveau des dlais d'obtention des rsultats. Si le systme d'exploitation n'applique aucun algorithme d'ordonnancement, on se retrouve avec un systme monoprocesseur et les processus courts sont pnaliss par l'excution de processus assez longs.

Sommaire de la section : L'ordonnanceur Algorithmes dordonnancement Lordonnancement FIFO : First In First Out Lordonnancement circulaire : le tourniquet (Round Robin) Lordonnancement avec priorits Lordonnancement selon le plus court d'abord (SJF Shortest Job first) Simulez votre exemple

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_1

3.1 L'ordonnanceur Le systme d'exploitation applique un programme pour grer l'ordre d'excution des processus, appel scheduler, dispatcher ou ordonnanceur. L'ordonnanceur dispose de plusieurs algorithmes d'ordonnancement qui correspondent diffrentes politiques d'organisation des processus : quitable, avec priorit, plus court d'abord. Il agit sur la file des processus prts et l'organise en appliquant un algorithme donn. Il faut souligner ce stade que l'ordonnanceur ne change pas de politique d'ordonnancement. Chaque systme d'exploitation applique un algorithme choisi par les concepteurs.

Fig. 22. Le fonctionnement de l'ordonnanceur L'ordonnanceur est sollicit la fin de l'excution de chaque processus. Il s'excute lui-mme et slectionne un processus pour l'excution. Gnralement il slectionne celui qui est en tte de la file car les processus sont dj dans l'ordre. En effet, chaque cration de processus, le processus cr doit rejoindre la file des processus prts et c'est lors de son insertion que l'ordonnanceur applique son algorithme.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

3.2 Algorithmes dordonnancement Actuellement, on distingue de nombreuses approches pour lordonnancement, les plus connues sont : lordonnancement circulaire (tourniquet), priorit, plus court dabord. Il existe par ailleurs des algorithmes spcifiques. Soient les processus suivants dcrits par une dure d'excution estime en millisecondes.
Processus P1 P2 P3 P4 P5 Dure d'excution 3 5 2 6 4

Table 1. 5 processus et leurs temps d'excution

Pour chacun des algorithmes suivants : FIFO, tourniquet, priorit, nous calculons le temps de rponse et le temps d'attente. Le temps de rponse est la moyenne des dates de fin d'excution. Le temps d'attente est la moyenne des dlais d'attente pour commencer une excution.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

3.3 L'ordonnancement FIFO : First In First Out La politique FIFO agit de la manire suivante : le premier processus arriv est le premier servi. Il n'y a aucun effort faire de la part de l'ordonnanceur, il suffit d'insrer le processus la fin de la file. La figure n 23 illustre l'ordonnancement des 5 processus de la table 1 avec FIFO :

Fig. 23. Ordonnancement avec FIFO Temps de rponse TR = (3+8+10+16+20)/5 = 57/5 = 11.4 ms Temps d'attente TA = (3+8+10+16)/5 = 37/5 = 7.4 ms Appliquer la politique FIFO revient faire de la monoprogrammation en quelque sorte, pourtant cette politique est souvent retenue du fait de sa simplicit et de sa faible consommation en temps processeur. ---> Visualisez un exemple d'ordonnancement avec l'algorithme FIFO

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_4

3.4 L'ordonnancement circulaire : le tourniquet (Round Robin) Le premier processus de la file est excut durant une priode prcise fixe par le systme, appele quantum. Une fois le processeur allou, ce processus s'excute jusqu' ce que sa tranche de temps soit coule ou qu'il se bloque. Il est alors interrompu et mis la fin de la file d'attente (fonctionnement circulaire). L'ordonnanceur retire le processus suivant et l'excute lui aussi durant la mme priode. Les processus sont placs dans la file selon leur ordre d'arrive. Le tourniquet est une technique des systmes temps partag puisque chaque processus s'excute pendant la mme dure chaque fois. Le quantum de de l'ordre de quelques dizaines de millisecondes

Fig. 24. Ordonnancement circulaire Temps de rponse TR = (6+11+17+18+20)/5 = 72/5 = 14.4 ms Temps d'attente TA = ((8)+(2+7+4)+(4)+(6+5+3)+(8+5))/5 = 52/5 = 10.4 ms

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

3.5 L'ordonnancement avec priorits Cette stratgie permet de distinguer entre les processus sur la base de leurs priorits. Si l'utilisateur ou le systme d'exploitation exprime une priorit pour les processus (une priorit est un nombre) il faut que le processus de plus haute priorit soit excut le premier. L'algorithme d'ordonnancement avec priorit classe les processus avec un ordre dcroissant de leur priorit. Chaque processus s'excute jusqu' la fin sinon la priorit n'exprime aucune urgence. A signaler que les processus du systme d'exploitation ont la priorit la plus haute. Si les processus ci-dessus prsents avaient respectivement les priorits 1 3 2 5 4, ils seraient excuts selon l'ordre suivant :

Fig. 25. Ordonnancement bas sur la priorit Temps de rponse TR = (6+10+15+17+20)/5 = 68/5 = 13.6 ms Temps d'attente TA = (6+10+15+17)/5 = 48/5 = 9.6 ms Rsolution du problme de la famine Lorsque plusieurs processus ont la mme priorit, le systme d'exploitation affecte une file d'attente pour chaque priorit. Au sein d'une mme file, il n'est pas logique d'excuter un processus en entier, autrement il serait prioritaire par rapport aux autres de cette mme file. Souvent l'algorithme du tourniquet est appliqu au niveau de chaque file. Le problme de la famine peut se poser s'il existe plusieurs processus de haute priorit. Ils monopoliseront l'unit centrale et la file des processus de faible priorit ne sera servie que trs rarement. Parmi les solutions qui existent, la plupart dcrmentent la priorit du processus o aprs
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

excution d'un quantum ou chaque impulsion d'horloge. Chaque processus est excut durant un quantum, ensuite sa priorit est dcrmente de 1, et il rejoint la file de priorit infrieure par la queue.
P7

Fig. 26. Ordonnancement avec files multiples

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_6

3.6 L'ordonnancement selon le plus court d'abord (SJF Shortest Job First) Cette politique compare les processus sur la base de leur dure d'excution et excute le plus court en premier. Le SJF est appliqu dans les systmes qui rgissent les processus industriels o une chane d'excution doit se terminer le plus rapidement possible.

Fig. 27. Ordonnancement selon le plus court d'abord Temps de rponse TR = (2+5+9+14+20)/5 = 50/5 = 10 millisecondes Temps d'attente TA = (2+5+9+14)/5 = 30/5 = 6 millisecondes ---> Visualisez un exemple d'ordonnancement avec l'algorithme SJF

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_7

3.7 Simulez votre exemple selon le plus court d'abord (SJF Shortest Job First) ---> Vous pouvez simuler votre propre exemple d'ordonnancement avec l'algorithme de votre choix ICI

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

4 - La synchronisation de processus : le problme des accs concurrents


Un accs concurrent est une situation dans laquelle deux processus partagent une ressource (logicielle ou matrielle). Si la ressource est accessible en mode partag, gnralement c'est le cas des accs en lecture, les deux processus s'excutent sans aucun problme. L o les choses se corsent c'est quand il y a un accs exclusif la ressource et c'est souvent le cas des accs en criture. Voyons prsent une situation daccs concurrent afin d'expliciter le problme qui se pose : Soit deux processus P1 et P2, chacun ayant un fichier imprimer. Soit une imprimante gre par un processus appel dmon qui vrifie priodiquement sil y a des fichiers imprimer. Le dmon inspecte une variable de type tableau qui contient les fichiers imprimer et 2 variables entires prochain et libre. La variable prochain indique le numro du prochain fichier dans le rpertoire et la variable libre celle du premier emplacement libre o un processus peut dposer un fichier. P1 lit la variable libre et y trouve la valeur 5 et est ensuite interrompu. P2 prend la main et let la valeur de libre qui est toujours 5 et met son fichier cet emplacement ensuite il incrmente libre qui passe 6. Quand P1 reprend la main, dans ses registres il trouve la valeur de libre 5, il met son fichier lemplacement 5 et crase celui de P2 qui ne sera jamais imprim. L'origine du problme vient de l'interruption de P1 et du fait qu'il ne rexcute pas l'instruction au niveau de laquelle il a t interrompu, en effet une instruction interrompue est reprise et continue sur la base des valeurs des registres sauvegards dans le bloc de contexte du processus. On pourrait penser qu'une solution a ce problme est d'empcher les interruptions d'avoir lieu. C'est d'ailleurs le cas et nous l'tudierons plus loin dans ce chapitre lorsque nous prsenterons les diffrentes solutions ce problme.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

Sommaire de la section : Notion de section critique et dexclusion mutuelle Solutions logicielles au problme des accs concurrents Solutions matrielles au problme des accs concurrents

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

4.1 Notion de section critique et d'exclusion mutuelle Une section critique est un ensemble d'instructions comportant un conflit d'accs. Ces instructions utilisent des variables ou des ressources partages par d'autres processus. On rentre en section critique, par une section d'entre qui permet de mettre en ouvre une condition et on la quitte par une section de sortie. Si cette section est excute en entier, les problmes sont rsolus. Or, un processus peut tre interrompu tout moment notamment au milieu de sa section critique. Si une ressource a t accde par un premier processus et qu'il est interrompu, aucun autre processus ne peut y accder tant qu'elle n'a pas t libre par le premier processus. Il faut donc attendre que le processus reprenne son excution et qu'il libre la ressource et quitte la section critique. On parle d'exclusion mutuelle quand un seul processus la fois a le droit de rentrer en section critique (la condition d'entre ne permet qu' un seul processus de passer). La figure n 28 qui suit, schmatise l'excution de trois processus par l'algorithme du tourniquet en tenant compte des diffrentes sections critiques. La variable x, y et z sont partages par les deux premiers processus. La variable x est utilise par le 3me processus en lecture. C'est une section critique car elle ne doit pas tre modifie en mme temps par les autres processus.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

4.2 Solutions logicielles au problme des accs concurrents les smaphores et les moniteurs sont les deux principales solutions utilises pour rsoudre le problme des accs concurrents : les moniteurs sont relativement difficiles manipuler pour un dbutant. 4.2.1 Les Smaphores

Un smaphore est un objet du langage de programmation ou du systme, de type entier. Sa valeur initiale est le nombre de processus autoriss rentrer en section critique. On distingue des smaphores binaires qui peuvent prendre les valeurs 0 ou 1 et les smaphores n-aires. Les smaphores binaires sont utiliss pour raliser de l'exclusion mutuelle. Quant aux smaphores n-aires, ils ont pour rle de spcifier un nombre maximal d'accs en lecture une ressource. Conjointement au smaphore, deux primitives indivisibles P et V, mettent en uvre les sections d'entre et de sortie. Elles permettent de dcrmenter et d'incrmenter le smaphore. Leur origine provient des termes hollandais Proberen et Verhogen en effet l'inventeur des smaphores, Mr E. W. Dijkstra, est hollandais. Certains emploient une mtaphore pour ces primitives, ainsi P signifierait Puis-je et V Vas-y. P(S) permet de prendre le smaphore et quivaut excuter les instructions suivantes :

Si S > 0

Alors s = s - 1

Sinon sendormir Finsi Si le smaphore est binaire, en linitialisant 1 on ne permet quune seule excution de la section critique la fois. V(S) permet de librer le smaphore et un processus bloqu sil y en a

Si un processus est bloqu sur S


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

Alors le librer Sinon s =s+1 Finsi Le fait de vrifier sil existe des processus en attente du smaphore avant dincrmenter sa valeur permet de respecter lordre dans lequel les processus se sont bloqus au niveau de laccs cette section critique. Un processus a typiquement les instructions suivantes :

faire

Instructions P(S) Section critique V(S) Instructions Fin Un processus bloqu est plac dans la file des processus en attente, une fois libr il passe dans celle des prts. 4.2.2 Le problme du producteur/consommateur rsolu avec les smaphores

Le producteur et le consommateur sont deux processus cycliques qui manipulent un tampon. Celui-ci consiste en une zone de mmoire organise comme un ensemble de cases pouvant accueillir plusieurs objets raison de un par case.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

Producteur ... produire(objet); dposer(case, objet); ...

Consommateur ... retirer(case, objet); consommer(objet); ...

La solution une case tant triviale, nous dtaillons la solution N cases. La gestion du tampon implique que: si le tampon est vide, le consommateur ne peut rien retirer si le tampon est plein, le producteur ne peut rien dposer il faut empcher que le dpt et le retrait se chevauchent. Sachant qu'il faut bloquer les processus tantt sur un tampon vide, tantt sur un tampon plein, ce problme ncessite deux smaphores n-aires. On utilise ainsi, pleins et vides initialiss 0 et n. Pleins indique le nombre de cases pleines et vides celui des cases vides. Avant d'accder au tampon pour y dposer ou retirer un objet, il faut galement disposer d'un accs exclusif. Un troisime smaphore exmut est utilis pour l'accs au tampon. Les indices tte et queue sont manipuls respectivement lors du dpt et du retrait d'objets. Ils sont protgs grce au smaphore d'exclusion mutuelle exmut et ne sont pas traits sparment pour des raisons de simplification. Le programme crit en langage C suivant, prsente une solution ce problme. Les appels P et V sont remplacs par les appels systme Down et Up en langage C :

#define N 20 typedef int semaphore ; semaphore exmut = 1 ; semaphore vides = N ;


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

semaphore pleins = 0 ;

void producteur(void) { int objet ; while (true) { produire_objet(&objet) ; down(&vides) ; /* dcrmenter le nombre de cases vides */ down(&exmut) ; /* pour ne pas accder au tampon en mme temps */ dposer_objet(objet) ; up(&exmut) ; up(&pleins) ; /* librer l'accs au tampon */ /* incrmenter le nombre de cases pleines */ } }
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

void consommateur(void) { int objet ;

while (true) { down(&pleins) ; /* dcrmenter le nombre de cases pleines */ down(&exmut) ; /* pour ne pas accder au tampon en mme temps */ retirer_objet(&objet) ; up(&exmut) ; up(&vides) ; /* librer le smaphore */ /* incrmente le nombre de cases vides */ Consommer_objet(objet) ; } } Lordre des P(S) dans chacun des programmes doit tre ralis avec prudence. Prenons le cas du producteur, il peut se bloquer avec une mmoire tampon pleine. L'instruction down (&vides) sera bloquante puisque vides vaut 0. Si le processus prend le smaphore exmut avant
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

de se bloquer, le consommateur ne pourra pas accder au tampon et le nombre de vides ne pourra jamais tre incrment. Les smaphores vides et pleins assurent que le producteur sarrte quand la zone tampon est pleine et que le consommateur s'arrte quand elle est vide : ce nest pas de lexclusion mutuelle. Celle-ci est ralise avec le smaphore exmut. Une dernire remarque pour expliquer pourquoi l'objet est produit et consomm en dehors de la section critique. Durant toute la priode o un smaphore est pris, on pnalise les autres processus, il vaut mieux courter la section critique en retirant les instructions qui ne posent pas de problme d'accs concurrent. La programmation avec les smaphores est risque. Il suffit d'inverser deux appels conscutifs de P pour bloquer le programme jamais. On distingue dautres solutions telles que les moniteurs. 4.2.3 Les moniteurs

Un moniteur est un ensemble de procdures, de variables et de structures de donnes regroupes dans un module spcial et gres par le compilateur (Certains compilateurs ne grent pas les moniteurs. Ils sont ainsi incapables de distinguer les procdures du moniteur des autres procdures). Dsormais, il suffit au programmeur de reporter la section critique dans des procdures du moniteur. Une fois les procdures dfinies, elles pourront tre appeles par les processus sans quil nait connaissance ni accs la structure interne des procdures. Le compilateur vrifie avant dexcuter le processus si un autre processus est actif dans le moniteur. Etant donn que cette vrification est reporte sur le compilateur, on carte le risque derreur engendr par linversion des P et V pour les smaphores. Les moniteurs utilisent deux primitives Wait et Signal afin de bloquer les processus sur la ralisation dune condition et pouvoir ensuite les rveiller. Le programme ci-dessous exprime une solution laide des moniteurs un problme dans lequel deux processus s'excutent en parallle. Le premier processus dpose des objets dans une structure de donnes de capacit N. Le second retire de cette structure.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

Monitor nom_moniteur

Condition plein, vide ; Int cpt ; Void mettre() { If cpt == N wait(plein) ; /* la limite de dpt est de N */ Mettre_objet() ; Cpt++ ; } Void retirer() { if cpt == 0 wait(vide) ; /* ne pas retirer s'il n'y pas d'objet */ retirer_objet() ; cpt- -; if (cpt == N-1) signal(plein) } cpt = 0; end monitor;

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

void .() { ...... nom_moniteur.mettre; .. }

void .() { .. nom_moniteur.retirer; .. }

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

4.3 Solutions matrielles au problme des accs concurrents On distingue principalement deux solutions : la premire consiste dsarmer les interruptions pendant toute la section critique et de les rarmer la fin de celle-ci. La seconde est une instruction lmentaire TS qui permet de lire et dcrire le contenu dun mot mmoire de manire indivisible (TS signifie : lire en vue de tester et positionner une variable) La solution base sur les interruptions est risque car un programmeur peut oublier de rarmer les interruptions ce qui bloquerait le systme. Cest une mthode intressante mais nappliquer quentre processus systmes.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

5 - Les interblocages

On parle d'interblocage pour un ensemble de processus quand chacun d'eux est dans l'attente d'un vnement de la part d'un autre processus. On imagine aisment une situation avec les smaphores si les oprations P et V ne sont pas rapproches ou sont inverss. Les interblocages sont frquents quand les processus manipulent plusieurs ressources. En cas d'interblocage, les ressources ne seront jamais libres, et aucun traitement par d'autres processus sur les dites ressources ne pourra tre entrepris. Les interblocages sont peu frquents dans un PC pour cela certains systmes ne proposent pas de solutions et supposent que l'utilisateur redmarrera sa machine afin de mettre fin l'interblocage si jamais il a lieu. On distingue deux approches pour rsoudre le problme : 1. L'approche prventive : elle empche les interblocages d'avoir lieu ainsi tous les efforts sont conjugus afin que les processus ne se retrouvent pas interbloqus. 2. L'approche de dtection et gurison : plutt que de consacrer tous les efforts la prvention, le systme laisse les interblocages avoir lieu, ensuite il les dtecte et il corrige. Une dernire approche dite de lautruche consiste ignorer linterblocage et laisser lutilisateur redmarrer sa machine. Elle est valable pour un PC o ce dernier est le seul utiliser sa machine.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section6

6 - La communication inter-processus
Les processus ncessitent de communiquent entre eux afin d'changer des donnes ou des rsultats. Un programmeur peut dcomposer son programme en traitements plus ou moins indpendants et crer un processus afin d'excuter chaque traitement. Au fur et mesure de l'excution, les processus auront besoin de communiquer afin de s'changer leurs rsultats. On recense essentiellement deux techniques de communication : l'change de messages le partage de mmoire ou la communication par mmoire partage

Sommaire de la section : Communication par envoi de messages Communication par mmoire partage

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_1

6.1 Communication par envoi de messages Les processus changent explicitement des messages entre eux qu'ils transmettent travers un systme de communication. Si les processus se trouvent sur un mme ordinateur, c'est le systme d'exploitation qui se charge de faire parvenir un message au processus destinataire. En revanche, si nous sommes dans un environnement distribu, le message est transmis par le systme d'exploitation un protocole de communication qui se charge de le faire transiter par un rseau physique. Arriv destination, le message est transmis au systme d'exploitation qui le dlivre au processus destinataire. L'envoi et la rception de messages se font au moyen d'appels des primitives telles que send et receive. Celles-ci peuvent tre utilises pour mettre en uvre une liaison directe qui n'existe qu'entre le processus metteur et le processus rcepteur ou pour faire communiquer plusieurs processus grce l'utilisation d'une bote aux lettres. Lorsqu'il s'agit d'une liaison directe le programmeur prcise le processus auquel il veut transmettre dans les paramtres du send. Send(proc1,&message,.) En revanche, le recours la bote aux lettres permet la communication entre processus dont on ignore l'identifiant. Par ailleurs ceci permet plusieurs processus de communiquer. Lorsqu'il s'agit d'utiliser une bote aux lettres, le send contient l'identifiant de la bote aux lettres. Tout processus ayant vent de cet identifiant peut y placer et en retirer des messages. La bote aux lettres peut tre vue comme une file d'attente de messages. Ils y sont stocks dans l'ordre de leur arrive et dlivrs en respectant le mme ordre. Send(bal, &message,.) Receive(bal, &message,.)

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_2

6.2 Communication par mmoire partage Dans un programme donn, lorsque l'on souhaite modifier une variable V par plusieurs procdures, celle-ci est passe en paramtres par adresse chaque procdure : on peut alors dire que les procdures communiquent entre elles au moyen de la variable V. Transposons cet exemple pour deux processus, la mme variable V ne peut tre modifie par les deux processus pour une raison de visibilit car gnralement chaque processus s'excute dans un espace d'adressage spar. Les donnes d'un processus P1 sont modifies l'intrieur de son segment de donnes et donc inaccessibles un autre processus P2. Le programmeur doit recourir une technique explicite de communication entre les processus afin d'changer entre eux les valeurs de la variable V. La communication par mmoire partage permet aux processus de partager une zone mmoire dans laquelle ils placent les variables en commun. Le systme d'exploitation leur fournit de la sorte une zone mmoire laquelle ils vont se rattacher pour partager ces variables.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

TD systme dexploitation N3
Exercice 1 Simulez l'excution de 2 processus P1 et P2 sur une machine dont le gestionnaire de processus possde les caractristiques suivantes : les priorits des processus varient dynamiquement de 1 5, o 5 dnote la plus forte priorit : Quand un processus ne consomme pas entirement son quantum, sa priorit est dcrmente ; les quanta varient dynamiquement de 1 5 units de temps : Quand un processus ne consomme pas entirement son quantum, son quantum est incrment ; les priorits varient de manire inversement proportionnelle aux quanta : Quand la priorit d'un processus est dcrmente, son quantum est incrment ; le temps de commutation de contexte est de 1 unit de temps ; le temps d'excution de l'algorithme d'ordonnancement est ngligeable. Les processus ont les caractristiques suivantes : Ils sont soumis en mme temps ; Les quanta initiaux sont de 2 pour P1 et de 5 pour P2 ; Les priorits respectives initiales sont 2 et 3 ; Chacun des deux processus requiert 16 units de temps, E/S non inclues ; P1 lance une E/S au 4me et 10me instants de son excution, qui durent toutes les deux 1 unit de temps ; P2 lance une E/S au 3me et 11me instants, lesquelles durent respectivement 7 et 3 units de temps.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

Nota bene : L'ordonnanceur dcrit n'est pas un "bon" ordonnanceur. Il vaudrait mieux, pour se rapprocher des critres d'un bon ordonnanceur, que le quantum d'un processus n'ayant pas consomm son dernier quantum soit dcrment et non pas incrment. De cette faon, les processus interactifs obtiendraient une forte priorit et un petit quantum tandis que les processus de type "traitement par lot" auraient une priorit faible et un quantum lev. Exercice 2 Considrer une variante de lalgorithme RR dans laquelle des entres dans la queue de processus prts est implmentes avec des pointeurs aux PCB. Quel est leffet de mettre deux pointeurs un mme processus dans la queue de processus prts. Quels sont les principaux avantages/ dsavantages de ce type dalgorithmes. Peut-on obtenir mme rsultat sans dupliquer les pointeurs. Exercice 3 On sintresse ici lutilisation par cinq processus, P 1 , P 2 , P 3 , P 4 , P 5 , de quatre types de ressources, R A , R B , R C et R D . Le nombre maximal dunits de chaque type de ressources est : 4 pour R A , 8 pour R B , 4 pour R C et 5 pour R D . On considre le systme dans ltat reprsent par les deux tableaux ci-dessous, qui indiquent respectivement le nombre de ressources de chaque type couramment alloues par chaque processus (a), et le nombre maximal de ressources de chaque type utilises par chaque processus (b). (a) Ressources alloues (b) Besoins maximaux RA P1 P2 P3 1 0 2 RB 2 2 0 RC 2 0 1 RD 2 0 1 P1 P2 P3 RA 3 2 2 RB 6 2 2 RC 2 1 1 RD 5 0 1

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

P4 P5

1 0

1 1

1 0

1 0

P4 P5

3 0

4 3

2 3

2 4

1. Ltat courant est-il sr (safe), "risqu" (unsafe) ou correspond-il un interblocage ? Utilisez lalgorithme du banquier pour justifier votre rponse. 2. Le processus P 5 fait une demande pour 1 ressource de type R D . Cette demande doit-elle tre satisfaite ? Exercice 4 On souhaite modifier la solution du problme des philosophes dneurs de manire pouvoir changer le nombre de philosophes en cours dexcution (le menu demeure inchang). Il vous est demand dcrire deux fonctions Ajoute_philosophe() et Retire_philosophe() qui grent les aspects de synchronisation de ce problme. N.B. Lajout ou le retrait dun dneur ne sont videmment pas dcids par un autre Philosophe mais par un superviseur externe, par exemple si on observe que les ressources sont sous utilises ou sur-utilises ; On supposera que les aspects sordides de gestion des ressources (en particulier la redfinition du nombre de philosophes, N, et des macros LEFT et RIGHT) sont traits par des fonctions Ajout () et Retrait() quil ne vous est pas demand dcrire, mais que vos fonctions devraient
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme dexploitation N2

appeler ; Les ajouts/retraits se font la position N - 1.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

plan_ch4_m1

Le systme de gestion des fichiers


Objectifs

1. 2. 3. 4. 5. 6. 7.

Les supports de stockage Les tches d'un SGF L'organisation des fichiers sur le disque La gestion de l'espace libre sur le disque La gestion des fichiers dans un environnement multi-utilisat La cohrence d'un SGF TD4

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

1 - Les supports de stockage

Cette section commence par rappeler la structure des supports magntiques en exposant la structure des disques dabord, les disquettes ensuite. Nous donnons ensuite, un aperu sur le codage des donnes sur ces supports.

Sommaire de la section : La mcanique d'un disque dur Structure dun plateau Le codage des donnes Le formatage d'un support magntique Le partitionnement du disque

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_1

1.1 La mcanique d'un disque dur Un disque dur classique (dcrit par la figure n 22) est constitu des composants suivants :

. Les plateaux : un plateau est le support destin accueillir les donnes. Les plateaux ont une
forme circulaire et ils sont empils les uns au dessus des autres. Le diamtre d'un plateau indique la taille du disque et il est gnralement de 3 pouces ou 5 pouces (pour les PC).

. Les ttes de lecture/criture : Sur chaque plateau, on peut crire les donnes sur les deux
faces. Il faut ainsi associer une tte de lecture/criture chaque face. Les ttes sont relies un bras qui permet de les dplacer simultanment. Chaque face du plateau est constitue d'un ensemble de pistes. La tte se dplace ainsi d'une piste l'autre.

. Un moteur rotatif : il permet de faire tourner les plateaux une vitesse autour de 7200 tr/min
(environ 200 km/h) voire davantage. Quand la machine est mise sous tension, le moteur entreprend un mouvement de rotation permanent et il se cre une dpression sous chaque tte l'obligeant s'loigner du plateau de quelques millimes de centimtre. On parle de crash disque si la tte atterrit sur le disque en cours de rotation.

. Des positionneurs de ttes : ils permettent de positionner la tte de lecture/criture


l'emplacement souhait.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_1

Fig. 29. Structure d'un disque dur L'ensemble de ces composants est enferm dans un botier tanche l'air et la poussire. Tout comme le microprocesseur, les disques durs sont assembls dans des pices spciales. On distingue aujourd'hui deux types de disques: les disques SCSI et IDE auxquels on associe un contrleur SCSI ou IDE. Les disques SCSI sont plus robustes et plus performants mais galement plus chers.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_2

1.2 Structure dun plateau La surface de chaque plateau est divise en pistes concentriques numrotes partir de zro en commenant partir de la piste la plus l'extrieur. Chaque piste est divise en secteurs (parts) dont le nombre varie d'un disque l'autre. Quand le bras se dplace, un instant donn, toutes les ttes sont positionnes sur le mme numro de piste. Il est plus judicieux d'crire un fichier sur plusieurs plateaux (puisque les ttes sont positionnes) que de remplir entirement un plateau avant de passer un autre. On dfinit ainsi la notion de cylindre qui est l'ensemble des pistes superposes. Le cylindre n2 concerne toutes les pistes n 2 appartenant tous les plateaux. Pour adresser un secteur, il faut spcifier le plateau, la face, le cylindre et le secteur.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_3

1.3 Le codage des donnes Chaque support de stockage magntique, est recouvert d'une fine couche magntique destine au stockage des informations. Ce sont les variations d'un champ magntique qui permettent de lire et d'crire sur le support. Selon les principes de l'lectromagntisme, lorsque un courant lectrique traverse un corps conducteur, il gnre un champ magntique et vice-versa, lorsque un corps conducteur est travers par un champ magntique variant, il induit un courant lectrique. Pour l'criture, on envoie un courant lectrique travers la tte de lecture/criture (plus prcisment dans l'lectroaimant qu'elle porte), qui va produire un champ magntique dont le rsultat sera la modification de la surface du plateau. La lecture est ralise par le phnomne inverse, savoir qu'un courant induit est obtenu la dtection d'une variation de champ magntique.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_4

1.4 Le formatage d'un support magntique Il existe deux types de formatage : un formatage de bas niveau opr l'usine et un formatage de haut niveau que l'utilisateur peut effectuer autant de fois qu'il le souhaite. 1.4.1 Le formatage de bas niveau Il est ralis en usine et il consiste tracer les pistes et les secteurs sur les diffrents plateaux. Lorsqu'un disque est format, des informations supplmentaires sont cres au niveau de chaque secteur. Elle permettent de l'identifier et de le dcrire. Une piste n'est pas divise en secteurs de 512 octets, mais en zones de plus grande taille incluant le secteur de donnes. La figure ci-dessous illustre le format d'un secteur :

Fig. 30. Format d'un secteur 1.4.2 Le formatage de haut niveau

Le formatage de haut niveau consiste organiser les pistes et les secteurs d'une manire comprhensible par le systme d'exploitation. Nul n'ignore qu'une disquette formate sous Dos ne peut tre lue sous Unix. Cela est plus clair prsent car chaque systme organise ses pistes et ses secteurs sa manire et cre ses propres structures de donnes. L'unit d'allocation d'un fichier est le secteur, or la taille d'un secteur tant rduite le systme procde travers l'allocation d'un cluster (galement appel bloc) constitu d'un ensemble de secteurs. Plus le disque est grand, plus le cluster sera grand. Sa taille varie entre 4KO et
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_4

environ 64 KO. Le systme renumrote les secteurs du disque en affectant chaque quadruplet (nsecteur, npiste, N) plateau, n face) un numro de cluster. Par ailleurs la FAT, structure utilise par Dos pour grr les blocs d'un disque, est cre ce moment l.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_5

1.5 Le partitionnement du disque Le partitionnement d'un disque dur consiste le diviser en partitions. La partition est une zone du disque qui peut tre considre comme un disque logique part. On parle galement de lecteur logique. Chaque partition peut recevoir un systme d'exploitation diffrent, pour cela il suffit que ce disque soit amorable et que le programme d'amorage du systme soit plac dans le secteur de boot. La commande externe DOS FDISK permet de partitionner un disque dur en plusieurs lecteurs et de spcifier pour chacun la taille et le type de systme de fichiers. On distingue des logiciels de partitionnement tel que Magic partition qui a le mrite, en plus du partitionnement, de pouvoir restructurer la taille d'une partition en la rduisant ou en l'augmentant. La plupart des systmes d'exploitation fournissent un administrateur de disques avec lequel on peut crer et grer des partitions. Une fois le disque partitionn, chaque partition doit tre formate pourle systme d'exploitation qui va la grer. Une partition est destine recevoir un systme d'exploitation, des logiciels ou des fichiers. L'utilisateur peut choisir le systme de fichiers qu'il souhaite condition qu'il soit compatible avec le systme install sur la machine. Les plus connus sont les systmes FAT16 et FAT32. Une partition peut avoir un des systmes de fichiers suivants :
q

FAT16 : Le systme d'exploitation Ms-Dos utilise le systme FAT16, c'est--dire que les numros de clusters s'crivent sur 16 bits. Les partitions formates avec FAT16 ont une taille maximale de 2 GO. FAT32 est pris en charge par Windows 95 et les versions qui ont suivis. Les numros de clusters s'crivent sur 32 bits et les partitions peuvent atteindre 2 TO. Avec les nouveaux disques, la limite des 2 GO est vite devenue compltement absurde. NTFS fourni avec NT (NT File System) est conu pour grer des disques avec une capacit suprieure 400 MO. Il autorise les noms de fichiers longs. Quand un volume est format avec NTFS, il est possible de choisir la taille d'un cluster : 512 octets, 1024 ou 2048 octets.

Ces systmes de fichiers ne sont pas compatibles avec Unix. Linux utilise les partitions linux swap et linux native :
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_5

Linux Native sert stocker les fichiers et les rpertoires. Lutilisateur peut en crer plusieurs sil le souhaite. Linux Swap est utilise par la mmoire virtuelle. Elle sert de complment la mmoire centrale lorsque celle-ci est pleine. Sa taille est gale 2 ou 3 fois celle de la mmoire centrale.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

2 - Les tches d'un SGF


Le stockage des fichiers sur le disque dur La gestion de l'espace libre sur le disque dur La gestion des fichiers dans un environnement multi-utilisateurs La donne d'une interface conviviale pour manipuler les fichiers (commandes et des attributs simples pour manipuler et dcrire les fichiers) La donne d'utilitaires pour le diagnostic, la rcupration en cas d'erreurs, l'organisation des fichiers

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3

3 - L'organisation des fichiers sur le disque

Sommaire de la section : Le concept de fichier Le concept de rpertoire Techniques d'allocation des blocs sur le disque La cration d'un fichier par le systme d'exploitation Structures de donnes pour les fichiers et les rpertoires

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_1

3.1 Le concept de fichier Un fichier est une unit de stockage logique mise la disposition des utilisateurs pour l'enregistrement de leurs donnes : c'est l'unit d'allocation. Le systme d'exploitation tablit la correspondance entre le fichier et le systme binaire utilis lors du stockage de manire transparente pour les utilisateurs. Dans un fichier on peut crire du texte, des images, des calculs, des programmes. Les fichiers sont gnralement crs par les utilisateurs. Toutefois certains fichiers sont gnrs par le systme ou certains outils comme les compilateurs. Afin de diffrencier les fichiers entre eux, chaque fichier a un ensemble d'attributs qui le dcrivent. Parmi ceux-ci on retrouve : le nom, l'extension, la date et l'heure de sa cration ou de sa dernire modification, la taille, la protection. Certains attributs sont indiqus par l'utilisateur, d'autres sont complts par le systme d'exploitation. Du point de vue du SGF, le fichier est une collection de blocs.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

3.2 Le concept de rpertoire Un rpertoire est une entit cre pour l'organisation des fichiers. Imaginez un courrier remis en vrac dans une institution comportant des milliers de personnes. Chacun devra tout passer en revue afin de trouver son courrier. Par ailleurs pour pouvoir tre retrouv chaque fichier doit porter un nom unique. Avec la multitude des fichiers crs, le systme d'exploitation a besoin d'une organisation afin de structurer ces fichiers et de pouvoir y accder rapidement. Cette organisation est ralise au moyen de rpertoires galement appels catalogues ou directory. Un rpertoire est lui-mme un fichier puisqu'il est stock sur le disque et est destin contenir des fichiers. De nos jours, tous les systmes de fichiers adoptent une structure hirarchique. Toutefois, les premiers systmes utilisaient des structures plate ou deux niveaux. Du point de vue du SGF, un rpertoire est un fichier qui dispose d'une structure logique : il est considr comme un tableau qui possde une entre par fichier. L'entre du rpertoire permet d'associer au nom du fichier qui est un nom externe, les informations stockes en interne par le SGF. Chaque entre peut contenir des informations sur le fichier (nommes attributs) ou faire rfrence (pointer sur) des structures qui contiennent ces informations.

Fig. 31. Structure logique d'un rpertoire La figure n 31 dcrit ces structures. Certaines informations sont donnes, d'autres calcules
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

par le systme d'exploitation. Que les informations soient conserves au niveau de l'entre ou dans une structure annexe, l'entre du rpertoire doit permettre d'accder au stockage du fichier sur le disque dur.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

3.3 Techniques d'allocation des blocs sur le disque On distingue trois manires d'organiser les blocs d'un fichier : contigu, chane, indexe, chacune offrant des avantages et mais galement des inconvnients. Allocation contigu : le fichier est enregistr sur des blocs conscutifs sur le disque Allocation chane : on divise le fichier en plusieurs blocs qu'on enregistre des endroits espacs et on les relie par des liens. Allocation indexe : les blocs sont indpendants mais on conserve dans une structure statique ou dynamique (bloc index) les numros des blocs appartenant au fichier. 3.3.1 Allocation contigu

C'est le mode d'allocation le plus logique et le plus simple grer. Pour chaque fichier enregistrer, le systme recherche une zone suffisamment grande pour accueillir le fichier. Le fichier sera constitu de plusieurs blocs contigus. L'entre d'un rpertoire dans un systme qui applique l'allocation contigu a la structure suivante :

Fig. 32. Description d'un fichier dans un systme qui applique l'allocation contigu Le principal avantage de cette mthode est la rapidit lors de l'accs. Il suffit pour lire les diffrents secteurs d'attendre qu'ils passent sous la tte de lecture/criture : l'accs est squentiel. Cette mthode a t utilise il y a quelques annes, elle ne l'est pratiquement plus de nos jours. En effet elle prsente un grand nombre d'inconvnients : La difficult de prvoir la taille qu'il faut rserver pour le fichier : un fichier est amen augmenter de taille, il faut par consquent prvoir de l'espace libre aprs le dernier secteur allou.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

La perte d'espace sur le disque : Si nous prvoyons trop d'espace, le fichier risque de ne pas l'utiliser en entier. En revanche, si nous allouons trop peu d'espace, le fichier risque de ne pas pouvoir tre tendu. La fragmentation externe : c'est l'espace perdu en dehors des fichiers. On peut effacer des donnes ou supprimer des fichiers ce qui libre des secteurs sur le disque. Au fil de l'utilisation, il peut se crer un grand nombre de petites zones dont la taille ne suffit souvent pas pour allouer un fichier mais dont le total correspond un espace assez volumineux. 3.3.2 L'allocation chane

L'allocation chane consiste allouer des blocs chans entre eux aux fichiers. Un fichier peut dsormais tre parpill sur le disque puisque chaque bloc permet de retrouver le bloc suivant. D'un point de vue pratique, le numro du premier bloc du fichier doit tre sauvegard dans l'entre du rpertoire et le chanage est ralis de la manire suivante : la fin de chaque bloc, on rserve quelques octets pour y crire le numro du bloc suivant; c'est comme si les blocs taient chans entre eux. Les avantages de cette mthode sont l'limination de la fragmentation externe puisque tous les blocs peuvent tre allous. Par ailleurs, elle ne ncessite pas de structure de donnes spciale. En revanche, les inconvnients ici aussi sont multiples : L'accs au fichier est squentiel. On doit toujours commencer le parcours partir du dbut du fichier mme si on a rcemment charg les blocs. La perte d'un chanage entrane la perte de tous le reste du fichier. Pire encore, il suffit qu'une valeur soit modifie dans un pointeur pour qu'on se retrouve dans une autre zone de la mmoire. 3.3.3 L'allocation indexe

Tous les inconvnients de l'allocation chane peuvent tre rsolus d'une manire simple : il suffit de retirer les pointeurs des blocs et de les placer dans une structure de donnes garde en mmoire centrale ainsi l'information sur les numros de blocs peut tre obtenue tout moment. La plupart des systmes actuels appliquent ce mode. MS-DOS utilise la FAT pour y conserver
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_3

les chanages entre les blocs. Unix utilise le I-Node pour y conserver les 10 premires adresses et les pointeurs vers les autres adresses. Windows NT utilise la MFT. Les systmes d'exploitation appliquent gnralement l'allocation indexe ou une combinaison des deux : chane et indexe.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_4

3.4 La cration d'un fichier par le systme d'exploitation Un fichier et un rpertoire sont tous les deux crs en suivant les mmes tapes qui sont les suivantes : La cration d'une structure de donnes pour dcrire le fichier. Tout fichier doit tre dcrit afin que le systme puisse le connatre et le reconnatre. C'est une sorte de recensement qui permet au systme d'exploitation d'organiser au mieux les fichiers. Les attributs des fichiers sont sauvegards dans cette structure de donnes. Il est vident qu'un fichier et un rpertoire se seront pas dcrits par la mme structure de donnes. La cration du fichier proprement dit. Cela consiste allouer au fichier un certain nombre de blocs sur le disque selon sa taille. Le contenu d'un bloc sera diffrent selon qu'il s'agit d'un fichier ou d'un rpertoire. Un rpertoire est cens accueillir des fichiers et des sous-rpertoires, en revanche un fichier est constitu de plusieurs donnes. La diffrence essentielle entre un fichier et un rpertoire rside ce niveau. Les blocs d'un fichier vont contenir des donnes sans aucune structure particulire. Les blocs d'un rpertoire ont une structure bien prcise, en effet ils contiennent des noms et des attributs de fichiers et de sous-rpertoires (cf. figure n 33).

Fig. 33. Structure des fichiers et des rpertoires

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

3.5 Structures de donnes pour les fichiers et les rpertoires Une structure de donnes au sens algorithmique est un regroupement de types utiliss pour dcrire un objet. La structure de donnes d'un fichier ou d'un rpertoire contient dans un premier temps le nom du fichier. Selon le systme d'exploitation, les attributs et les informations sur les blocs seront placs dans la mme structure de donnes ou organiss ailleurs. Nous prsentons prsent comment les systme MS-Dos, Unix et NT dcrivent les fichiers et les rpertoires. 3.5.1 Le systme d'exploitation MS-DOS

Le rpertoire racine MS-DOS utilise une structure de donnes : le rpertoire racine afin de contenir les fichiers et les rpertoires. Le rpertoire racine est enregistr sur le disque dur un emplacement fixe. Chaque disque format avec MS-DOS contient un rpertoire racine et des sous-rpertoires. Tous ces rpertoires ont la mme structure et chaque entre d'un rpertoire a une taille de 32 octets et a la structure suivante :

Fig. 34. Une entre de rpertoire dans MS-DOS Cette organisation est trs intressante et prvenante. En ne mettant que le premier numro, on ne limite pas la taille du fichier. MS-DOS associe un tableau o chaque indice contient la valeur du prochain bloc associ au fichier. La FAT Ce tableau est connu sous le nom de table d'allocation des fichiers FAT (File Allocation Table). MSDOS ne gre pas individuellement les blocs, il alloue aux fichiers des clusters qui sont constitus d'un ensemble de secteurs. Selon la taille du disque grer, un cluster sera compos d' un secteur pour une disquette 3" , de deux secteurs pour une disquette de extra haute densit, de 32, 64 secteurs ou plus pour un disque de quelques Gigaoctets. Dans l'exemple de la figure n 35, l'entre du
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

rpertoire indique que le fichier commence au cluster numro 2. En consultant ce tableau, nous retrouvons la suite des numros de clusters qui composent le fichier prog.c : 5 6. Numro du cluster Soit le fichier prog.c dcrit par l'entre suivante dans le rpertoire racine Prog.c ... ... 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Valeur 5 0 0 6 FFFFh 8 FFFFh 0 0 0 0 0 0 0 0 0

Fig. 35. Structure de la FAT Par mesure de scurit, deux copies de la FAT sont enregistres prs du rpertoire racine. 3.5.2 Le systme d'exploitation Unix

Lorsqu'un disque est format sous Unix, le systme de fichier est cr ce moment l et les structures de donnes du systme sont alors alloues : le bloc de dmarrage (secteur de boot), le superbloc et la table des I-Nodes. Le systme crit les blocs de donnes par la suite. Le secteur de boot est le premier secteur du disque. Sur les secteurs voisins le systme inscrit le super bloc suivi des I-Nodes. A la suite, le systme crit les blocs de donnes. Unix utilise les blocs
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

logiques et ceux physiques. Un bloc physique est un secteur ou un ensemble de secteurs. Un bloc logique correspond la notion de cluster vu prcdemment. La taille d'un bloc logique diffre d'une version de Unix une autre, mais elle est gnralement de 1 ou 4 KO. Le super bloc Il s'agit d'une structure de donnes qui dcrit le systme de fichiers. On y distingue les caractristiques suivantes :
q q q

La taille du systme de fichiers Le nombre de blocs libres ainsi que la tte de la liste des blocs spciaux Des informations sur le nombre des I-Nodes et sur ceux libres

La table des I-Nodes Lorsqu'un fichier est ouvert, son numro d'I-Node est charg dans une entre de la Table des INodes. Cette structure de donnes comporte un nombre d'entres fixe. Le premier I-Node est rserv la gestion des blocs dfectueux. L'I-Node 2 est celui de la racine et il est toujours charg en mmoire au dmarrage du systme. Lorsqu'un fichier est dtruit, son numro d'I-Node est marqu. Il peut tre attribu un nouveau fichier au bout d'un certain temps.

Fig. 36. Structure d'un disque Unix Le systme Unix utilise une structure de donnes bien particulire afin de dcrire les fichiers : c'est le noud d'index appel en anglais I-Node. L'I-Node est une structure conue afin d'allger le rpertoire et d'en liminer les attributs du fichier ainsi que les informations sur l'emplacement des donnes. L'entre d'un rpertoire sous Unix a la structure suivante et occupe 16 octets:

Fig. 37.Structure d'une entre de rpertoire sous Unix Structure d'un I-Node
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

Un noud d'index est constitu d'attributs dcrivant le fichier ou le rpertoire et d'adresses de blocs contenant des donnes, il occupe 64 octets. Cette structure permet au systme de disposer d'un certain nombre de donnes sur le fichier :
q q q q q

la taille, l'identit du propritaire, du groupe et les droits d'accs au fichier, les dates de cration, de dernire consultation et de dernire modification, le nombre de rfrences existant pour ce fichier dans le systme, l'adresse de blocs physiques. Ces blocs physiques contiennent soit les donnes du fichier, soit l'adresse d'autre blocs physiques (on parle alors de bloc d'indirection).

On peut remarquer au niveau de la figure n 31, que l'I-Node ne contient aucune identit pour le fichier. La rfrence un fichier se fait par l'intermdiaire du rpertoire associ au fichier et auquel le systme associe un entier, l'index d'identit.
Si nous supposons que la taille d'un bloc est de 1 KO, un fichier sous Unix peut avoir la taille maximale suivante: 10 * 1KO + 256*1KO + 256*256*1KO + 256*256*256*1 KO ce qui nous donne plus de 16 GO. En ralit, la taille relle maximum d'un fichier est infrieure cette valeur car les pointeurs utiliss pour le dplacement au sein du fichier sont des entiers signs donc limits.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

Fig. 38. Structure d'un I-Node 3.5.3 Le systme d'exploitation Windows NT

Le systme d'exploitation Windows NT propose plusieurs systmes de gestion de fichiers : un nouveau systme de fichiers qui lui est propre : NTFS NT File System et les systmes FAT16 et FAT32. NTFS utilise une structure de donnes organise en table nomme Master File Table MFT pour grer les fichiers (table des fichiers matre). Elle contient des informations dtailles sur les fichiers et les rpertoires. Lorsque ces derniers ont une taille rduite, elle contient les fichiers et les rpertoires eux-mmes. Les 16 premires entres de la MFT sont rserves au systme. La premire entre de la MFT est appele descripteur et elle contient des informations sur la table. La seconde est une copie miroir de la premire. La troisime entre contient le journal de rcupration en cas d'erreur. Il permet de restaurer les donnes et de reconstituer la MFT. Chaque entre peut contenir 2KO d'informations. Cette valeur assez leve permet de stocker dans une
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

entre un fichier si sa taille est infrieure 1,5 KO (en supposant que les 500 octets restants sont utiliss pour dcrire le fichier). L'avantage de cette organisation est l'accs direct au fichier. Quand les fichiers sont volumineux, l'entre inclue un pointeur vers des clusters contenant les donnes. Les fichiers sont dcrits par NTFS l'aide des attributs suivants :
q q q q

Le nom du fichier Un entte de description Un descripteur de scurit Les donnes

Fig. 39. Structure d'une entre de la MFT Lorsqu'il s'agit d'un rpertoire, le champ donnes dcrit un ensemble de fichiers et conserve pour chaque fichier le nom du fichier et le numro de l'entre o il est plac. Les grands rpertoires quant eux ont dans leur champ donnes un pointeur vers un cluster qui stocke les noms des fichiers ainsi que leur numros. Le chargement d'un fichier par le systme d'exploitation Que ce soit travers une commande ou travers un programme utilisateur, lorsqu' un ordre est mis afin de charger un fichier, l'appel systme d'ouverture de fichier est lanc et le systme prend la main pour rechercher le fichier dans ses structures de donnes et le charger du disque partir de l'emplacement trouv. Nous dtaillons prsent les tapes dployes pour retrouver tous les blocs d'un fichier et d'un rpertoire avec UNIX. Le schma du premier accs au fichier est le suivant :
q q q

Accder au rpertoire Parcourir le rpertoire la recherche du nom du fichier Une fois le fichier trouv, chercher l'information sur l'emplacement du premier bloc

En ritrant le schma de parcours de la racine, on accde aux diffrents rpertoires et finalement au fichier. Un rpertoire est enregistr dans un bloc sur le disque dur et un mme rpertoire peut ncessiter plusieurs
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_5

blocs. Il faut tous les charger et les parcourir afin d'y rechercher le fichier ou les sous-rpertoires. La section suivante schmatise l'accs au fichier /tp/prog.c. Le systme commence par accder au rpertoire racine (qui est charg avec le systme) la recherche du rpertoire TP. Une fois localis, il accde son I-Node point par la table des I-Nodes. Il en est de mme pour le fichier prog.c, une fois son entre localise dans les blocs du rpertoire TP, on obtient le numro de l'I-Node qui le dcrit.

Fig. 40. L'accs un fichier avec UNIX

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

4 - La gestion de l'espace libre sur le disque


Les systmes d'exploitation utilisent essentiellement deux approches pour mmoriser l'espace libre : une statique et une dynamique. L'approche statique utilise une structure de donnes de taille fixe, le systme doit ainsi prvoir la taille ncessaire pour le cas extrme celui o tout le disque dur est vide ou presque. En revanche dans l'approche dynamique, on a la possibilit de rajouter des lments pour mmoriser l'espace libre au fur et mesure que celui-ci augmente. La structure dynamique utilise gnralement une liste chane et l'approche statique une table de bits :
q

La liste chane est constitue d'lments chacun mmorisant des numros de blocs libres. Chaque lment que nous appelons bloc spcial (par l'usage qu'on en fait) a une taille de 1K par exemple et peut contenir N adresses de blocs libres. Si les numros de blocs s'crivent sur 2 octets, chaque bloc peut contenir les adresses de 512 autres blocs libres.

Au del de 512 blocs libres, on alloue un autre bloc spcial qu'on rattache au prcdent en mettant son adresse dans la dernire adresse de ce bloc. Un pointeur tant une adresse, c'est comme si les blocs taient chans entre eux.

Fig. 41. Mmorisation de l'espace libre l'aide de blocs spciaux


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

Essayons prsent de calculer pour des blocs de 1 KO le nombre de blocs spciaux pour un disque de 20 MO et un autre de 9 GO : Soit un disque de 20 MO, soit 20 fois 1024 KO, il y a 20*1024 blocs. Le plus grand numro de blocs 25 * 210 ncessite 15 bits. Il faut 2 octets pour reprsenter chaque bloc. Un bloc peut contenir 512 adresses ou 511 si on compte le chanage avec les blocs qui suivent. Il faut donc au maximum 20*1024/512 = 40 blocs soit une occupation mmoire de 40 KO. Dans un disque de 9 GO, on ne peut considrer des blocs de 1 KO. Prenons titre d'exemple la taille d'un bloc 4 KO. 9 GO quivaut 9*1024*1024 KO soit 9*1024*256 blocs ce qui nous donne le plus grand numro qui ncessite 4+10+8 bits pour son criture. Les numros de blocs s'crivent ainsi sur 32 bits. Un bloc de 4 KO peut contenir 1024 adresses. Il faut ainsi 9*1024*256/1024 blocs spciaux soit 2304 blocs spciaux ou environ 9 MO. Cette organisation prsente plusieurs avantages :
q

q q

avec un seul bloc spcial charg en mmoire on peut allouer 1023 nouveaux blocs aux fichiers, on n'utilise un nouveau bloc spcial que si on ne trouve pas de place dans les prcdents quand le disque est plein, les 9 MO sont ramens quelques KO.

Il existe une implmentation lgrement diffrente mais trs intressante de ces blocs spciaux dans laquelle un numro de bloc libre est associ au nombre de blocs libres qui le suivent.
q

La seconde approche statique utilise une structure de tableau. Le systme du macintosh (mac OS) utilise un tableau appel table de bits. Chaque entre est un espace de 2 ou 4 octets o chaque bit rfrence un bloc. S'il est libre le bit est 1 sinon 0. Un disque de N blocs ncessite une table de N bits.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

Fig. 42. Mmorisation de l'espace libre l'aide d'une table de bits Pour le disque de 20 MO, il faut 20*1024 bits soit 20*1024/8octets =20/8 blocs de 1 KO soit 2 blocs et demi donc 3 blocs. Pour le disque de 9 GO, il faut 9*1024*256 bits soit 9*1024*256/8 octets = 9*32 KO soit 72 = 9*8 blocs de 4 KO. La table de bits n'est pas charge en entier en mmoire centrale en effet, elle peut tre charge bloc par bloc puisque sa largeur est organise en fonction de la taille d'un bloc. Toutefois, on peut charger plusieurs blocs de la table de bits, n'y trouver aucun emplacement libre et devoir en charger d'autres, ce qui n'est pas le cas des blocs spciaux.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5

5 - La gestion des fichiers dans un environnement multiutilisat

Sommaire de la section : La problmatique La scurit des fichiers Le partage des fichiers

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_1

5.1 La problmatique Hormis MS-DOS, la plupart des systmes actuels sont des systmes d'exploitation multi-utilisateurs. Le partage de ressources telles que la mmoire, le processeur, l'imprimante et d'autres encore introduit des problmes de scurit, de cohrence et de confidentialit pour les utilisateurs. Ce besoin se fait ressentir essentiellement pour l'accs la mmoire centrale et aux donnes. Quand des programmes sont placs en mmoire une certaine adresse, si le systme d'exploitation ne fournit aucune protection particulire, un programmeur expriment peut espionner voire dtruire les donnes d'un utilisateur. Il peut en outre dcider de s'octroyer la plus grande priorit pour l'excution de ses programmes. Quant l'accs aux donnes, il s'agit d'empcher un utilisateur de lire ou de modifier les fichiers d'un autre utilisateur si celui-ci ne lui en donne pas le droit. Un systme d'exploitation multi-utilisateurs doit intgrer la notion de droit d'accs un fichier. Par ailleurs, certains utilisateurs peuvent souhaiter partager des programmes ou des donnes entre eux afin de les exploiter et de les mettre jour ensemble. On parle alors de partage de fichiers et cela introduit un problme de cohrence. Il est vident qu'il n'existe qu'une seule copie du fichier. Si un premier utilisateur modifie le fichier, les modifications doivent tre perues par tous les utilisateurs qui partagent ce fichier. Par ailleurs, on ne peut autoriser deux utilisateurs crire en mme temps. On distingue plusieurs manires de protger un systme et ses utilisateurs. Mais laspect le plus mis en vidence est la protection entre utilisateurs par lattribution de mots de passe et de droits daccs aux fichiers. Le nombre d'utilisateurs qui ont accs un serveur est considrable. Un systme d'exploitation doit disposer d'une organisation afin de diffrencier ces utilisateurs. Gnralement on dfinit des groupes pour privilgier certains utilisateurs et on dfinit des droits d'accs pour chaque fichier en fonction de la catgorie de l'utilisateur.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_2

5.2 La scurit des fichiers Les principaux types d'accs un fichier sont : la lecture, l'criture ou l'excution. Le fait d'indiquer des droits d'accs revient indiquer quels utilisateurs sont autoriss lire, crire ou excuter un fichier. Le systme d'exploitation UNIX manipule 3 catgories d'utilisateurs : le propritaire, le groupe auquel appartient le propritaire et les autres (ceux qui sont considrs quelconques car n'appartenant pas aux groupe ou inconnus). Unix code les droits d'accs sur 9 bits raison de 3 pour le propritaire, 3 pour le groupe et 3 pour les autres. Ce nombre est sauvegard dans l'I-Node qui dcrit le fichier.

Fig. 43. Un exemple de droits d'accs un fichier avec UNIX

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_3

5.3 Le partage des fichiers Plusieurs utilisateurs peuvent avoir besoin de travailler sur un mme fichier. Le systme doit tout en conservant une seule version du fichier donner aux utilisateurs l'impression d'avoir un accs direct au fichier. On distingue deux manires dimplmenter les fichiers partags :
q

placer le fichier dans un rpertoire auquel tous les utilisateurs accdent. Cette solution est rarement utilise car les utilisateurs aiment avoir leurs fichiers dans leur rpertoire. Par ailleurs on est contraint d'autoriser de la sorte l'accs au rpertoire du propritaire ce qui n'est gure agrable pour ce dernier. Crer une sorte de lien vers le fichier matrialis par un nouveau fichier de type spcial portant le mme nom que le fichier partag (mais qu'on peut modifier). Ce dernier est plac dans le rpertoire de l'utilisateur et pointe vers le fichier en question.

C'est la seconde solution qui est retenue pour la suite de cette section. Elle transforme la structure du systme de fichiers de celle d'un arbre vers celle d'un graphe acyclique orient ce qui pose quelques problmes de rptitions des noms de fichiers lors du parcours. Nous n'en discuterons pas davantage mais les lecteurs peuvent obtenir plus de dtail sur ce genre de situation dans les ouvrages de thorie des graphes. 5.3.1 Les liens symbolique et physique dunix

Dans le systme Unix, du fait que l'I-Node ne contient pas de nom de fichier, un mme fichier peut tre rfrenc sous diffrents noms dans plusieurs rpertoires. Ainsi pour tout utilisateur dsirant partager un fichier, on cre un fichier appel lien qui est plac dans son rpertoire. Unix offre deux types de liens : les liens physiques et ceux symboliques. Quant le lien est symbolique, si l'on examine l'entre au niveau du rpertoire, on y trouve le numro d'un I-Node diffrent de celui du fichier. L'examen du contenu du bloc point par cet I-Node nous donne le chemin d'accs vers le fichier rel. Avec les liens physiques, on retrouve le numro de l'I-Node dans l'entre du rpertoire. Avec les liens symboliques, seul le propritaire a un pointeur sur l'I-Node. Cette solution prsente les inconvnients suivants : trop de parcours (rpertoire, I-Node du fichier lien, bloc qui contient le chemin pour enfin accder l'I-Node), mmoire (un I-Node et un bloc supplmentaires), mais elle
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_3

permet de mmoriser des chemins daccs des fichiers situs sur dautres ordinateurs. 5.3.2 La suppression d'un fichier partag

On distingue plusieurs problmes au niveau de la suppression. Peut-on supprimer un fichier si des utilisateurs y accdent encore ? Un propritaire n'est-il pas libre de supprimer son fichier quand il le dsire ? la rponse ces questions est diffrente selon le systme d'exploitation et le type de lien. Avec Unix, quand il s'agit d'un lien symbolique, les liens demeurent dans les rpertoires quand on dtruit un fichier. La destruction d'un lien symbolique n'affecte pas le fichier. En revanche, si un fichier est dtruit l'utilisateur ne sera inform que lors du prochain accs au fichier. Par contre s'il s'agit d'un lien physique, on ne peut supprimer le fichier et son I-Node en laissant ce numro apparatre dans plusieurs rpertoires. Pour ce faire Unix propose le compteur de liens qui est un champ inclus dans l'I-Node afin de comptabiliser le nombre de liens au fichier. Il renseigne sur le nombre de rpertoires qui possdent ce fichier partag (bien entendu, on ne peut pas mmoriser les rpertoires qui y accdent, mais juste leur nombre). Supprimer le fichier par un utilisateur qui nen est pas propritaire quivaut supprimer lentre au niveau du rpertoire. Il en est de mme pour le propritaire si le compteur nest pas 1. Le fichier n'est supprim que si son compteur atteint la valeur 1.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section6

6 - La cohrence d'un SGF

Un systme de fichiers est cohrent s'il est capable de restituer l'utilisateur ses fichiers et ses rpertoires dans l'tat o il les a laisss. Cela sous-entend qu'aucun fichier n'est ni dplac d'un rpertoire un autre ni perdu, et que le contenu des fichiers est correct et n'a pas t altr. Si l'on venait par erreur dtruire le SGF, la restauration des organisations de fichiers et de rpertoires pourrait carrment tre impossible. Parmi les utilitaires d'un systme d'exploitation, on trouve notamment un utilitaire de vrification et de correction des erreurs au niveau du systme de fichiers tel que scandisk pour Windows (automatiquement lanc aprs un redmarrage ou manuellement la demande de l'utilisateur). Du point de vue pratique, ces utilitaires examinent les structures de donnes du systme d'exploitation et corrigent les erreurs qu'ils peuvent y trouver. La vrification concerne les blocs appartenant aux fichiers ou libres, et l'tat des rpertoires. Ainsi ils vont parcourir les diffrents rpertoires et la FAT ou bien la MFT ou encore les I-Nodes. La raison pour laquelle l'information restitue n'est pas la mme qu'initialement, est que le systme peut tomber en panne ou se bloquer au milieu d'une opration de cration de I-Node, ou d'criture de numros de blocs libres etc. Nous prsentons dans ce qui suit les deux utilitaires employs par Unix pour vrifier la cohrence de son SGF. Ils se basent sur la vrification des blocs et des I-Nodes. En ce qui concerne les blocs, cet utilitaire parcourt les structures de gestion de blocs et construit deux tableaux. Dans le premier tableau, l'utilitaire indique pour chaque case i le nombre de fois o le bloc numro i est rfrenc dans un fichier donc occup. Dans le second, le nombre de fois o il apparat parmi les blocs libres (en consultant la liste des blocs spciaux chans). Quand le SGF est cohrent, chaque bloc apparat une fois au maximum soit dans le premier tableau soit dans le second. Les tableaux qui suivent illustrent plusieurs cas d'incohrence :

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section6

On distingue quatre cas d'incohrence schmatiss travers les blocs 2, 4, 5, 11 :


q

le bloc 2 est 0 partout, il n'est ni libre ni occup : la correction se fait en le rajoutant aux blocs libres de manire pouvoir l'allouer ultrieurement un fichier. Le bloc 4 est (0,2), il est plusieurs fois libre : cette situation ne peut avoir lieu si le systme d'exploitation utilise une table de bits pour rfrencer les blocs libres. En effet la case ne peut contenir que les valeurs 0 ou 1. En revanche, avec la liste chane des blocs spciaux, cette situation peut se produire. On la corrige en retirant une occurrence de ce numro de bloc de la liste chane. Le bloc 5 est (2,0). Il est utilis par plus d'un fichier. Commenons par expliciter ce cas de figure. Un mme bloc utilis par plus d'un fichier nous fait penser qu'il est peuttre partag. Or avec Unix, les blocs sont dcrits dans un I-Node qui est unique; mme si un fichier est partag, c'est le numro de l'I-Node qu'on risque de trouver plusieurs fois et non celui du bloc : il s'agit rellement d'un cas d'incohrence. La solution est dlicate et ncessite l'allocation d'un nouveau bloc libre, la recopie du bloc 5 dans celuici et l'insertion du nouveau bloc parmi les numros des blocs de l'un des fichiers. Le bloc 11 est (1,1), la fois libre et occup. C'est la situation occupe qui prime et on corrige en retirant le numro du bloc de ceux libres.

Le second utilitaire vrifie les I-Nodes et utilise un tableau de compteurs qu' il applique aux fichiers et non plus aux blocs. Son rle consiste parcourir tous les rpertoires en partant de la racine et construire un tableau o le contenu d'une case est le nombre de fois o un I-Node est rfrenc. Lorsqu'un fichier est partag par un lien physique son numro d'I-Node apparat dans un autre rpertoire. Pour vrifier la cohrence, on compare la valeur obtenue avec le compteur de liens dans chaque I-Node :
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section6

Si le compteur de liens est suprieur la valeur compte par l'utilitaire (bien entendu on se fie la valeur compte), il y a une incohrence mais cette situation n'est pas grave. Lorsqu'on aura supprim tous les accs l'I-Node, le compteur ne sera pas zro, et l'INode ne sera jamais supprim. On corrige en affectant la valeur trouve par l'utilitaire celle du compteur. Si le compteur de liens est infrieur la valeur trouve par l'utilitaire, cela veut dire qu'il existe plus d'utilisateurs qui accdent au fichier que ne signale le compteur de liens. L'INode risque d'tre supprim alors que des utilisateurs utilisent encore le fichier. Si cette situation n'est pas corrige en affectant au compteur de liens la valeur trouve par l'utilitaire, quand le compteur atteindra zro, le fichier sera supprim ainsi que son INode. Plus tard ce numro d'I-Node sera attribu de nouveau un fichier et les utilisateurs risquent de pointer vers le nouveau fichier.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

TD systme dexploitation N4
1. Le carrefour ou le problme de la gestion des feux de circulation. La circulation au carrefour de deux voies est rgle par des signaux lumineux (feu vert/ rouge). On suppose que les voitures traversent le carrefour en ligne droite et que le carrefour peut contenir au plus une voiture la fois.

On impose les conditions suivantes :


o toute voiture se prsentant au carrefour le franchit en un temps fini, o les feux de chaque voie passent alternativement du vert au rouge,

chaque couleur tant maintenue pendant un temps fini. Les arrives sur les deux voies sont rparties de faon quelconque. Le fonctionnement de ce systme peut tre modlis par un ensemble de processus parallles :
o un processus P qui excute la procdure Changement de commande des

feux;
o un processus est associ chaque voiture; o le traverse du carrefour par une voiture qui circule sur la voie i (i = 1,

2) correspond l'excution d'une procdure Traverseei par le processus associ cette voiture.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

On demande d'crire le programme Changement ainsi que les procdures Traversee1 et Traversee2. Remarque : Le processus P doit attendre que la voiture engage dans le carrefour en soit sortie avant d'ouvrir le passage sur l'autre voie. 2. L'application simple.c (Annexe 1)
lit le flux de caractres arrivant sur l'entre standard spare les chiffres et les lettres effectue l'opration approprie en fonction du type de caractre, savoir : o sommer les chiffres o raliser un spectre de frquence pour les lettres affiche le rsultat obtenu

Pour cela, le programme est compos de trois entits :


un distributeur (en charge de la rpartition des caractres) ; un additionneur (oprant sur les chiffres) ; un compteur (oprant sur les lettres).

Adapter simple.c pour que les fonctions d'additionneur et de compteurs soient assures par des processus enfants d'un processus pre qui assure la fonction de distributeur. Les communications entre les processus se font par : par mmoire partage.

/******************************************************************************

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

** ** Version initiale. ** ---------------** Ce programme se compose de trois fonctions. La fonction de desitribution ** est charge de lire les caractres en provenance de l'entre standard, ** d'envoyer les chiffres la fonction chiffre (par l'intermdiaire d'un ** appel de fonction classique) et les lettres la fonction lettre (aussi par ** l'intermdiaire d'un appel de fonction). ** Une fois la fin de fichier atteinte, les fonctions renvoient leurs ** rsultats la fonction de distribution qui affiche ensuite les rsultats. ** ** ******************************************************************************/ #include <assert.h> #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> /* ** Somme des chiffres. */ int chiffre(int car) {
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

static int somme = 0 ; if (car != EOF) { /* Somme des chiffres. */ somme += (car - '0') ; } else { /* Renvoi du rsultat. */ return somme ; } return 0 ; } /* ** Frquence des lettres. */ int* lettre(int car) { /* On suppose que le tableau est correctement initialis. */ static int frequence['z' - 'a' + 1] ; if (car != EOF) { /* Incrment des frquences. */ frequence [ tolower ( car ) - 'a' ] ++ ; } else { /* Renvoi du rsultat. */

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

return frequence ; } return NULL ; } /* ** Distribution des caractres et affichage des rsultats. */ void distributeur() { int car, *frequence, i, somme ; /* Distribution des caractres. */ do { car = getchar() ; if (isalpha(car) || (car == EOF)) { frequence = lettre ( car ) ; } if (isdigit(car) || (car == EOF)) { somme = chiffre(car); } } while(car != EOF); /* Lecture et affichage de la somme. */ printf("Somme : %d", somme); /* Lecture et affichage des frequences. */
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

tdsystme d'exploitation n4

for(i = 'a' ; i <= 'z' ; i ++) { printf(" ; %c : %d", i, frequence[i - 'a']) ; } printf("\n"); } /* ** Lancement de la fonction de distribution. */ int main(int argc, char* argv[]) { /* Lancement du travail. */ distributeur(); /* Tout s'est bien termin. */ exit(0); }

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

plan_ch5_m1

La gestion de la mmoire centrale


Objectifs

1. 2. 3. 4. 5. 6. 7. 8. 9.

Traitement d'un programme Rappels sur le droulement d'une instruction La liaison d'adresses Les stratgies d'allocation de la mmoire Gestion de la mmoire appliquant le va et vient La mmoire virtuelle Les systmes pagins Les systmes segments TD5

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

1 - Traitement d'un programme


Tout programme crit dans un langage de programmation donn suit la suite logique suivante : il est tap, ensuite enregistr ensuite compil et pour finir excut. La phase de compilation est de plus en plus transparente aux utilisateurs dans les nouveaux environnements de dveloppement. En effet, elle est automatiquement lance mme si le programmeur demande directement l'excution du programme. Tout programme est traduit durant la phase de compilation en instructions machine excutables par l'unit centrale. Un traducteur traduit un programme source en programme objet (exemple interprteur ou compilateur).

Fig. 44. Cycle de vie d'un programme Les traitements entrepris par chaque tape sont dcrits ci-dessous et illustrs travers la figure n 55 :
q

compilation : tape de vrification de la cohrence du programme. Elle comprend trois sous-tapes : la vrification syntaxique, lexicale et smantique. Ainsi le compilateur vrifie que toute variable utilise est dclare, que les points virgules sont mis correctement, que les structures du langage sont utilises correctement, par exemple si le programme est crit en langage C il n'utilise pas de then aprs un if. Lors de la compilation, chaque objet (variable, fichier,.) est associ un nom intermdiaire qui possde une adresse logique. Cette tape gnre un fichier objet. Edition des liens : cette tape tablit le lien entre le programme et les diffrents fichiers concerns. Parmi ceux-ci on trouve, les fichiers d'entte (extension h) les
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

fichiers contenant les autres parties du programme ( dans le cas o il est rparti entre plusieurs fichiers) les bibliothques du langage (dans le cas o des fonctions sont appeles). Cette tape gnre un fichier excutable. Chargement du programme : le fichier excutable ainsi que les bibliothques du langage et/ou du systme sont chargs en mmoire centrale une adresse bien prcise.

Durant chacune de ces tapes, certains objets sont crs au fur et mesure. Le fichier excutable obtenu est une suite d'instructions machines possdant chacune une adresse logique. Chaque adresse logique doit tre traduite en une adresse physique, pour que celle-ci ait une correspondance relle, une fois le fichier charg en mmoire. Nous signalons toutefois que cette conversion d'adresses peut se faire durant l'tape d'dition des liens ou celle de chargement. Nous allons prsent discuter du droulement de l'instruction au niveau du processeur. Quelles adresses sont manipules, logiques ou physiques ? Comment le processeur demande-til une instruction en prcisant son adresse dans le bus d'adresses ?

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

2 - Rappels sur le droulement d'une instruction

Dans un premier temps il est ncessaire de rappeler les diffrentes tapes entreprises par le processeur pour excuter une instruction.
q

Examen de la valeur du compteur ordinal, Extraction de l'instruction dont l'adresse se trouve dans le compteur ordinal, c'est--dire l'envoi de cette adresse travers le bus adresses, l'extraction de l'instruction place cette adresse de la mmoire centrale et son renvoi travers le bus donnes, Chargement de l'instruction dans le registre instruction Dcodage de l'instruction par l'UCC afin d'y identifier les oprateurs et les oprandes. Recherche des oprandes (si elles ont t rcemment utilises, elles peuvent tre dans le cache du processeur). Le cas chant, le processeur doit se procurer les adresses de ces oprandes et reprendre les tapes d'extraction de la mmoire.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3

3 - La liaison d'adresses
On appelle liaison d'adresses la correspondance entre une adresse logique et une adresse physique. Cette tape de liaison peut tre ralise durant l'dition des liens mais dans la plupart des cas elle est effectue au moment de l'excution. Le processeur transmet des adresses physiques sur le bus adresses. Certains systmes utilisent un composant matriel interne au processeur afin de convertir les adresses, appel MMU Memory Management Unit (Unit de gestion de mmoire). On distingue l'adressage absolu et l'adressage relatif.

Sommaire de la section : Adressage absolu Adressage relatif

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_1

3.1 Adressage absolu Quand une adresse est absolue, elle ne ncessite aucun traitement pour obtenir une adresse physique. Les adresses physiques sont utilises telles quelles par lunit centrale car les adresses logiques et physiques sont quivalentes. On ne peut pas dplacer le programme en mmoire centrale. En revanche dans ce cas, le programme doit toujours tre charg la mme adresse, faute de quoi il ne pourra pas sexcuter, moins deffectuer une nouvelle tape dditions des liens. Les programmes correspondants sont dits non relogeables.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec3_2

3.2 Adressage relatif Cest un adressage qui est relatif la premire adresse attribue au programme excutable. Toutes les adresses doivent tre converties ou traduites en partant de cette adresse. On peut ainsi changer de zone mmoire dune excution lautre. Un tel programme est dit relogeable. La conversion des adresses est lie au mode dallocation appliqu : contigu ou non. En mode contigu, une adresse relative qui vaut 100 doit tre considre comme 100 + ladresse de dbut du fichier gnr par lditeur de liens. En mode non contigu, le programme est partag entre plusieurs zones disperses dans la mmoire et le mcanisme de gestion de la mmoire doit trouver la zone et ensuite ladresse. Aprs avoir introduit et expliqu les notions d'adresses et de conversion, nous prsentons les stratgies de gestion de la mmoire centrale.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

4 - Les stratgies d'allocation de la mmoire


On recense essentiellement deux modes de gestion de la mmoire centrale : le mode contigu et celui non contigu. Selon le mode de gestion de la mmoire qui est appliqu, lorsqu'un programme est charg en mmoire centrale partir du disque, le programme sera plac dans une seule zone (allocation contigu) ou rparti entre plusieurs zones (allocation non contigu). Les avantages et les inconvnients sont les mmes que ceux tudis pour la gestion de la mmoire auxiliaire. Par ailleurs la zone de mmoire alloue un programme est de taille limite, or tout programme est amen augmenter de taille lors de son excution. En effet, des rsultats sont calculs et des variables peuvent tre cres dynamiquement. On distingue alors des systmes qui utilisent des zones de taille fixe et d'autres qui permettent au programme de s'tendre sur l'espace avoisinant si celui-ci est libre. Le mode d'allocation contigu n'est plus appliqu de nos jours, nous n'en donnerons qu'un rapide aperu en guise d'historique.

Sommaire de la section : Allocation contigu en mmoire centrale Allocation non contigu en mmoire centrale

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

4.1 Allocation contigu en mmoire centrale Une partition est un emplacement de la mmoire de taille limit, qui est dcrit par une adresse de dbut et une adresse de fin. On distingue les partitions de taille fixe et celles de taille variable. 4.1.1 Les partitions de taille fixe Dans le cas des partitions fixes, la mmoire est dcoupe par l'administrateur au dmarrage du systme.

Fig. 45.Dcoupage de la mmoire en partitions de taille fixe Chaque processus est suppos occuper la plus petite partition qui peut le contenir. Tout espace inutilis dans la partition est perdu car on ne cumule pas des espaces appartenant des partitions voisines. On distingue plusieurs stratgies pour le choix du processus et celui de la partition, parmi lesquelles nous citons : Stratgie de la premire zone libre (First Fit) : la premire partition ayant une taille suffisante Stratgie du meilleur ajustement (best fit) : la plus petite partition de taille suffisante Stratgie prventive du worst fit : qui alloue une grande partition plutt qu'une petite afin de garder des petites zones libres. En effet, les petits programmes sont plus frquents que ceux de grande taille. Le principal inconvnient de l'allocation par partition de taille fixe est la saturation, un programme peut rapidement occuper l'ensemble de la partition qui lui est alloue et l'excution du programme serait ainsi termine pour faute d'espace supplmentaire. La seule issue dans une telle situation est le dplacement du programme sur une autre partition.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

4.1.2 Les partitions de taille variable Lorsque les partitions sont de taille variable, leur nombre ainsi que leur taille varient dynamiquement au fur et mesure que les processus sont crs ou termins. Si un processus ncessite davantage de mmoire car il en a allou dynamiquement pour certaines variables, le systme d'exploitation peut augmenter la taille de sa partition en lui attribuant des partitions voisines s'il en existe. Le cas chant, le recours est le mme que pour les partitions fixes, savoir que le programme est dplac ou bien des processus voisins sont dplacs. il est possible de crer des partitions plus grandes en dplaant des programmes vers le haut ou le bas de la mmoire. Ce traitement est appel compactage de la mmoire, toutefois son usage n'est pas recommand en raison du temps processeur qu'il ncessite. Exemples d'allocation avec des partitions de taille fixe Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est fifo. Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est SJF. Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est priorits. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est fifo. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est SJF. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est priorits.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_1

Exemple d'allocation avec l'algorithme d'allocation mmoire : worst fit lorsque l'algorithme d'ordonnancement est SJF. Simulez votre Exemple. Exemples d'allocation avec des partitions de taille variable Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est fifo. Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est SJF. Exemple d'allocation avec l'algorithme d'allocation mmoire : first fit lorsque l'algorithme d'ordonnancement est priorits. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est fifo. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est SJF. Exemple d'allocation avec l'algorithme d'allocation mmoire : best fit lorsque l'algorithme d'ordonnancement est priorits. Exemple d'allocation avec l'algorithme d'allocation mmoire : worst fit lorsque l'algorithme d'ordonnancement est SJF. Simulez votre Exemple.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec4_2

4.2 Allocation non contigu en mmoire centrale Cest le mode dallocation qui est appliqu par les systmes actuels, ainsi un fichier peut tre charg des adresses disperses en mmoire. La correspondance entre les adresses est ralise au cours de lexcution. La mmoire peut tre alloue par zones de taille fixe ou variable. Quand toutes les zones ont la mme taille, on parle de page et de systmes pagins. Quand leur taille peut varier, on parle de segments et de systmes segments. On peut combiner les deux modes: des segments composs de pages.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5

5 - Gestion de la mmoire appliquant le va et vient

La taille de la mmoire centrale est limite et trs faible compare celle du disque dur. La mmoire centrale est frquemment sature, le systme vacue alors certains programmes de la mmoire et les place sur une zone bien prcise du disque (dite zone de swap, elle ne contient que les processus dlogs de la mmoire centrale). Ensuite il charge d'autres programmes partir du disque en mmoire centrale et les excute. On a vu apparatre plusieurs techniques qui ont donn naissance aux fondements de la gestion actuelle des mmoires centrales : la premiere est le va et vient (swapping en anglais) Cette technique s'est rpandue avec le temps partag o il fallait excuter les processus de plusieurs utilisateurs. Quand un processus a fini son quantum de temps et qu'il existe plus de processus que la mmoire ne peut contenir, il est dplac sur le disque par un processus appel swapper. Il faut ce stade prciser que le processus est transfr en entier. C'est l'ordonnanceur en collaboration avec le swapper qui est charg de le ramener une fois que son excution approche. Pour l'utilisateur ceci est transparent. La question qui se pose prsent est : le processus une fois ramen peut-il tre plac n'importe o ? Cela dpend du mcanisme de traduction d'adresses. Si les adresses sont converties l'excution, le MMU dterminera les nouvelles adresses physiques. Autrement le processus devra tre plac la mme adresse.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

6 - La mmoire virtuelle

Le swapping ne rsout pas le problme de certains programmes trop grands pour tre contenus en mmoire centrale. On a ainsi vu apparatre un nouveau mode de gestion de la mmoire bas sur la notion de mmoire virtuelle. Elle reprsente le second mode appliqu afin d'excuter des programmes volumineux (en plus du swapping). On parle de mmoire virtuelle car elle a une taille irrelle, bien plus grande que la mmoire physique et elle permet aux programmes d'avoir des tailles plus grandes que celle de la mmoire centrale, tout simplement. Ce n'est pas un grand espace virtuel que vont se partager les processus mais la possibilit pour chaque processus d'occuper un espace d'adressage trs grand. La taille des programmes, des donnes et de la pile peut dpasser la mmoire disponible, le systme d'exploitation garde en mmoire les parties qui sont utilises et stocke le reste sur le disque. On voit ainsi que la mmoire virtuelle s'inspire du swapping. En supposant quune partie du disque dur est intgre la mmoire centrale, on peut disposer dun espace dadresses logiques plus grand. L'espace d'adressage du processus est dsormais un espace d'adressage virtuel dont les adresses varient de 0 une adresse maximale fixe qui est la mme pour tous les processus. La taille de la mmoire virtuelle est fixe par la taille des registres, la plupart des machines ont des registres de 32 bits donc les adresses logiques sont entre 0 et 232 soit un espace dadressage de 4 G0. La conversion des adresses virtuelles en adresses physiques est souvent ralise par le MMU. La mmoire virtuelle est indpendante du mode de gestion pagin ou segment qui est appliqu. Dans un systme pagin, l'espace virtuel sera partag en pages et dans un systme segment, il sera dcompos en segment.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section7

7 - Les systmes pagins

L'ensemble de la mmoire logique (l'espace d'adressage) d'un programme est dcompos en pages numrotes partir de 0. La mmoire centrale ou physique est dcompose en cases numrotes de la mme manire. L'espace d'adressage logique d'un programme ne devient concret qu'une fois plac en mmoire centrale. Sa taille effective reprsente l'ensemble des adresses logiques utilises, ainsi l'adresse 10234 ne fera partie de cet espace que si un objet y est plac.. Quand le systme n'applique pas de mmoire virtuelle, on a le mme nombre de cases et de pages. Un programme est charg du disque dur en mmoire centrale quand le systme affecte une case pour contenir la page. Gnralement les pages et les cases ont la mme taille. Il faut souligner que les pages sont successives et les cases galement mais deux pages successives ne sont pas forcment places dans des cases successives.

Fig. 46. Placement de pages en mmoire centrale Dans la figure n 57, on observe que le programme P2 constitu de 5 pages a uniquement ses deux premires pages charges et qu'elles ne sont pas voisines en mmoire centrale.

Sommaire de la section :
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section7

La table des pages Conversion des adresses Fonctionnement de l'unit de gestion de la mmoire: Le MMU La pagination multi-niveaux La mmoire associative Inconvnients des systmes pagins

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_1

7.1 La table des pages Le systme d'exploitation utilise une structure de donnes pour dcrire les pages d'un processus. Une entre de la table contient les informations suivantes :
Bit de prsence Bit de modification Bits de protection Bit de rfrence Adresse sur le DD Numro de la case mmoire

Fig. 47. Une entre de la table des pages d'un processus Le bit de prsence indique si la page est charge en mmoire ou non Les bits de protection dfinissent le mode d'accs la page en lecture ou en criture Le bit de modification permet dconomiser une recopie sur le disque si la case va tre alloue une autre page. Le bit de rfrence indique que la page place dans cette case a t rfrence c'est--dire accde, cette information sert aux algorithmes de remplacement de pages. La table des pages contient une entre pour chaque page de l'espace d'adressage. Si le systme d'exploitation applique la mmoire virtuelle, la plus grande adresse virtuelle est 232 Soit des pages de 4 KO, une page peut contenir 4096 adresses. Le nombre des pages est gal la taille de la mmoire virtuelle divis par la taille d'une page. Soit 4 G0/4 KO = 2 million de pages.
20

environ 1

Une table des pages comportant un million d'entre est une structure de donnes gigantesque dont la taille sera pnalisante lors du parcours. Par ailleurs, mme si la table n'est remplie qu'en partie, la structure de tableau tant taille fixe, il faut rserver l'espace pour le million ventuel de pages la cration de la table des pages. Nous rappelons ce stade que chaque programme a sa propre table des pages. Fort heureusement, On distingue plusieurs manires d'organiser cette table et nous verrons plus loin qu'elle peut tre dcompose en blocs et charge au fur et mesure. Nous reviendrons plus tard sur cette organisation de la table des pages. Nous allons dans la section suivante prsenter une premire utilisation de cette table par le MMU.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_2

7.2 Conversion des adresses Une adresse logique AL est donne sous la forme suivante (x,y), x indique la page et y le dplacement au sein de cette page. X est obtenu en divisant AL par la taille d'une page et y est le reste de cette division. Le calcul de l'adresse physique AP se fait de la manire suivante : le systme d'exploitation commence par trouver l'emplacement de la page x en mmoire centrale (la case correspondante), ensuite il effectue un dplacement de y par rapport la premire adresse dans cette case, en effet les pages et les cases sont de mme taille. Dans la figure n 48, nous prenons l'adresse logique 9035 et nous l'exprimons sous la forme (x, y) prcdemment prsente. 9035 div 4 KO = 9035 div 4096 = 2 cette adresse se trouve donc dans la page n 2. Le dplacement est gal 9035 modulo 4096 = 843 donnant le couple (2,843). Il suffit de trouver l'adresse de la case contenant la page n 2 et d'y effectuer un dplacement de 843 pour obtenir l'adresse physique.

Fig. 48. Exemple de conversion d'une adresse

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_3

7.3 Fonctionnement de l'unit de gestion de la mmoire: Le MMU Le MMU est le composant matriel charg de la conversion des adresses logiques en adresses physiques. La plupart des processeurs CISC disposent d'une unit de gestion de la mmoire. Un composant rserv la conversion est en effet plus rapide que l'excution d'un programme de conversion. Par ailleurs, la conversion des adresses est sollicite une frquence trs leve dans un ordinateur. Il y a quelques annes ce composant se trouvait sur la carte mre, prsent, si jamais il existe, il est intgr au processeur, ce qui rend la conversion plus rapide. Le fonctionnement du MMU est le suivant : l'adresse logique est donne sur 32 bits, il la considre comme un numro de page et un dplacement au sein de cette page. Ensuite il utilise la table des pages afin d'obtenir le numro de la case dans laquelle est charge cette page. Le numro de la page est utilis comme indice dans cette table des pages. Enfin il concatne ce numro de case avec le dplacement, afin d'obtenir l'adresse physique (si la case et la page ont la mme taille ce qui est gnralement le cas, le dplacement n'a pas tre modifi). Pour savoir si l'adresse demande existe en mmoire ou non, savoir que la page associe est charge, le MMU utilise le bit de prsence dans la table des pages (en fait l'entre correspondant la page est charge au niveau du MMU et examine). Lorsque le bit de prsence indique que la table n'est pas charge en mmoire centrale, le MMU gnre un dfaut de page qui, comme son nom l'indique, signale au systme d'exploitation qu'il doit charger la page en question afin de terminer la conversion de l'adresse. On a un dfaut de page au dbut de l'excution, avant que la page ne soit charge ou bien si elle a t retire de la mmoire car il n'y a plus assez de place.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_3

Fig. 49. Fonctionnement du MMU Le systme d'exploitation appelle une procdure pour obtenir un emplacement de case libre. Si ce numro lui est rendu, il obtient, grce la table des pages, l'adresse sur le disque dur de la page charger. Le cas chant si aucune case n'est libre, il procde un remplacement de page, savoir qu'il droule un algorithme qui lui indique quelle page retirer afin d'en rquisitionner la case.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_4

7.4 La pagination multi-niveaux Le principal inconvnient des systmes pagins est la taille gigantesque de la table des pages. De plus, chaque programme a sa propre table qui doit tre charge en mmoire, autrement le systme d'exploitation n'a pas accs au bit de prsence ni l'adresse sur le disque des pages. La solution a t propose avec la pagination multi-niveaux o la table des pages est dcompose en petites tables de taille raisonnable qui sont charges au fur et mesure que le systme en a besoin. On peut souligner deux intrts cette organisation : partant du fait qu'une adresse n'appartient l'espace d'adressage d'un programme que si elle est utilise par le programme, les tables sont alloues au fur et mesure que les adresses qu'elles comportent sont utilises. Par ailleurs on ne charge partir du disque que les tables dont on se sert, ainsi on charge la demande ce qui vite d'avoir toutes les tables en mmoire centrale. On dit alors que la table des pages est elle-mme pagine. La figure n 50 suivante illustre comment organiser en 2 niveaux des pages virtuelles crites sur 20 bits.

Fig. 50. Exemple de pagination deux niveaux


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_4

La table du premier niveau comporte 1024 entres et permet d'adresser autant de tables de pages (1024 = 210). Ainsi les 10 premiers bits de l'adresse logique sont considrs comme index dans cette table. Une fois qu'on a accd l'entre adquate, on trouve l'adresse de la case mmoire o se trouve la table des pages (de second niveau). Les 10 autres bits sont alors utiliss comme index dans cette table et l'entre nous dlivre la case mmoire associe la page virtuelle. Les cases ayant une taille de 4 KO soit 212, on retrouve les 32 bits de l'adresse logique (10 + 10 + 12). Prenons l'exemple de l'adresse virtuelle 5269875 que l'on crit 506973 en hexadcimal. Les 12 bits de poids faible donnent un dplacement de 973. Le nombre 506 en hexadcimal s'crit sur 12 bits en binaire (010100000110)2 , si nous retenons les 10 bits correspondants l'index dans la seconde table, nous obtenons un numro de page = 100000110 soit l'entre 262 dans la table de deuxime niveau et les 2 bits restants (01)2 l'entre n 1 dans la table de premier niveau. La pagination 2 niveaux ne rsout pas dfinitivement le problme de la taille de la table des pages. C'est pour cette raison que les systmes d'exploitation utilisent des tables plusieurs niveaux gnralement 3 ou 4. Il va de soi que le nombre de niveaux est dcid par le matriel, donc li au MMU utilis pour grer la pagination. Certains processeurs SPARC utilisent une pagination 3 niveaux. La pagination aise a commenc avec les processeurs MOTOROLA 68000 plus prcisment 68030 o le nombre de niveaux est paramtrable (entre 1 et 4). Il est galement possible pour le systme d'exploitation de fixer la taille des pages, donc le nombre de bits pour le dplacement, ainsi que le nombre de bits pour chaque niveau.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_5

7.5 La mmoire associative Cette mmoire est destine acclrer la pagination. Les constructeurs ont propos la mmoire associative afin dy conserver les adresses physiques, ce qui vite de passer par la table des pages. En effet on a constat que les programmes font souvent rfrence aux mmes adresses ou des adresses voisines (principe de la localit dans le temps, voir la section 6.4) La mmoire associative un composant matriel qui associe les adresses physiques aux adresses virtuelles sans passer par la table des pages. Ce composant intgr au MMU dispose dun petit nombre dentres (entre 8 et quelques centaines) et une entre est semblable celle dune table des pages. La diffrence est que la recherche dans ce tableau se fait en parallle sur toutes les entres, donc en une seule fois. Cette mmoire est un cache spcial de traduction d'adresses appel TLB (tampon de traduction anticip). La gestion de ce cache est associative (on peut utiliser n'importe quelle entre), c'est pour cela que l'on parle de mmoire associative. Si la page n'est pas trouve, le MMU a recours la table des pages (ce qui constitue une perte de temps, mais toute solution prsent des avantages et des inconvnients) et une fois le numro de la case trouv, il extrait une entre de la mmoire associative et y place la nouvelle page rfrence. Cette mmoire est trs intressante pour le cas o l'unit centrale est en train dexcuter une boucle (noublions pas que le MMU traduit les adresses plusieurs fois pour une mme instruction). Lidal serait davoir une grande mmoire associative mais on est hlas limit par les capacits du composant matriel.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec7_6

7.6 Inconvnients des systmes pagins Les systmes pagins prsentent les inconvnients suivants : La fragmentation interne : Elle dsigne l'espace non utilis au sein d'une page. La fragmentation interne est une des principales caractristiques des systmes pagins. En effet, le systme doit espacer les adresses de code, de pileafin que ces derniers puissent crotre. En consquence, des adresses sont inutilises au sein d'une page. Par ailleurs, une page place en mmoire occupe la case en entier, mme si elle ne comporte que 2 adresses affectes. La taille de la table des pages est norme : Nous avons expliqu plus haut que la table des pages comporte un million d'entres. Si chaque entre ncessite 4 octets, 4 MO de la mmoire centrale sont ncessaires afin de charger cette table. Or tout programme a sa propre table des pages. La pagination multi-niveaux rsout en partie le problme puisqu'elle charge les tables au fur et mesure que le systme d'exploitation s'en sert. Le partage de code est difficile mettre en uvre dans un systme pagin : Le contenu dune page est gnralement inconnu du programmeur, il lui est donc difficile de partager une page. La protection des objets est galement dlicate raliser pour les mmes raisons de transparence. Le programmeur ignore l'emplacement des objets protger, son seul recours est de protger une page entire ou plutt un ensemble de pages (en utilisant les bits de protection au niveau de la table des pages) car le contenu d'une page lui est inconnu.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section8

8 - Les systmes segments

Sommaire de la section : La segmentation Motivation de la segmentation La table des segments Conversion des adresses Inconvnients des systmes segments

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_1

8.1 La segmentation A la diffrence des systmes pagins, la mmoire ici est alloue par partitions de tailles variables appels segments. L'ensemble des segments est gnr la compilation. Un segment a une taille qui peut varier (crotre ou dcrotre) au cours de l'excution. Il comporte des adresses entre 0 et sa taille actuelle. Voyons prsent l'intrt des systmes segments. Prenons l'exemple courant de la phase de compilation. Le compilateur gnre : A la diffrence des systmes pagins, la mmoire ici est alloue par partitions de tailles variables appels segments. L'ensemble des segments est gnr la compilation. Un segment a une taille qui peut varier (crotre ou dcrotre) au cours de l'excution. Il comporte des adresses entre 0 et sa taille actuelle. des adresses pour les variables contenues dans la table des symboles, des adresses de constantes contenues dans la table des constantes, des adresses pour la pile des adresses pour le code Chaque ensemble d'adresses est plac en mmoire dans une partition part, les adresses concernant le code sont dans une partition, celles de la pile sont dans une autre zone. Supposons prsent que le systme adopte une taille fixe pour chacune de ces zones. Les partitions tant places conscutivement dans l'espace d'adressage logique, il est vident que si on ne prvoit pas suffisamment d'adresses pour une zone donne, la compilation va s'arrter alors qu'il reste des adresses ct des autres zones. Par ailleurs si on espace normment les zones, l'espace entre elles est perdu. Pour cette raison dans les systmes pagins on a de la fragmentation interne due l'espace rserv pour les adresses gnres par le compilateur. La solution est propose par l'adoption des segments qui sont des partitions taille variable. Tout comme les systmes partags, un segment est charg du disque vers la mmoire centrale pour tre plac une adresse prcise pouvant le contenir car de taille suffisante. Si le segment
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_1

a besoin de crotre, il le fera sur l'espace avoisinant. Dans un espace d'adressage donn il n'y a aucune restriction sur le nombre de segments. La diffrence entre un segment et une page est trs nettement illustre dans la figure n 51 qui suit. On y observe que dans chaque segment les adresses dmarrent 0 et qu'il n'y a aucun lien entre les segments logiques d'un programme contrairement aux pages qui elles, se suivent.

Fig. 51. Placement de segments en mmoire centrale L'intrt de ce mode de gestion est que le segment ne s'largit que si l'adresse est affecte. A titre d'exemple nous citons la taille du segment de pile qui s'largit et rtrcit en fonction des appels de fonctions. Le segment est une solution efficace mais il doit tre gr par le programmeur. Gnralement il contient des objets d'un seul type : procdures ou variables ou pile..ce qui a pour avantage de sparer les donnes et les programmes dans des espaces indpendants. Le fait qu'il soit gr par le programmeur rend son utilisation dlicate mais les avantages sont multiples.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_2

8.2 Motivation de la segmentation La segmentation a t dveloppe pour pallier les inconvnients de la pagination. Nanmoins, elle prsente de nombreux avantages, compare la pagination : Le premier avantage concerne la protection, le programmeur sait ce que contient son segment, il peut dcider den interdire laccs en criture afin de le protger. Il peut galement dcider de le partager pour que plusieurs processus puissent lexcuter. Dans les systmes pagins, ces derniers sont difficiles mettre en uvre car on ignore le contenu dune page. En cas de modification du programme, seules les adresses appartenant au segment ayant t modifi le seront. Le rajout de code une procdure entrane le dcalage des adresses de ce segment mais les autres segments ne sont pas affects. La segmentation apporte une solution la fragmentation interne caractristique des systmes pagins puisque le segment ne contient que lespace des adresses rellement affectes.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_3

8.3 La table des segments C'est la structure de donnes qui dcrit tous les segments d'un processus donn. Elle comporte une entre par segment au niveau de laquelle nous trouvons, la base du segment, sa taille mais galement d'autres informations utiles pour la conversion et le remplacement. Ainsi un bit de prsence est ncessaire, galement un bit de rfrence et un bit de modification. Une entre de la table des segments dcrit lindice i le segment numro i par la donne de deux valeurs :
Base B Taille T

La base est ladresse de dbut du segment et la taille la longueur ou la taille du segment. Une adresse (s,d) sera convertie en B + d.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_4

8.4 Conversion des adresses Le compilateur gnre dsormais des adresses appartenant des segments. A la diffrence des systmes pagins, l'adresse logique a la forme (s,d) : numro du segment et adresse dans le segment (on parle d'espace logique a deux dimensions). La procdure de conversion suit le cheminement suivant : on commence par retrouver l'emplacement du segment en mmoire centrale grce une table des segments. Ensuite au sein du segment, on effectue un dplacement de d pour accder l'adresse physique. Ces tapes sont illustres travers la figure n 52. Chaque programme dispose de sa table des segments. De mme que dans un systme pagin, on vrifie d'abord si le segment est en mmoire. En revanche, On distingue un test supplmentaire qu'il faut raliser, savoir qu'on vrifie que le dplacement est bien infrieur la taille du segment autrement la conversion retournerait une adresse contenue dans un autre segment qui peut ne pas appartenir ce programme.

Fig. 52. Conversion d'une adresse dans un systme segment


Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_4

On peut passer d'un systme segment un systme pagin si la taille T est la mme pour tous les segments, on a alors des pages de taille T.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec8_5

8.5 Inconvnients des systmes segments Les systmes segments prsentent certains inconvnients qui sont toutefois moins nombreux que ceux des systmes pagins. La premire difficult rside dans le choix des segments qui est la charge du programmeur. Un minimum de connaissances en programmation structure est donc requis. Par ailleurs, on retrouve la fragmentation dans sa forme externe. Il va de soi quelle ne peut pas tre interne puisquun segment ne peut contenir que les adresses qui sont rellement affectes. Lespace perdu entre les segments placs en mmoire appel miettes reprsente la fragmentation externe.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme d'exploitation n5

TD systme dexploitation N5
Exercice 1 On considre une machine M dans dont la mmoire centrale est partitionne en 5 partitions de tailles respectives de 100, 500, 200, 300 et 600 K. On suppose que nous avons 4 processus que nous voulons excuter sur la machine M dans lordre P1, P2, P3, P4 et qui ont une taille respective de 212, 417, 112 et 426 k. Comment seront placs ce processus en mmoire centrale dans le cas o lalgorithme est 1) First-fit 2) Best-fit 3) Worst-fit

Exercice 2
On considre la table de segment suivante Segment 0 1 2 3 4 Base 219 2300 90 1327 1952 Longueur 600 14 100 580 96

Quelles sont les adresses physiques pour les adresses logiques suivantes 1) 0,430 2) 0,10 3) 2,500
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme d'exploitation n5

4) 3,400 5) 4,112

Exercice 3
soit un espace adresse logique de huit pages de 1024 mots chacune, en correspondance avec une mmoire physique de 32 cadres de pages Combien de bits existent-ils dans ladresse logique Combien de bits existent-ils dans ladresse physique

Exercice 4
Soit un systme de pagination avec une table de pages stocke en mmoire 1) Si une mmoire prend 200 ns, combien de temps prend une rfrence mmoire pagine 2) Si on ajoute des registres associatifs et que 75% de toutes les rfrences la table de pages se trouvent dans les registres associatifs, quel est le temps effectif daccs la mmoire en supposant que trouver une entre dans la table de pages dans les registres associatifs ne prend pas de temps si lentre se trouve l dedans.

Exercice 5
Certains systmes va-et-vient tentent dliminer la fragmentation externe au moyen de compactage. Supposez quun ordinateur de 1M de mmoire utilisateur effectue un compactage toutes les secondes. Sil faut microseconde pour copier un octet et se la taille moyenne des zones libres est gale 0.4 fois celle des segments, quelle fraction du temps, quelle fraction du temps processeur fautil pour le compactage ?

Exercice 6
Soit la chane de rfrence suivante 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme d'exploitation n5

on se propose de calculer le nombre de dfaut de page avec les algorithmes FIFO, de lhorloge et LRU. On rappelle quinitialement aucune page nest charge en mmoire. La mmoire centrale est compose de 5 cases. Schmatisez chaque tape le contenu de la liste de remplacement et prcisez pour chaque algorithme le nombre de dfaut de pages et les pages qui en sont responsable.

Exercice 7
On dispose dun ordinateur dont le systme de mmoire virtuelle compte 3 cadres de pages (frames) pour un espace virtuel de 8 pages (numrotes de 0 7). On suppose que les trois cadres sont initialement vides et que les pages sont appeles dans lordre suivant au cours de lexcution des programmes partageant laccs au processeur : 2-6-3-4-6-5-6-7-4-5-6-5-4-3-4-6-3-2 Indiquez tout au long de la squence dexcution quelles pages sont prsentes dans un cadre de la mmoire physique et le nombre de fautes de page lorsque lalgorithme de remplacement de pages est : 1. lalgorithme de remplacement optimal, (6) 2. lalgorithme L R U.(10)

Exercice 8
On suppose que la mmoire (non pagine) dun ordinateur prsente des partitions despace libre de 100K, 500K, 200K, 400K et 600K (dans cet ordre). Comment serait allou lespace mmoire si des demandes taient faites par des processus pour des partitions (contigus) de 50K, 125K, 440K, 320K et 130K (dans cet ordre) (a) avec un algorithme de best-fit ? (b) avec un algorithme de first-fit ?
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme d'exploitation n5

(c) avec un algorithme de worst-fit ? Quel algorithme utilise ici la mmoire de la faon la plus judicieuse ? Pourquoi ?

Exercice 9
On considre un systme disposant de 16 MB de mmoire relle non pagine dont 4 MB sont occups par le systme dexploitation. On suppose que lexcution de chaque processus se compose dune seule gicle dUCT (possiblement dcompose en squences plus courtes, par suite des activits du rpartiteur de bas niveau) suivie dune priode pendant laquelle sont effectues des E/ S, aprs quoi le processus termine son excution en librant sa partition. On suppose de plus que les processus nattendent pas avant deffectuer leurs E/S (par exemple, ils utilisent tous un priphrique diffrent). Le tableau suivant donne un exemple de squence de tches pour le systme : instant (ms) Processus Taille Gicle dUCT 6 MB 3 MB 5 MB 1 MB 3 MB 4 MB 1 MB Dure E/S

0 50 100 150 300 500 500

A B C D E F G

200 ms 300 ms 200 ms 300 ms 100 ms 200 ms 200 ms

200 ms 300 ms 300 ms 200 ms 300 ms 100 ms 100 ms

La premire colonne donne linstant de soumission dun processus (au rpartiteur de haut niveau). La seconde et troisime colonnes donnent le nom du processus et la taille de la partition mmoire quil demande au systme. La quatrime colonne donne la dure de la gicle dUCT et la cinquime colonne donne la dure de lexcution des E/S pour ce processus. Par exemple, la demande dexcution pour le processus C est soumise t= 100 ms au rpartiteur de
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

TD systme d'exploitation n5

haut niveau. Lorsque ce processus sera charg en mmoire, il y occupera un espace adresse de 5 NB. Sa gicle dUCT durera 200 ms (ventuellement dcompose en plusieurs morceaux, par suite de laction du rpartiteur de bas niveau), puis C fera une demande dE/S dont lexcution occupera 300 ms, aprs quoi il terminera son excution en librant sa partition. Question Donnez les tats d'occupation de la mmoire aux diffrentes tapes de traitement de ces processus jusqu compltion de leur excution, sous les hypothses suivantes : Les partitions sont de taille variable ; Le gestionnaire de la mmoire utilise un algorithme de Best Fit pour lallocation des trous ; Le rpartiteur de haut niveau fonctionne selon PAPS ; Le rpartiteur de bas niveau utilise lalgorithme du tourniquet avec un quantum de 100 ms ; Les changements de contexte sont instantans.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

plan_ch6_m1

Conception de Systmes de Gestion de la Mmoire Centrale


Objectifs

1. 2. 3. 4.

Conception de systmes pagins Conception des systmes segments La segmentation avec pagination TD6

section1

1 - Conception de systmes pagins

Sommaire de la section : Allocation et libration de cases Remplacement de pages A propos de chargement de pages

sec3_1

1.1 Allocation et libration de cases Le systme d'exploitation peut utiliser une structure statique ou dynamique pour conserver les numros de cases libres. La structure statique sera une table de bits, o chaque bit reprsentera une case. Il faut parcourir la table la recherche de bits conscutifs pour un processus qui ncessite 3 cases par exemple, autrement il sera allou de manire non contigu. Cette table aura au maximum la taille de la mmoire centrale divise par la taille d'une page. Exemple : pour grer 128 MO il faut 128 * 1024 bits soit 4 KO. La position du bit donne le numro de la case qui, une fois multipli par la taille d'une case, donne l'adresse de dbut de la case. Cette organisation statique est donc assez satisfaisante. En adoptant une structure dynamique, il faut lier entre eux les numros de cases libres. Cette liste peut tre conserve dans un ordre tri afin que les processus ne soit pas trop parpills en mmoire. En d'autres termes, tant donn que les cases ont la mme taille que les pages, il n'est pas ncessaire d'effectuer une recherche minutieuse de la case la plus optimale allouer. Certes, des optimisations peuvent tre effectues pour raliser de l'allocation contigu autant que possible mais ce traitement reste simple.

sec3_2

1.2 Remplacement de pages La mmoire tant de taille faible, elle peut rapidement tre sature. Pour cette raison, on a souvent recours au remplacement de pages, d'autant plus qu'on applique la mmoire virtuelle qui introduit un nombre trs lev de pages. Nous rappelons qu'une page est remplace si le processeur rclame une information situe dans une page qui se trouve tre non charge en mmoire centrale et qu'il n'existe aucune case libre pour y charger cette dernire. Assez souvent il peut y avoir confusion entre dfaut de page et remplacement de page. Le dfaut de page peut entraner un remplacement si le systme d'exploitation ne trouve aucune case de libre. Lorsqu'il ne reste plus de cases libres, le systme d'exploitation va reprer une case et examiner son bit de modification. Une valeur 1 indique que cette page a t utilise en criture. Il va ainsi la sauvegarder sur le disque et charger la page qui fait dfaut l'emplacement de cette case. Si le bit de modification vaut 0, la page est charge dans cette case en crasant l'ancienne page. Le fait d'utiliser de la mmoire virtuelle augmente le nombre de dfauts de pages puisque les deux tailles de mmoire ne sont pas comparables. Nous verrons plus loin que le systme peut anticiper et remplacer des pages avant d'atteindre l'tat de saturation de la mmoire dans l'optique d'viter ce que l'on appelle l'croulement du systme. Il est clair que le choix de la page enlever de la mmoire peut influencer les performances du systme. Prenons le cas d'une page appartenant une boucle qui est slectionne par le systme. Sitt la page retire et sauvegarde sur le disque, il faudra de nouveau la charger en mmoire. On aurait pu gagner du temps en choisissant une page plus approprie, par exemple une page non utilise rcemment. 1.2.1 Principe d'un algorithme de remplacement

On distingue plusieurs stratgies de remplacement, mais elles se rejoignent toutes au niveau du principe et des structures de donnes. Il faut prciser que ces algorithmes sont trs coteux car ils ncessitent que les numros de pages en mmoire soient organiss sous la forme d'une liste chane. Il est impensable d'adopter une structure de donnes statique.

sec3_2

Cette liste appele liste des pages contient des lments chans simplement ou doublement. Chaque lment contient un numro de page. Le systme d'exploitation peut ventuellement inclure dans la structure d'un lment de la liste le numro du programme auquel la page appartient. En effet il peut utiliser une liste de remplacement globale pour tous les programmes en mmoire ou construire une liste par programme. L'algorithme de remplacement organise la liste de telle sorte que les lments en tte dsignent les pages retirer. Il est sollicit deux reprises : pour le remplacement d'une page et chaque fois qu'une page est utilise. Le remplacement d'une page consiste retirer la page qui est en tte de liste. En revanche selon la stratgie applique, chaque fois qu'une page est utilise l'algorithme peut tre amen la changer de position au sein de la liste. Il l'emmnera vers la queue afin d'viter qu'elle ne soit retire. 1.2.2 Remplacement local ou global ?

Il peut sembler implicite que l'algorithme de remplacement de page s'applique au niveau local et que le systme d'exploitation excute un algorithme par programme. Ceci est tout fait concevable puisqu'il suffit de sauvegarder un pointeur sur la liste des pages qu'utilise l'algorithme. Il semble galement logique qu'on ne retire pas les pages d'un autre programme pour continuer excuter celui qui ncessite le chargement en cours. En ralit On distingue deux modes de remplacement : local et global. Dans le mode global, on peut supprimer les pages d'un autre programme pour excuter le processus qui a provoqu le dfaut de page. Dans le mode local, chaque programme a un nombre de cases fixes qui lui sont alloues et les concepteurs doivent dcider de la valeur de ce nombre. Le nombre de cases peut tre choisi de manire quitable ou en fonction de la taille du programme. Toutefois, si on alloue peu de cases au programme, son nombre de dfauts de pages va augmenter et ralentir son excution, et le cas contraire, il va pnaliser un second programme qui restera en attente de case libre alors que le premier en a plus que ncessaire. Le systme Windows NT applique le mode de remplacement local. Le systme Unix quant lui applique un remplacement global. En rgle gnrale, le remplacement au niveau global

sec3_2

donne de meilleurs rsultats et c'est la mthode la plus courante, mais il est plus difficile mettre en oeuvre. On distingue plusieurs algorithmes de remplacement qui implmentent diverses stratgies. On peut retirer une page choisie au hasard mais au risque de la recharger immdiatement aprs, ce qui entrane une perte de temps inutile. Nous prsentons dans les paragraphes ci-dessous plusieurs stratgies de remplacement. Certaines sont simples d'autres plus recherches et visent retirer la page qui pnalise le moins l'excution. 1.2.3 L'algorithme de remplacement de page optimal

Cet algorithme se base sur un principe trs simple, mais impossible en pratique mettre en ouvre. L'ide est d'associer chaque page le nombre d'instructions excuter avant de la rfrencer. Par exemple, on peut supposer que la page n1 sera appele aprs que la page n 0 soit excute en entier. Si les pages ont une taille de 4 KO et qu'une instruction s'crit sur 4 octets, une page contient environ 1000 instructions. On associe ainsi la valeur 1000 la page n 1, la valeur 2000 la page n 2 et la valeur 10000 la page n 10. Lorsque le systme est amen effectuer un remplacement, en retirant la page de plus grand numro, on est assur de retirer une page dont les instructions ne seront excutes prochainement. Malheureusement cette supposition s'croule rapidement ds lors qu'une page contient une ou plusieurs boucles ou qu'on y effectue un appel de procdure. Le systme ne peut pas connatre avec prcision l'instant o les diffrentes pages seront rfrences moins d'excuter une fois le programme. La solution est apporte par l'utilisation d'un simulateur qui excute le programme et mmorise au bout de combien d'instructions chaque page est rfrence. L'algorithme optimal est impossible mettre en ouvre, il est toutefois utilis pour l'valuation des performances des algorithmes de remplacement. --->Simuler l'algorithme optimal. 1.2.4 L'algorithme de remplacement d'une page selon FIFO

La politique FIFO peut tre applique au remplacement d'une page. La page remplacer est celle qui a t charge en mmoire depuis le plus long temps. Le remplacement concerne la page en tte et lors d'un chargement on met les pages au fur et mesure en dernire position.

sec3_2

La figure n 53 reprsente des pages selon FIFO. Cet algorithme consomme trs peu de temps processeur mais il n'est pas appliqu car il n'a aucune considration pour les pages. Ainsi il peut retirer une page en cours d'utilisation.

Fig. 53. Remplacement de pages avec FIFO --->Simuler l'algorithme FIFO. 1.2.5 L'algorithme de la seconde chance

Cet algorithme est une version amliore de FIFO, savoir qu'il en conserve les avantages en occupant un temps processeur faible et en pallie les inconvnients en donnant une seconde chance la page en tte. Selon FIFO mme si la page 2 est rutilise, elle ne change pas de position dans la liste et sera enleve au prochain remplacement. Avant de retirer la page en tte, cet algorithme examine son bit de rfrence en accdant la table des pages. Une valeur du bit 1 indique que la page a t utilise rcemment. Elle est retire et place en queue et son bit R rinitialis. 1.2.6 L'algorithme de l'horloge

Cet algorithme est identique au prcdent sauf qu'il utilise une structure de liste chane circulaire. Cette organisation vite que les pages utilises soient dplaces vers la queue. Il suffit de dplacer le pointeur tte sur l'lment suivant pour que la page qui tait en tte soit considre en queue.

sec3_2

Fig. 54. Remplacement de page avec l'algorithme de l'horloge 1.2.7 L'algorithme de remplacement d'une page non rcemment utilise NRU

L'algorithme NRU (Not Recently Used) utilise les bits de Rfrence et de modification. Si une page n'a pas t rfrence, le bit de rfrence sera 0. Par contre si la page l'a t, afin de diffrencier les pages rcemment utilises des autres, le systmes d'exploitation utilisent les interruptions horloge afin de remettre ce bit 0. Ainsi entre 2 interruptions horloge, les pages qui ont t utilises (accdes en lecture ou criture) auront leur bit 1 et ne seront pas choisies par l'algorithme en cas de remplacement effectuer. L'algorithme tient aussi compte du bit de modification car une page peut tre rfrence ensuite modifie et ensuite R remis zro car elle est reste quelques temps non utilise. Si jamais cette page doit tre enleve de la mmoire, elle doit forcment tre sauvegarde sur le disque. Dans ce cas, il vaut mieux choisir une page qui a t non rfrence et non modifie qu'une page qui a t non rfrence et modifie. Les pages sont rparties en 4 classes : Classe 0 : non rfrence non modifie Classe 1 : non rfrence modifie Classe 2 : rfrence non modifie Classe 3 : rfrence modifie L'algorithme NRU choisit la classe non vide de plus petit numro. Cet algorithme a des

sec3_2

performances assez satisfaisantes. 1.2.8 L'algorithme de remplacement de la page la moins rcemment utilise LRU

La stratgie LRU (Least Recently Used) est base sur la supposition suivante : une page qui a t utilise plusieurs fois rcemment va encore l'tre l'avenir et une qui ne l'a pas t ne le sera pas. Supposition qui n'est pas trs plausible mais qui se tient si on considre le cas des boucles, des variables et des tableaux. LRU place en tte de liste les numros des pages les plus utilises et en fin celles qui le sont moins. Chaque fois qu'une page est rfrence dans une instruction, il faut mettre jour la liste LRU, savoir rechercher le numro de page et mettre l'lment correspondant en dbut de liste d'o le cot associ l'algorithme. Cet algorithme est en thorie le meilleur pour implmenter le remplacement des pages puisqu'il retire la page la moins pnalisante et celle qui risque fort peu d'tre utilise nouveau. C''est galement le plus coteux tant donn les mises jour chaque accs une page. Nanmoins il est utilis pour la gestion de la mmoire cache o il fournit de bonnes performances vu la faible taille de cette dernire. Les oprations sur les listes chanes tant trs coteuses, les concepteurs ont eu recours au matriel pour implanter cette approche. Le matriel doit mmoriser une matrice n fois n avec n le nombre de cases. La matrice est initialise 0. Lorsqu'une page i est rfrence, le matriel met 1 la range n i et ensuite 0 la colonne i. C'est assez surprenant mais la page la moins rcemment rfrence est celle dont la range a la plus petite valeur binaire. Soit la chane de rfrence aux pages suivante (ordre dans lequel les pages sont accdes) 0 2 1 3 1 2 3. Les tableaux ci-dessous illustrent les tapes1 et 7 (tableau1 pour l'tape 1 et le tableau 2 pour l'tape 7)

sec3_2

--->Simuler l'algorithme LRU. 1.2.9 L'algorithme du vieillissement

C'est une amlioration logicielle de l'algorithme LRU en vu de le rendre moins coteux. A chaque entre d'une page dans la table des pages, on rajoute un champ compteur qui est incrment de 1 quand une page est rfrence. En ralit, R est rajout au compteur chaque interruption de l'horloge et R est remis 0 ensuite. Quand il se produit un dfaut de page, si on remplace la page dont le compteur est le plus faible on risque d'avoir la situation suivante : une page accde maintes reprises il y a quelques temps sera considre plus rcente qu'une page accde moins frquemment et plus rcemment. La solution est propose avec un mcanisme de vieillissement des compteurs. Le champ compteur est dcal d'un bit vers la droite avant d'y rajouter R. La valeur de R est rajoute au bit de poids fort donc gauche (en fait cela revient le placer). Si l'on regarde de prs le principe de l'algorithme, on remarque qu'en comptant partir de la gauche, si le bit de poids fort (p) est 0, la page n'a pas t rfrence depuis le dernier top, si le bit de poids (p-1) est 0 galement cela veut dire que la page n'a pas t rfrence depuis 2 tops d'horloge etc. Il est donc logique de retirer la page qui a la plus petite valeur du compteur. La figure n 55 ci-dessous, donne les valeurs des bits R aprs 5 tops d'horloge et les valeurs des compteurs :
Top0 Bit R pour les 5 pages 101011 Top1 110010 Top2 110101 Top3 100010 Top4 011000

sec3_2

Page0 Page1 Page2 Page3 Page4 Page5

10000000 00000000 10000000 00000000 10000000 10000000

11000000 10000000 01000000 00000000 11000000 01000000

11100000 11000000 00100000 10000000 01100000 10100000

11110000 01100000 00010000 01000000 101100000 01010000

01111000 10110000 10001000 00100000 01011000 00101000

Fig. 55. Evolution de la valeur du compteur dans l'algorithme du vieillissement 1.2.10 Vous pouvez simuler votre propre exemple.

sec3_1

1.3 A propos de chargement de pages On recense deux modes appliqus par les systmes d'exploitation pour le chargement des pages :
q

Le chargement la demande : le systme d'exploitation attend quun dfaut de page se produit pour aller charger cette page. Le chargement de lespace de travail : c'est une sorte de pagination anticipe qui vise rduire le nombre de dfauts de pages. Elle se base sur la prdiction des numros de pages charger.

Le prchargement se base sur 2 principes de localit :


q

La localit dans le temps suppose que les pages qui ont t rfrences dernirement vont ltre nouveau dans le futur. Cest vrifiable pour les boucles, les tableaux, les procdures rcursives La localit dans lespace suppose que les rfrences des pages sont souvent voisines, c'est--dire que le programme utilise des adresses conscutives.

Quand un processus est interrompu et quil est dplac sur le disque dur par ce quil ne reste plus de place en mmoire, le systme d'exploitation peut sauvegarder les numros de pages utilises et en appliquant le principe de la localit connatre les pages qui risquent de ltre. Ainsi lespace de travail pourra tre charg avec le processus quand il sera r excut.

section2

2 - Conception des systmes segments

Sommaire de la section : Allocation et rcupration des segments Rcupration de segments Remplacement de segment

sec2_1

2.1 Allocation et rcupration des segments Dans les systmes pagins, le principal traitement est bas sur les politiques de remplacement de pages. Nous allons voir que dans les systmes segments, c'est l'allocation des segments qui reprsente le traitement le plus complexe. Tout d'abord, en ce qui concerne l'tape de recherche d'une zone mmoire libre, dans un systme pagin il suffit de trouver une case libre alors que dans un systme segment, il faut rechercher un segment de taille suffisante. On suppose donc que les structures grant l'espace libre en mmoire ne sont pas les mmes puisqu'il faut connatre la taille de chaque zone. 2.1.1 Structure de donnes pour la gestion des segments libres en mmoire On distingue plusieurs manires de grer les espaces libres en mmoire centrale, les plus connues tant la liste chane et la table de bits introduites lors de la prsentation de la gestion du disque dur. La table de bits ne peut s'appliquer pour des systmes segments car on a besoin de connatre les adresses de dbut et de fin du segment en plus de son occupation. Par ailleurs, une structure de table c'est--dire statique n'est pas envisageable car on ignore le nombre de segments en mmoire. Initialement c'est un grand espace qui est fractionn au fur et mesure que des segments logiques y sont placs et librs. Quant la liste chane, cette solution est celle retenue et elle peut avoir diverses implmentations, elle peut tre trie par ordre de taille ou bien par contigut des adresses et bien entendu par ordre FIFO. Elle peut regrouper les segments libres et ceux occups, ou bien on peut utiliser deux listes spares, une pour les segments libres et une pour les segments occups (liste utile pour le remplacement de segments). Chaque organisation prsente des avantages et des inconvnients : Le choix d'une liste unique vite de retirer un lment de la liste des libres et de le placer dans celle des occups et vice-versa mais au prix d'un parcours de toute la liste chaque fois. Le fait d'avoir deux listes permet de trier celles des segments libres et de trouver rapidement un segment de taille suffisante.

sec2_1

On ne peut dire qu'un choix est meilleur que l'autre, chacun ayant un temps processeur plus court au moment de l'allocation du segment ou au moment o il est rendu au systme. 2.1.2 Algorithmes d'allocation de segment

Nous avons tudi dans la section concernant l'allocation contigu diffrentes politiques pour le choix de la zone mmoire allouer un programme. Nous citons FIFO (premire zone libre), meilleur ajustement (best fit). Tous ces algorithmes permettent dallouer des segments et dautres encore telle l'allocation par subdivision binaire qui alloue la premire zone de taille puissance de 2 suffisante. Le choix d'un algorithme est conditionn par l'ordre des segments dans la liste. Il est vident qu'un tri par ordre croissant permet d'appliquer facilement le best-fit (des tudes ont prouv que ses rsultats sont les meilleurs).

sec2_2

2.2 Rcupration de segments Dans un systme segment la procdure de rcupration de segment est plus complexe en effet chaque fois qu'on rcupre une zone libre, on insre un lment la dcrivant dans la liste et on examine les voisins afin de voir s'il y a lieu d'effectuer une fusion pour obtenir un espace plus grand plutt que des miettes rparties travers la mmoire.

Fig. 56. Rcupration de segments Lorsqu'un segment SL est libr, une fois l'emplacement au niveau duquel on va l'insrer dtermin, On distingue quatre traitements possibles : Le segment SL a une adresse de dbut gale l'adresse de fin du segment le prcdent P. L'adresse de fin de P reoit la valeur de l'adresse de fin de SL Le segment SL a une adresse de fin gale l'adresse de dbut du segment le suivant S dans la liste. L'adresse de dbut de S reoit la valeur de l'adresse de fin de SL. L'adresse de dbut et de fin de SL correspondent avec les segments S et P. Les segments S et P doivent tre fusionns en un seul. Ainsi l'adresse de fin de P prend la valeur de l'adresse de fin de S et S est retir de la liste. Ni l'adresse de dbut ni celle de fin de SL ne concorde avec celles des segments voisins. Il est simplement insr dans la liste.

sec2_3

2.3 Remplacement de segment Le remplacement de segments galement est trs diffrent du remplacement de pages. Tout d'abord, il n'affecte pas tous les segments. Certains segments sont plus importants que d'autres et ne doivent pas tre enlevs tels que les segments de code par rapport certains segments de donnes. Il en est pratiquement de mme dans les systmes pagins, sauf que ceci est ralis de manire transparente car on ne sait pas quelles pages occupe le segment code. Par ailleurs contrairement aux pages, le remplacement peut concerner plusieurs segments. Il faut souligner ce stade que la structure de la liste des segments conditionne le choix de l'algorithme de remplacement. On dispose d'une liste des segments en mmoire, appliquer FIFO revient retirer le premier ou les n premiers segments si cela ne suffit pas. En revanche, avec une liste trie selon la taille, on peut connatre celui qui dispose d'une taille suffisante et ne retirer qu'un seul segment.

section1

3 - La segmentation avec pagination

Sommaire de la section : Conversion des adresses La segmentation avec pagination du 386

sec3_1

3.1 Conversion des adresses Une adresse logique a la forme ( S, P, D) un numro de segment, un numro de page et un dplacement. Le numro de segment permet de retrouver son adresse de dbut grce la table des segments. Le numro de page permet en accdant la table des pages de savoir si la page est en mmoire et auquel cas dans quelle case. Il faut toutefois prciser que chaque segment dispose de sa propre table des pages puisqu'il constitue un espace d'adressage part, reste trouver la table des pages pour un segment donn. Il est clair qu'elle doit tre indique ou pointe au niveau de l'entre dcrivant le segment dans la table des segments. Frquemment, la table des pages est situe au dbut du segment. La figure n 57 qui suit, illustre le droulement de la conversion d'adresse.

Fig. 57. Accs une adresse dans un systme segment et pagin Il peut arriver que la pagination deux niveaux soit utilise afin d'viter des tables de pages trop volumineuses.

sec3_2

3.2 La segmentation avec pagination du 386 Cette section prsente la gestion mmoire du processeur 80386. L'Intel 80386 Le processeur 80386 applique galement la segmentation et la pagination en offrant une unit de pagination et une de segmentation. Il a toutefois un fonctionnement plus complexe que Multics. Le 386 peut adresser 16K segments. Chaque segment peut atteindre une taille de 232 octets soit environ un milliard de mots (un mot = 32 bits). Les pages ont une taille de 4 KO. Le 386 utilise deux tables pour dcrire les segments et les pages. La premire TDG (table des descripteurs globaux) dcrit tous les programmes. La seconde TDL (table des descripteurs locaux) dcrit les segments d'un programme. Un numro de segment s'crit sur 16 bits organiss de la manire suivante : les 13 premiers bits indiquent son numro rel, le bit suivant si c'est un segment local ou global, et les deux derniers sa protection. Une fois l'appartenance du segment identifie, il est extrait de la table. Une entre d'une table de descripteurs a la structure suivante :

Fig. 58. Un descripteur de segment du processeur 386 sur 8 octets

TD systme d'exploitation n6

TD systme d'exploitation N6
1) Expliquer le traitement entrepris suite un dfaut de page 2) Ecrivez les algorithmes d'allocation et de libration de cases 3) Ecrivez les algorithmes d'insertion et de retrait des pages pour chacun des algorithmes FIFO et LRU 4) Pourquoi la segmentation et la pagination sont-elles quelques fois combines dans un seul schma 5) Quand un segment peut-il appartenir l'espace d'adressage de deux processus diffrents 6) Calculer les adresses logiques des adresses physiques suivantes : 1035, 4093, 4098, 6000. le mode de gestion est la pagination et les pages ont une taille de 4KO. Numro de la case Numro de la page contenu dans la case

15

7) On considre un systme de mmoire secondaire (disque dur ) prsentant 160 pistes numrotes en ordre de l'intrieur vers l'extrieur de 0 159. On suppose que la tte de lecture/ criture se trouve place la verticale de la piste 50, que sa position prcdente tait en 80 et que des requtes arrivent pour des accs aux pistes suivantes : 100 153 40 140 20 110 55 60 ( dans cet ordre)

TD systme d'exploitation n6

Quel serait le dplacement total (en nombre de piste) de la tte de lecture/criture aprs avoir accd toutes ces pistes si l'algorithme de planification des dplacements de la tte est : le plus petit dplacement d'abord (SSTF), un balayage en va-et-vient (SCAN), un balayage circulaire (C-SCAN).. 8) Laquelle de ces tapes doit tre ralise avant l'autre : le partitionnement ou le formatage d'un disque ? 9) On considre un fichier texte 2500000 caractres ASCII (y compris les caractres de fin de ligne et de fin de fichier). Suite un malencontreux accident, le inode de ce fichier est corrompu et le contenu des pointeurs indirects double et triple est dtruit. Quelle proportion du contenu de ce fichier a-t-elle t perdue par suite de cet accident ? 10) Avec UNIX, quelle taille maximale peut avoir un fichier, sachant que les blocs sont de 1Ko et que les adresses des blocs sont sur 4 octets ? 11) On peut mmoriser l'espace libre sur le disque au moyen d'une liste des blocs libres ou d'une table de bits. Les adresses sur le disque requirent D bits pour un disque de B blocs dont F sont libres, quelle est la condition ncessaire pour que la liste des blocs libres soit plus petite que la table de bits ? si D vaut 16 bits, exprimer la rponse sous d'un pourcentage de l'espace du disque qui doit tre libre 12) Soit un disque de 9.1 GO, si ce disque est format en utilisant des clusters de 32 KO, quelle quantit de mmoire serait rserve pour mmoriser l'espace libre ? Fates le calcul pour un systme qui utilise un vecteur de bits et un autre qui emploie une liste chane de blocs spciaux. 13) Dessinez la FAT pour la figure ci-dessous.

TD systme d'exploitation n6

14) Est-il intressant de mmoriser la premire partie de chaque fichier UNIX dans le mme bloc que son noud d'information ? 15) Imaginer un systme qui utilise une liste de blocs spciaux afin de grer l'espace libre. Si par mgarde on perd le pointeur sur cette liste, le systme d'exploitation peut-il la reconstruire ? comment ? 16) Lorsqu'un fichier est supprim, les numros des blocs sont-ils simplement rajoutes ceux libres ou bien le contenu de chacun des blocs est-il effac ? 17) Soit un systme qui dsire autoriser 4990 personnes lire un fichier et en interdire l'accs 10 autres comment procder ?

plan_ch7_m1

Le systme des entres-sorties


Objectifs

1. 2. 3. 4. 5. 6.

Fonctionnement des priphriques Entres-Sorties synchrones et asynchrones Les entres-sorties DMA (par accs direct la mmoire) Schma d'excution d'une entre-sortie Le sous-systme dentre-sortie Etude de cas : le priphrique disque

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section1

1 - Fonctionnement des priphriques


Nous rappelons dans cette section les composants des priphriques, ainsi que leur fonctionnement de base. Ceci permettra dans un premier temps de discerner entre les parties mcaniques et celles lectroniques dans un priphrique. Dans un second temps cela nous aidera introduire certains termes relatifs au systme dentre/sortie.

Sommaire de la section : Structure dun priphrique Les types de priphriques Les contrleurs de priphriques Interaction entre le systme d'exploitation et le contrleur

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_1

1.1 Structure dun priphrique Un priphrique est compos du priphrique lui-mme et de composants lectroniques pour le commander donc dune partie mcanique et dune autre lectronique. A titre dexemple, dans un disque dur les plateaux, les ttes de lecture/criture, le bras ainsi que le moteur constituent la partie mcanique. La partie lectronique est appele contrleur de priphrique. On l'appelle ainsi car elle contrle le priphrique la place du processeur. Le contrleur est une carte compose de circuits qu'on relie au priphrique. Sans contrleur, le processeur devrait se charger lui-mme de tous les priphriques. Un mme contrleur peut grer plusieurs priphriques de mme type. Nous avons introduit au chapitre 1 lutilit du contrleur. Nous rappelons que la diffrence de vitesse qui existe entre le processeur et les priphriques en est lorigine. Etant donn que le processeur ne peut pas rester l'coute pour savoir si le priphrique est prt lui envoyer une donne ou la recevoir, un contrleur est associ chaque priphrique et gre le dialogue avec l'unit centrale.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_2

1.2 Les types de priphriques Si nous essayons dtablir une classification des priphriques existants outre celle de priphriques dentre et de sortie, nous ralisons que la plupart des systmes (tel Unix) recensent deux types de priphriques : les priphriques bloc et les priphriques caractre. C'est la possibilit de faire ce classement qui permet d'crire des pilotes de priphriques composs de fonctions identiques, ce qui permet de masquer le support d'entre-sortie. Nanmoins certains priphriques n'appartiennent aucune de ces catgories ce qui rend cette classification quelque peu incomplte. Les priphriques bloc effectuent un adressage par bloc, c'est--dire la quantit minimale manipule est le bloc. Le disque dur est un priphrique bloc. Ils permettent galement d'utiliser un bloc indpendamment des autres. Cette dernire prcision est trs pertinente en effet elle carte limprimante de cette catgorie car on ne peut crire un bloc en plein milieu dune page, laccs tant squentiel. Il en est de mme pour les lecteurs de bandes magntiques. En revanche dans un disque dur on peut lire et crire un bloc quelle que soit sa position. Certains priphriques semblent tre des priphriques bloc du fait quils manipulent des blocs, mais ils ne le sont pas rellement cause de leur utilisation squentielle. Les priphriques caractre manipulent un flot de caractres. Ils ne permettent pas d'adresser une zone directement puisque laccs est squentiel. Nous citons les terminaux et les imprimantes, on n'crit pas au milieu de la page ou de l'cran sans commencer partir du dbut. Certains priphriques ne rentrent dans aucune de ces catgories. L'horloge ne manipule ni bloc ni caractre.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_3

1.3 Les contrleurs de priphriques En ralit, le processeur ne communique pas directement avec les priphriques : ceux-ci sont relis des contrleurs de priphriques et c'est avec eux que le processeur dialogue. Par exemple si le processeur veut crire une donne sur le disque dur, il le demande au contrleur de disque dur et c'est ce dernier qui se dbrouille pour effectivement satisfaire la demande du processeur. Le processeur transmet alors la donne crire au contrleur, qui la stocke et la transmet au disque dur le moment venu. Ce relais de l'information par des contrleurs permet dj de s'abstraire des spcificits des priphriques : une partie de ces spcificits n'est connue que du contrleur. Cela permet par exemple de dvelopper des priphriques trs diffrents les uns des autres sans qu'il y ait de problme majeur pour les insrer dans un ordinateur. Cela permet aussi de renouveler les priphriques d'un ordinateur sans avoir rinstaller le systme. On distingue plusieurs contrleurs dans un ordinateur, les plus connus sont le contrleur de disque, le contrleur de mmoire RAM, de mmoire cache, le contrleur de carte vido, le contrleur de clavier, dcran, le contrleur de bus. Afin de cerner de prs le rle dun contrleur outre de faire fonctionner les parties mcaniques, nous allons nous pencher sur un exemple de priphrique : le disque dur. On se propose dcrire un bloc sur le disque. Le contrleur est le seul connatre la position laquelle se trouve le bras (sur quel cylindre). Avant de commander le dplacement du bras, il doit calculer le nombre de cylindres quil faut parcourir afin de se positionner sur le cylindre au niveau duquel le bloc doit tre crit. Lors de la prsentation du SGF nous avons expliqu quun secteur de 512 octets comprend en ralit moins doctets pour les donnes puisque certains sont rservs, notamment des octets pour crire le code correcteur derreur. Ce code est calcul par le systme et fourni au contrleur afin quil linscrive la suite des donnes. Lors de la lecture de ce bloc, cest le contrleur qui vrifie la validit du secteur lu en utilisant ce code et en le comparant un code quil calcule lui-mme. En cas derreur, le contrleur fera une nouvelle tentative de lecture puisquil dispose de tout ce qui est ncessaire pour dtecter lerreur.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_3

Prenons prsent l'exemple d'un moniteur (cran), le contrleur va gnrer des signaux pour diriger le faisceau d'lectrons vers l'endroit o va tre affich chaque caractre. Sans contrleur, c'est au programmeur de grer le tube cathodique ou le dplacement du bras dans un DD. Par ailleurs, lorsquune ligne est entirement remplie le contrleur doit oprer un retour la ligne aprs un passage la ligne suivante. Le nombre de caractres affichable nest pas un paramtre connu du systme d'exploitation mais du contrleur. De mme pour lcran lorsque ce dernier sest rempli, le contrleur devra grer le dcalage des lignes vers le haut. Nous concluons de ces exemples que le contrleur effectue principalement les tches suivantes : recevoir les requtes dentre-sortie effectuer effectuer lentre-sortie en plusieurs tapes si cela est ncessaire traduire les ordres du systme en des signaux comprhensibles par le priphrique : identifier les caractristiques du priphrique, effectuer les calculs ncessaires la ralisation de lentre/ sortie. corriger les ventuelles erreurs. Pour ce faire la carte du contrleur se compose dun circuit intgr pour la commande lectronique, de registres destins accueillir les commandes excuter et stocker temporairement les donnes avant leur transfert en mmoire centrale et vice-versa.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec1_4

1.4 Interaction entre le systme d'exploitation et le contrleur Le systme d'exploitation dialogue avec le contrleur travers le bus. Il lui transmet les paramtres de lentre/sortie et ce dernier les stocke dans ses registres. Le contrleur une fois qu'il a reu l'information, gnre les signaux adquats, en effet le rle du contrleur est de transformer les signaux compris par l'unit centrale en signaux lectriques compris par le priphrique et vice-versa. Le systme d'exploitation place des commandes et des paramtres dans les registres, par exemple : read, write. Une fois que la commande est accepte par le contrleur, il peut excuter la commande : le processeur n'a plus besoin d'intervenir et peut s'occuper d'une autre tche. Une fois que le contrleur a fini, le processeur reprend le contrle et le systme d'exploitation prend la main (nous verrons plus tard comment le processeur est inform). Il va aller tester les rsultats du droulement de l'entre-sortie travers le contenu des registres.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section2

2 - Entres-Sorties synchrones et asynchrones


Un processus qui demande une entre-sortie n'est pas automatiquement bloqu, en effet cela dpend du type de l'entre-sortie : on distingue les entres/sorties synchrones et celles asynchrones. Les entres-sorties sont par dfaut synchrones mais il est possible pour le programmeur d'utiliser des entres-sorties asynchrones. Une entre-sortie est asynchrone si le processus continue son excution aprs l'appel de l'instruction d'entre-sortie. Le processus est inform de la fin de l'entre-sortie par le positionnement d'un drapeau ou par l'excution d'une routine systme. Le fait de programmer avec des entres-sorties asynchrones ne change en rien le mode de fonctionnement de l'entre-sortie. Il y a toujours une interruption la fin qui est gnre par le priphrique. C'est quand le systme d'exploitation va prendre en compte cette interruption que le traitement va changer, au lieu de dplacer le processus de la file bloqu vers celle prt, le systme d'exploitation va excuter une routine ou positionner un drapeau.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section3

3 - Les entres-sorties DMA (par accs direct la mmoire)


Cette technique a t invente au temps o les processeurs taient lents pour acclrer le transfert. En fait une fois que le priphrique a termin lentre-sortie (par exemple un bloc lu du disque dur), le transfert en mmoire centrale se fait travers le processeur par octets ou par mots. Certains contrleurs (les plus rapides parmi les priphriques bloc) sont capables de faire un accs direct la mmoire (Direct Memory Access), ce qui dcharge le processeur du transfert des donnes. Le fait quils soient rapides permet aux priphriques de gnrer une interruption aprs le transfert dun bloc entier plutt que de le faire aprs quelques octets. Le contrleur DMA vole cette autorit suprme qui revient au processeur (on parle de vol de cycle). Il prend le contrle du bus et y place les donnes transfrer de/vers la mmoire. Lorsquil a fini, il gnre une interruption pour informer le processeur. Ce mode est asynchrone puisque le processeur peut vaquer dautres tches pendant le droulement de lentre-sortie. Actuellement elle est utilise pour le rafrachissement de la mmoire centrale. Cest galement un mode dentre/sortie qui est offert aux programmeurs.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

4 - Schma d'excution d'une entre-sortie


La figure ci-dessus illustre le schma d'excution d'une entre/sortie. Elle met en vidence les diffrentes couches du systme d'exploitation qui sont sollicites :

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section4

Fig. 59. Excution d'une entre/sortie On remarque qu'il existe :


q q

une couche pour traiter les interruptions qui est la plus proche du matriel une couche constitue des pilotes de priphriques qui est une couche dpendante des priphriques une couche indpendante du matriel qu'on appellera couche systme

Le systme d'entre-sortie est form des couches pilote et systme d'exploitation. Il est difficile de tracer une frontire bien dfinie entre les diffrentes couches, ce qu'il faut retenir c'est que le contrleur est pilot par le pilote de priphriques. Ce dernier comprend tout le code ncessaire et que ce code est dpendant du matriel. La couche systme comprend le code indpendant du matriel, elle a pour rle de fournir une interface uniforme aux logiciels.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section5

5 - Le sous-systme dentre-sortie

Sommaire de la section : La couche systme Les pilotes de priphriques

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_1

5.1 La couche systme Le principal objectif de cette couche est de fournir une interface uniforme la couche au dessus savoir les programmes utilisateurs en leur cachant le lien avec le matriel. Aprs avoir effectu certaines vrifications comme cit auparavant, une requte d'entre-sortie va tre construite par la cration d'un IOCB (input output control block). C'est une structure qui contient des informations dcrivant l'entre-sortie parmi lesquelles : le type d'opration lecture ou criture, ce qu'on appelle la longueur de l'entre-sortie c'est--dire le nombre de caractres transfrer par exemple, l'adresse d'une zone tampon en mmoire destine accueillir les donnes. On voit ici que cette couche effectue les allocations mmoire ncessaires l'entre-sortie, d'autres informations complmentaires. L'IOCB est pass de couche en couche en effet, il contient les informations concernant la requte d'entre-sortie. Ces informations sont compltes au fur et mesure. La plupart des systmes interdisent aux programmes des utilisateurs d'effectuer directement des oprations d'entres-sorties (pour des raisons de non blocage du processeur, et pour faciliter la programmation). C'est le systme d'exploitation qui ralise les entres-sorties. Pour ce faire, il est le seul connatre l'adresse du priphrique. Les utilisateurs utilisent un nom logique qui est traduit par le systme d'exploitation l'aide d'une table de noms. Le systme d'exploitation transmet au pilote de priphrique le numro du priphrique, ainsi que l'IOCB afin de dmarrer le traitement de l'entre-sortie.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_2

5.2 Les pilotes de priphriques On distingue gnralement un pilote par type de priphrique. Il est noter que dsormais, la plupart des pilotes sont ralises par le fabriquant plutt que par les concepteurs du systme, de part le trop grand nombre de priphriques diffrents. Ces pilotes sont chargs par le systme au dmarrage et sont exploits de la mme faon que les autres, en ce qui concerne la partie grant le matriel. Tout comme le systme d'exploitation est le seul connatre l'adresse du priphrique, son tour le pilote est le seul connatre les paramtres ajuster c'est--dire les caractristiques du priphrique. Chaque priphrique est dcrit dans une table travers un descripteur. Celui-ci contient l'adresse du priphrique, le vecteur d'interruption qui lui est associ, et la description de toutes ses caractristiques. Les IOCB sont chans entre eux et rattachs la table. Nous verrons plus tard que le fait de disposer d'une liste chane permet de choisir l'ordre de chanage. Un pilote de priphrique est constitu de routines qui s'appellent les unes les autres. Le rle du pilote est dcrit ci-dessous : traduire la requte partir de l'IOCB en termes concrets. Prenons le cas d'un pilote de disque, il doit dterminer o se trouve le bloc lire par exemple (sans rentrer dans les dtails) la position du bras, le cylindre concern, afin d'initialiser les registres du contrleur. Il prpare le travail du contrleur. Lancer le contrleur et se mettre en attente de la fin de l'entre-sortie c'est donc un appel bloquant. Si l'entre-sortie ncessite plusieurs transferts, c'est au pilote de commander le transfert suivant. Une fois l'entre-sortie termine, le priphrique gnre une interruption. La procdure de traitement des interruptions est lance. Elle va identifier la source de l'interruption, elle saura donc quelle est l'unit qui a gnr l'interruption et par consquent le traitement entreprendre et le pilote associ est rveill. Il vrifie le statut de l'entre-sortie. Il traite les erreurs non rsolues par le contrleur, par exemple il effectue une nouvelle tentative. Si l'entre-sortie ne s'est toujours pas ralise, il informe la couche systme qui informe son tour le processus
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec5_2

appelant. Pour finir, le systme d'exploitation va dbloquer le processus qui a demand l'entre-sortie et le faire passer de la file des processus bloqus dans ceux prts. L'entre-sortie a fini d'tre traite, les programmes des utilisateurs peuvent reprendre.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

section6

6 - Etude de cas : le priphrique disque


Le disque dur le priphrique le plus intressant du point de vue des programmes fournis par les pilotes. La section suivante prsente certains aspects spcifiques aux disques durs, tel que lentrelacement des blocs, ainsi que quelques traitements grs par le pilote du disque notamment les algorithmes qui concernent l'accs au disque dur, la prise en compte des erreurs etc.

Sommaire de la section : Lentrelacement des blocs Notion de cache disque La prise en compte des erreurs Ordonnancement des requtes d'entres-sorties

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_1

6.1 L'entrelacement des blocs Lorsque le contrleur effectue une entre-sortie DMA, il met un certain temps pour transfrer le secteur lu vers la mmoire. Or durant ce temps, le disque continue de tourner. Si le contrleur ne peut effectuer une entre et une sortie en parallle, le secteur suivant ne peut tre lu durant le transfert vers la mmoire. Si le temps de transfert vers la mmoire est gal au temps de lecture d'un secteur du disque, il faut deux rotations du disque afin de lire toute une piste. Le secteur de numro suivant ne doit passer sous la tte de lecture qu'une fois que le contrleur a fini le transfert du secteur prcdent. Une solution serait que les numros de secteurs ne soient pas conscutifs, afin que le secteur suivant ne dfile sous la tte qu'une fois la fin du transfert.

On appelle entrelacement le fait de sauter des numros de secteurs afin que le contrleur puisse les lire dans un ordre normal. Cette numrotation spciale est ralise au formatage du disque en tenant compte du facteur d'entrelacement. Un facteur d'entrelacement de 1 dsigne le saut d'un secteur chaque fois. Ce facteur est li au temps ncessaire au contrleur pour effectuer son transfert vers la mmoire. Il est clair que si le contrleur met plus de temps, il faut prvoir un facteur de 2.

Fig. 59. Numrotation des secteurs en fonction du facteur d'entrelacement

La figure n 59 illustre un disque avec les numros de secteurs numrots de 0 11. Sans entrelacement aprs un tour complet, le contrleur n'aura pu lire que les secteurs n 0 2 4 6 8 10. Au tour suivant, il lira les secteurs 1 3 5 7 9 11. Avec un facteur simple, le contrleur laissera passer un secteur et lira le suivant. Avec un facteur d'entrelacement double, il laissera
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_1

passer deux secteurs pour lire le secteur suivant.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_2

6.2 Notion de cache disque Certains concepteurs ont eu l'ide d'appliquer le principe du cache pour le contenu d'une piste. Quand les requtes dentres-sorties sont trs nombreuses, il devient frquent d'avoir des accs des secteurs voisins donc appartenant une mme piste. Le principe du cache pour les pistes est de copier le contenu de toute la piste dans le cache. Ainsi des requtes futures pour des secteurs de cette piste viteront d'accder au disque. Le cache fait partie du contrleur. De nos jours les contrleurs sont tellement rapides, qu'en un seul accs ils peuvent recopier toute la piste dans leur zone tampon.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_3

6.3 La prise en compte des erreurs Les erreurs, comme nous l'avons expliqu auparavant doivent tre traites par le composant le plus proche du priphrique, donc par le contrleur, sinon le pilote doit s'en charger. Parmi les erreurs qui peuvent survenir, nous citons : Les erreurs de positionnement du bras : le contrleur peut se tromper dans les paramtres qu'il utilise pour accder une piste donne. Quand il se rend compte qu'il y a eu erreur, par exemple qu'il n'est pas positionn sur le cylindre en question, le contrleur corrige tout seul en ressayant. S'il n'y arrive pas, le pilote va envoyer de nouveaux paramtres afin de dplacer le bras la position extrme et recommencer. Les erreurs de programmation : si le pilote demande au contrleur daccder une piste ou un secteur qui nexiste pas le contrleur doit tre capable de dceler lerreur et de la signaler. La rencontre d'un bloc endommag. Le contrleur doit ne pas l'utiliser ou en utiliser un autre ( si cest un contrleur intelligent), en se rfrant une liste de bloc endommags qu'il doit avoir en mmoire. Celle-ci est une copie de celle dont dispose le systme. Les erreurs de lecture : elles peuvent tre dues la prsence dune poussire sur la surface du plateau. Elles sont dceles grce au calcul du code correcteur derreur et corriges en ressayant lopration de lecture. Le code correcteur derreur (en anglais ECC Error Correcting Code) est un code calcul et inscrit par le contrleur en mme temps quil inscrit le secteur. Souvenez-vous quun secteur de 512 octets occupe rellement plus doctets (voir chapitre 3 section 3.1.6.1) . En effet, il est accompagn du numro du secteur, du ECC et autresLors de toute opration de lecture, le code est recalcul et compar celui inscrit avec le secteur. Si les deux codes ne concordent pas, le contrleur essaye de corriger le secteur en se basant sur la valeur du code. Le cas chant il tente une nouvelle lecture, sinon il marque le secteur comme dfectueux

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_4

6.4 Ordonnancement des requtes d'entres-sorties En ce qui concerne l'accs au disque dur, il y a de nombreuses optimisations qui peuvent tre ralises afin de rduire les temps d'accs et ceci est du ressort du pilote. Quand on doit effectuer un transfert de ou vers le disque dur, le temps total cumul dpend du temps ncessaire pour positionner la tte de lecture/criture sur le bon cylindre (appel temps de recherche) et du temps pass attendre que le secteur passe sous la tte afin de lire les octets (appel temps de rotation, en moyenne la moiti d'un tour) et enfin le temps pour le transfert . Le temps de recherche est celui qui peut tre optimis de manire logicielle. Le contrleur du disque dispose d'une seule unit, les requtes de transfert seront donc chanes dans la mme liste. Parmi les tches du pilote on trouve l'ordonnancement des requtes dans cette liste. Il est clair que si les requtes sont traites dans l'ordre d'arrive le bras risque de se dplacer inutilement entre plusieurs cylindres ce qui rajoute du temps de recherche. Prenons un exemple : La tte est positionne sur le cylindre n 10, on souhaite lire les secteurs appartenant aux pistes 1, 9, 8, 26, 13, 23. Nous allons comparer les temps de dplacements selon plusieurs politiques d'ordonnancement connues : FIFO, plus court dplacement, ascenseur. 7.6.4.1. FIFO Comme l'indique son nom, la requte arrive en premier est excute en premier. Pour les requtes aux pistes cites plus haut, le bras va effectuer un dplacement qui va couvrir 9 + 8 + 1 + 18 + 13 + 10 = 59 cylindres. --->Simuler l'algorithme FIFO. 7.6.4.2. Plus court dplacement ou plus court temps de recherche Cet algorithme s'appelle en anglais SSTF (Shortest Seek Time First). Le contrleur sert la requte qui est la plus proche de celle qui vient d'tre traite. Si l'on ordonnance ces requtes
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_4

en essayant de minimiser les dplacements par rapport la position courante, on obtient un accs dans cet ordre 10, 9, 8, 13, 23, 26, 1 soit un dplacement qui couvre 1 + 1 + 5 + 10 + 3 + 25 = 45 cylindres, ce qui reprsente une amlioration notable par rapport FIFO. Cet algorithme peut provoquer des situations de famine si la plupart des requtes se situent dans un mme espace et qu'il existe une ou deux requtes plus loin, celles-ci ne seront traites que trs tard. Par consquent, cet algorithme n'est pas quitable. --->Simuler l'algorithme PCD. 7.6.4.3. Ordonnancement selon l'algorithme de l'ascenseur Cet algorithme est utilis galement pour les ascenseurs dans les grands buildings, o on sert les requtes en maintenant un seul sens de dplacement (vers le haut ou le bas pour les ascenseurs) vers l'extrieur o vers l'intrieur (pour les disques) jusqu' ce qu'il n'y ait plus de requtes dans le sens choisi. Cet algorithme garantit une certaine quit. On dit qu'il applique un balayage de bout en bout et est connu sous le nom de SCAN. Le pilote mmorise un bit de sens (haut ou bas) qui indique la direction que le contrleur doit privilgier. Ainsi, il traite toutes les requtes dans un sens, puis, quand il n'y a plus de requte dans ce sens (le bras est donc vers une extrmit), on inverse le bit et on traite les requtes situes de l'autre ct du bras. On est donc sr de traiter rapidement toutes les requtes Pour cet exemple, supposons que le sens de dplacement du bras tait vers l'intrieur. Servir les requtes 1, 9, 8, 13, 26, 23 en partant de la 10 va donner l'ordre suivant 10 13 23 26 9 8 1 soit un dplacement de 3 + 10 + 3 + 17 +1 + 7 = 41 cylindres. La diffrence n'est pas trs significative mais l'avantage de cet algorithme est qu'il est indpendant du nombre des requtes et quitable. Le dplacement du bras est gal maximum deux fois le nombre de cylindres. Donc deux fois le temps ncessaire pour aller du cylindre du centre vers celui le plus l'extrieur. --->Simuler l'algorithme SCAN. On distingue deux variantes cet algorithme.
Mme Mona LAROUSSI & Mme Leila BACCOUCHE

sec6_4

La premire connue sous le nom de C-SCAN consiste parcourir les cylindres toujours dans le mme sens. Aprs le dernier cylindre, le bras retourne au premier. Le temps de rponse s'en trouve un petit peu amlior. La seconde n'est possible qu'avec certains contrleurs. En effet, certains prcisent le secteur qui se trouve sous la tte. Si on a deux requtes sur un mme cylindre, on peut alors commencer par traiter la requte qui passera en premier sous la tte. ---->Vous pouvez simuler votre propre exemple.

Mme Mona LAROUSSI & Mme Leila BACCOUCHE

1.

Bach, Maurice J. Conception du systme Unix. Paris : Masson, London : Prentice Hall, 1993. 497 p.

ISBN 2-225-81596-8. 2. Beauquier, Joffroy ; Berard, Batrice. Systmes d'exploitation : Concepts et Algorithmes. 4me tirage.

Paris : Ediscience International, 1994. 541 p. ISBN 2-84074-025-7. 3. 4. Bourne, Steve. Le systme Unix. Paris : Interditions, 1985. 38 p. ISBN 2-7296-0014-0. Communication Micro-informatique Interfaces. Muse de la micro-informatique. [En ligne]. 2002 [rf.

de 01-2002]. Disponible sur Internet : < http://www.cmi-visavoy.com > 5. Custer, Helen. Au cur de Windows NT. 6me tirage. Les Ulis : Microsoft Press, 1996. 383 p. ISBN 2-

84082-001-3. 6. Dubois, philippe. Le Muse d'Histoire Informatique. [En ligne]. 2002 [rf. de 01-2002] Disponible sur

Internet : < http://mo5.com/MHI/index.php > 7. Duffet, B. Historique des systmes d'exploitation et des rseaux Micro-informatique sur PC [En

ligne]. 2002 [rf. de 01-2002] Disponible sur Internet <http://mapage.noos.fr/bduffet/technique/chrono.htm > 8. GendNetClub. Le portail des gendarmeries et forces de polices francophones Attributs des fichiers,

gestions matrielles et systme avec MS Dos. [En ligne]. 2000 [rf. de 06-2002] Disponible sur Internet : <http:// www.gendnetclub.com/index.htm > 9. Giguere, C. VDN Informatique Articles sur les concepts informatiques & vulgarisation. [En ligne].

1997- 2002 [rf. de 01-2002] Disponible sur Internet : <http://membres.lycos.fr/cgiguere/vdn/ > 10. Goguey, Eric. Dictionnaire de l'informatique. [En ligne]. 1999-2001 [rf. de 06-2002] Disponible sur

Internet http://www.dicofr.com/chronologie/ 11. Griffiths, Michael ; Vayssade, Michel. Architecture des systmes d'exploitation. Paris : Hermes, 1990.

ISBN 2-86601-127-9. 12. Guillier, Franois. Histoire de l'informatique. [En ligne]. 1996-2002 [rf. de 01-2002] Disponible sur

Internet : <http://www.histoire-informatique.org/ > 13. Hennessy, John L. ; Patterson David A. Architecture des ordinateurs, Une approche quantitative.

2me dition, International THOMPSON Publishing, 1996. 14. 15. IEEE. IEEE home. [En ligne]. 2002 [rf. de 09-2002] Disponible sur Internet :< http://www.ieee.org/> Krakowiak, Sacha. Principes des systmes d'exploitation des ordinateurs. Paris : Dunod, 1987. 486 p.

ISBN 2-04-018623-8. 16. McKusik, Marshall Kirk et al. The design and implementation of the 4.4 BSD Unix operating system.

USA : Addison-Wesley, 1996. ISBN 0-201-54979-4.

17.

Mueller, Scott. Le PC Architecture Maintenance et Mise Niveau. 5me dition. Paris : Campus Press, Pillou, Jean-Franois. CCM Vulgarisation Informatique. [En ligne]. 1999-2002 [rf. de 09-2002]

2002. 1344 p. ISBN 2-7440-1303-X. 18.

Disponible sur Internet : <www.commentcamarche.net/pc> 19. RIFFLET, Jean-Marie. La programmation sous Unix. 3me dition. Paris : Edisciences International,

1995. 630 p. ISBN 2-84074-013-3. 20. Ritchie, dennis. Dennis Ritchie Home page. [En ligne]. 2002 [rf. de 09-2002] Disponible sur Internet

<http://cm.bell-labs.com/cm/cs/who/dmr/ > 21. Silberschatz, Abraham ; Galvin Peter B. Principes des systmes d'exploitation. 4me dition. Paris :

Addisson Wesley, 1994. 772 p. ISBN 2-87908-078-9. 22. Solomon, D.A. ; Russinovich, M.E. Inside Microsoft Windows 2000. 3me dition. Microsoft Press,

2000. ISBN 0-7356-1021-5. 23. Tanenbaum, Andrew. Minix information sheet. [En ligne]. 1996 [rf. de 09-2002] Disponible sur

Internet : http://www.cs.vu.nl/~ast/minix.html 24. Tanenbaum, Andrew. Systmes d'exploitation : systmes centraliss systmes distribus. Paris :

Dunod, London : Prentice Hall , 1994. 795 p. ISBN 2-10-004554-7. 25. Tanenbaum, Andrew. Architecture de l'ordinateur. 4me dition. Paris : Dunod, 2001. 638 p. ISBN 2-

10-005158-X. 26. The Open Group. The Open Group Working for interoperability. [En ligne]. 1995-2002 [rf. de 09-

2002] Disponible sur Internet : <http://www.opengroup.org/> 27. The Open Group. The UNIX System Home Page. [En ligne]. 1995-2002 [rf. de 09-2002] Disponible

sur Internet : <http://www.unix-systems.org/> 28. Thibaut, bernard. Informatique. [En ligne]. 2000-2001 [rf. de 09-2002] Disponible sur Internet :

<http://www.alphaquark.com/ > 29. ThinkQuest Inc. Le microprocesseur. [En ligne]. 1995-2002 [rf. de 01-2002] Disponible sur

Internet : <http://library.thinkquest.org/C008227F/microprocesseur.htm > 30. Tischer, Michael ; Jennrich, Bruno. La bible PC Programmation Systme. Paris : Micro-Application,

1997. 1632 p. ISBN 2-74429-0544-8. 31. Unix System Laboratories. UNIX SYSTEM V/386 Release 3.2 Manuel de rfrence du gestionnaire

systme. Unix Press. London : Prentice Hall, Paris : Masson, 1991. ISBN 2-225-82542-4.

32.

Unix System Laboratories. UNIX SYSTEM V/386 Release 4 Manuel de rfrence du programmeur.

Unix Press. London : Prentice Hall, Paris : Masson, 1992. ISBN 2-225-82599-8. 33. Yahoo! Inc. Hachette Multimdia / Hachette Livre. Yahoo encyclopdie. [En ligne]. 2001 [rf. de 09-

2002] Disponible sur Internet : <http://fr.encyclopedia.yahoo.com/ > 34. Yuns, Jean-Baptiste. A propos du cours systmes. [En ligne]. 2002 [rf. de 09-2002] Disponible sur

Internet : http://verif.liafa.jussieu.fr/~yunes/systemes/