Vous êtes sur la page 1sur 17

SYSTEMES D'EXPLOITATION

1. NAISSANCE DE LINFORMATIQUE De l'lectromcanique l'lectronique. Quelques dates historiques 2. FONCTIONS D'UN SYSTEME D'EXPLOITATION 2.1. EVOLUTION HISTORIQUE DES SYSTEMES D'EXPLOITATION 2.2. CYCLE DUTILISATION DE L'ORDINATEUR PAR UN DEVELOPPEUR 2.3. LES SYSTEMES D'EXPLOITATION UNIX-LIKE 2.4. LE SYSTEME D'EXPLOITATION MS-DOS 2.5. LES SYSTEMES D'EXPLOITATION WINDOWS 3. MECANISMES DE BASE 3.1. DEFINITIONS 3.2. COMMUTATION D'ETAT 3.3. INTERRUPTION ET DEROUTEMENT 3.4. DIFFERENCE ENTRE ROUTINE DE TRAITEMENT ET SOUS-PROGRAMME 4. EXEMPLES D'INTERRUPTION EN TURBO-PASCAL 4.1. PROGRAMME SE_BREAK 4.2. PROGRAMME SE_CLICK 4.3. PROGRAMME SE_ITIME 4.4. PROGRAMME SE_HALT 4.5. PROGRAMME BGDEMO 5. EXEMPLES DE GESTION DES SIGNAUX SOUS UNIX 5.1. LISTE DES SIGNAUX Utilisation En Bourne Shell Utilisation En C Shell Utilisation En Langage C Exemple 1 Exemple 2 avec la fonction wait: 2 5 7 9 9 10 11 11 11 12 12 12 12 14 15 15 15 15 15 15 16 16 17 17 17 17 17

Thao LE

Systmes dexploitation

Septembre 2008

1. NAISSANCE DE LINFORMATIQUE
L'Informatique (des mots information et automatique ) est la science du traitement automatique et rationnel de l'information. On entend par traitement: la manipulation des informations (tri, recherche, modification, ) ou le calcul plus ou moins compliqu permettant d'obtenir un rsultat (rsolution d'une quation ou d'un problme numrique). L'informatique est considre comme le support des connaissances et des communications dans les domaines scientifiques, conomiques et sociaux. Les besoins de l'informatique sont nombreux. Elle est utilise pour la gestion des petits ou grands volumes d'information et leurs changes de donnes (gestion des entreprises, banques, bases de donnes, minitel), la cration artistique (texte, musique, dessin), le traitement des images (reconstruction, correction des dformations, amlioration des contrastes, reconnaissance de formes), la mdecine (tomographie, scanner, gestion hospitalire, recherche), la conception d'objets ou de produits (industrie automobile ou aronautique, calculs des formes et des structures, rsistances aux dformations et aux chocs, arodynamique), le suivi de la production, la simulation d'expriences, etc. Un Ordinateur (dont le mot suggre l'ordre logique) est une machine programmable. Il permet le traitement des informations numriques ou discrtes par opposition aux informations analogiques ou continues telles que les grandeurs physiques classiques: positions, intensits de courant, etc. La manipulation de l'information discrte remonte la plus haute antiquit. Pour effectuer des calculs ou mmoriser des rsultats, on utilisait des cailloux, des bouliers ou encore d'autres objets. C'est l'cossais John Napier (1550-1617) qui a effectu la transition entre le boulier et les premires machines calculer qui sont alors mcaniques. Sa machine (ABAQUE) donnait le rsultat d'une multiplication grce une srie de cubes embots les uns dans les autres et formant plusieurs colonnes. e e Au XV -XVI sicles, l'invention de l'chappement des horloges introduisit un dcoupage du temps en intervalles gaux permettant de le mesurer. L'invention des automates squences fut une tape fondamentale dans l'informatique. A cette poque, les programmes qui effectuaient l'animation des automates taient totalement intgrs aux machines. Ils taient figs mcaniquement et donc pour changer de scnario il tait ncessaire chaque fois de recrer une machine. De tels automates existent encore de nos jours: les jacquemarts de l'horloges de la Cathdrale de Strasbourg (1554) en sont un exemple. Au XVIIe sicle, apparat la premire machine calculer: l'Horloge Calculante qui effectuait des additions et des soustractions pour des calculs en astronomie. Invente en 1623 par Wilhem Schickard (1592-1635), elle fonctionnait l'aide de roues dentes et de repres mmorisant les rsultats intermdiaires. Une clochette retentissait lorsqu'un dpassement de capacit de la machine survenait. La machine fut dtruite aprs la mort de Schickard, seul un plan fut conserv. Blaise Pascal (1623-1662) ralisa une machine arithmtique (1642) pour aider son pre, collecteur d'impts, effectuer des additions, des soustractions et des conversions (de monnaies). Il s'agissait d'une machine programme fig qui utilisait des roues dentes dix positions. Les donnes ne faisaient pas partie de la machine, elles taient entres chaque utilisation. Cette approche donna un caractre dj plus universel cette calculatrice. Une dizaine d'exemplaires de ces machines existent encore.

Systmes dexploitation

2/17

e Au XVIII sicle, le philosophe et mathmaticien allemand Gottfried Wilhem von Leibniz (1646-1716) construisit une machine effectuant quatre oprations: l'addition, la soustraction, la multiplication et la division (roue de Leibniz). De son ct, le grenoblois Jacques De Vaucanson (1709-1782) mit au point de nombreuses machines: pompe lever les eaux, perceuse, premier mtier tisser, le joueur de flte traversire (1737), le canard (1738), le joueur de tambourin (1738), etc. Vers la fin du sicle, Joseph-Marie Jacquard (1752-1834) inventa un mtier tisser, qui au lieu d'avoir un programme fig comme dans les Jacquemarts, possdait un programme l'extrieur sur des cartes perfores (plus besoin de crer une nouvelle machine pour produire un motif de tissage diffrent). On retrouve ce principe de machines programmes extrieurs dans les limonaires, les botes musique et les pianos mcaniques du sicle dernier. Les premiers dveloppements importants pour le traitement de l'information ont lieu la fin du XIXe sicle. Les dispositifs qui taient alors mcaniques deviennent lectromcaniques ( cames et lectroaimants), puis lectriques ( relais) et enfin lectroniques. Sur le modle de la machine de Leibniz, le Franais Charles X. Thomas (1785-1870) construisit l'arithmomtre (1820), machine portable et pratique qui fut vendue plus de quinze mille exemplaires en trente ans. C'est en 1822 que Charles Babbage (...-1871) construisit la machine diffrentielle. Non compltement satisfait de sa premire ralisation, il chercha l'amliorer jusqu'en 1833. Pendant cette priode un certain nombre de techniques d'ingnierie furent dveloppes. Aprs l'abandon de la machine diffrentielle, Charles Babbage mit au point sur le papier la machine analytique (qui ne vit jamais le jour). Il ajouta l'utilisation de mmoire pour les rsultats intermdiaires et la possibilit de choix dynamique et automatique des instructions excuter. Bien que lutilisation de cartes perfores soit antrieure 1725 soit avant mme la rvolution industrielle, ce nest quen 1890, que H. Hollerith eut lide dutiliser une machine de tri avec des cartes perfores pour effectuer le recensement des Amricains. Un ide trs importante, s'appuyant sur les travaux de Georges Boole (1815-1864) en 1848 (l'algbre de Boole) et sur la thse de Claude Elwood Shannon (1916-) en 1938 (qui par la suite fonda la thorie de l'information) fut l'utilisation de la reprsentation des informations sous forme binaire, c'est dire sous 2 tats: vrai ou faux, prsent ou absent, 0 ou 1. Durant la seconde guerre mondiale, des calculateurs puissants furent crs pour effectuer des calculs de balistique ou permettre le dcodage des messages crypts. En 1939, le prototype du premier calculateur vraiment numrique fut ralis l'Iowa State College. Baptis "ABC", il tait la premire machine utiliser des tubes vide comme circuits logiques. Les deux concepteurs John Atanasoff et Clifford Berry donnrent leurs noms cette machine : "Atanasoff Berry Computer". En 1943, Colossus le premier calculateur lectronique fut construit des fins de dcryptage des messages gnrs par Enigma la machine de chiffrement allemande. Alan Turing faisait partie des concepteurs. Colossus comportait 5 processeurs pouvant traiter chacun 5000 caractres par seconde. Grce des registres spciaux et une horloge interne, les processeurs pouvaient travailler en parallle, ce qui donnait Colossus une vitesse de 25000 caractres par seconde! Cette vitesse leve fut capitale dans les efforts de dcryptage mis en oeuvre pendant la dernire guerre mondiale. Le premier calculateur lectromcanique command par programme, l'Automatic Sequence Controlled Calculator (ASCC) Mark I, a t cre en 1944 par Howard Hataway Aiken qui s'est inspir des plans de la machine analytique de Charles babbage datant
Systmes dexploitation 3/17

d'une centaine d'annes plus tt. Cette machine pouvait additionner, soustraire, multiplier, diviser, calculer des puissances et des logarithmes de 10, effectuer des calculs trigonomtriques de type sinus et cosinus. Il fallait 3 secondes au calculateur pour effectuer une multiplication. Une bande de carton perfore portait les instructions et des relais tlphoniques contrlaient des registres roues numrotes. Le mark I avait une longueur de 15 mtres et une hauteur de 2,40 mtres pour pratiquement 800 km de cblage. Ce calculateur fut par la suite utilis l'Universit de Harvard pendant prs de 15 ans. Le premier supercalculateur Cray 1S (1981) avait 10 km de cbles et son concurrent le Cyber 205 de Control Data Corporation en avait 700. En 1946, le premier calculateur numrique de grande puissance entra en fonctionnement. L'ENIAC (Electronic Numerical Integrator and Calculator) tait programm au moyen d'un systme d'interrupteurs et de fiches monts extrieurement. Il fut construit par J.Presper Eckert, John Mauckly et Goldstine. Constitu de milliers de tubes, cette machine, qui resta oprationnelle jusqu'en 1956, disposait de branchements conditionnels et tait programmable manuellement. Elle possdait une faible capacit de mmorisation. Une addition s'effectuait en 200 ms. Il est admis que la naissance de l'informatique se situe en 1946, date laquelle Johannes Von Neumann (1903-1957) nona le principe du premier ordinateur: 1) Possibilit de mmorisation des rsultats partiels tendue l'enregistrement des programmes et des donnes, 2) Excution squentielle des instructions enregistres avec possibilit de branchement conditionnel. Ce sont ces caractres d'adaptabilit aux problmes poss (changement de programmes ou appel de sous-programmes spcifiques) qui rendirent la machine de Von Neumann universelle. C'est aussi ce qui la diffrenciait des calculateurs prcdents. Plus prcisment, un ordinateur doit disposer en fait des fonctions de base suivantes: 1) moyen d'entre (change et recensement des informations), 2) moyen de mmorisation des informations, 3) moyen de calcul (traitement de l'information), 4) moyen de sortie (rsultats), 5) moyen de dcision (choix entre des ventualits, l'une d'entre elles en fonction de rsultats antrieurs), 6) gestion des donnes et des instructions (stockes dans le moyen de mmorisation sous la mme forme et accessibles de la mme faon). Les ides 1, 2 et 4 ont t introduites ds 1822 par le mathmaticien Charles BABBAGE. Celui-ci a rajout les ides 3 et 5 vers 1830. L'ide 6 a t introduite par Von Neumann en 1947 (machines programmes enregistrs dites machines de Von Neumann). Dans la machine de Von Neumann, on peut distinguer deux composantes fondamentales: 1) l'unit centrale qui permet la mmorisation et le traitement des programmes et des donnes, 2) l'unit d'change pour les communications avec l'extrieur.

Systmes dexploitation

4/17

De nos jours, on peut schmatiser un ordinateur par une Unit Centrale (de traitement de langlais Central Processing Unit ) dans laquelle on distingue: l'horloge qui permet le cadencement des oprations lmentaires, la Mmoire Centrale (ou mmoire de travail) qui reoit temporairement les programmes et les donnes, l'Unit Arithmtique et Logique qui effectue les traitements sur les donnes et l'Unit de Commande (appele encore Unit de Contrle) qui interprte les instructions machines et orchestre le transfert des informations travers des voies de connexions lectroniques appeles BUS.

Le mot processeur voque de nos jours le micro processeur. Une dfinition plus juste serait tout moyen matriel ou logiciel pour excuter un processus . DE L'ELECTROMECANIQUE A L'ELECTRONIQUE. En 1947, John Bardeen, Walter H.Brattain et William Shocley inventrent aux laboratoires Bell le premier transistor (transfer resistor = rsistance de transfert). Ces inventeurs reurent le prix Nobel en 1956. En 1948, F.C. Wiliams et T.Kilburn ralisent l'Universit de Manchester le premier ordinateur programme enregistr. Appel Manchester Mark I, il fut construit pour tester un tube cathodique mmoire invent par Williams. Il s'agissait en fait d'un petit ordinateur. Un ordinateur programme enregistr plus puissant, l'Electronic Delay Storage (EDSAC) fut dvelopp un an plus tard par Maurice V.Wilkes.

Systmes dexploitation

5/17

Le premier ordinateur lectronique, digne de ce nom, voit le jour en 1950, il s'agit de l'UNIVAC 1. En 1949, Jay Forrester ralise la premire mmoire tores. A partir de 1953, la mmoire constitue d'une grille d'anneaux mtalliques magntiques interconnects remplacera les tubes vide peu fiables. Les ordinateurs actuels ont des possibilits de stockage permanent de l'information : disques, CD-ROM, DVD-ROM, Cl USB... L'ordinateur permet d'aller plus vite, de grer de trs grands volumes d'information et d'automatiser des squences rptitives de traitement. Il permet un gain de temps et contribue diminuer les erreurs de traitement.

Les composants du systme mettent et tiennent jour des informations de contrle dits changement d'tats. Dans l'UAL, des bascules d'tat signalent le rsultat d'une opration : retenue entrante, retenue sortante, dpassement de capacit, rsultat nul, signe. Dans la mmoire sont signals la dtection et la correction des erreurs de parit. Le comportement de l'unit de commande tient compte de ces informations. L'unit de commande, vritable chef d'orchestre, est l'organe charg de la gestion des flux d'information (contrle) dans l'ordinateur. Il cadence et gnre les oprations de contrle et les commandes appropries aux diffrents composants de faon assurer la ralisation des oprations lmentaires. Le temps de base est appel cycle machine. Il est cadenc par une horloge. Le rle de l'horloge est de synchroniser l'mission des signaux de commande. Une opration lmentaire est une opration qui est ralise dans une priode de temps donne infrieure au temps de cycle principal. Exemples : transfert de donnes entre deux dispositifs cbls, addition dans l'UAL, etc. Le squenceur est l'organe de l'unit de traitement qui se charge, partir de l'information d'une instruction, de choisir et de gnrer la squence d'oprations de commande lmentaires gnrer.
Systmes dexploitation 6/17

Un compteur ordinal contient l'adresse de l'instruction excuter. L'instruction est lue, puis dcode (analyse du code oprateur et des adresses des oprandes), les commandes lmentaires sont gnres, l'instruction est ensuite excute. L'UAL est compose d'un certain nombre d'units fonctionnelles : addition, multiplication, division, dcalage logique de bits vers la gauche ou la droite, etc. Elle possde des lments de mmorisation appels registres utiliss en entre et en sortie des units fonctionnelles ou pour conserver des rsultats temporaires. Le BUS de donnes permet la transition des donnes entre la mmoire centrale et l'unit de traitement. Le BUS d'instructions permet la transition des instructions entre la mmoire centrale et l'unit de Commande. Une partie de la mmoire centrale peut tre duplique (cache) dans une mmoire plus rapide appele mmoire cache, qui peut faire partie ou non du microprocesseur. La partie matrielle de l'ordinateur (Hardware) comprend la partie contrle lectronique et en particulier tout ce qui peut tre obtenu par cblage lectronique: une opration arithmtique simple comme une addition, une multiplication, etc. La partie logique (Software) comprend la partie programme utilisant les ressources matrielles et lectroniques existantes: l'algorithme de calcul d'un cosinus requiert des additions, des multiplications et des divisions. L'histoire des micro-ordinateurs est diffrente de celle des calculateurs scientifiques ou de gestion. Les premiers micro-ordinateurs voient le jour dans les annes 1970. Leur vocation tait surtout ludique. Le langage BASIC tait utilis pour les programmer. Ce n'est qu'en 1981 que le premier PC d'IBM voit le jour (4 ans aprs l'Apple 2). Dot d'un systme d'exploitation comme sur les grosses machines, le Personal Computer doit son succs un programme de bureautique appel tableur. QUELQUES DATES HISTORIQUES 1642 Machine arithmtique de B. Pascal 1725 Mtier tisser de Jacquard (automate programmes extrieurs) 1822 Machine diffrentielle de C. Babbage 1833 Machine analytique qui ne voit jamais le jour 1848 Algbre de G. Boole 1890 Recensement des Amricains (carte perfore de H. Hollerith) 1924 Cration d'IBM et de la compagnie des machines Bull 1936 Church et Tring formalisent la notion d'algorithme. 1938 Shannon soutient une thse sur l'algbre Boolenne et l'lectronique. Il dveloppera par la suite toute la thorie de l'information 1941 Origine de la Cyberntique avec Waren Mc Culloch, Walter Pitts et Norbert Wiener avec la thorie de la commande des asservissements 1943 1re calculatrice lectronique ENIAC (Electronic Numerical Integrator And Computer) : 18000 tubes et logique cble. 194x Machines de Tring : calculatrices intgres 1944 Goldstine et Von Neumann dveloppent la thorie des jeux 1944 Howard Hathaway Aiken met au point le premier calculateur command par programme l'ASCC Mark I (Automatic Sequence Controlled Calculator). Il s'inspire des plans de la machine analytique de Charles Babbage.

Systmes dexploitation

7/17

1946 Von Neumann introduit le concept de programme enregistr dans une mmoire: les instructions sont excutes en squence et certaines instructions permettent le dbranchement C'est cette date que l'on situe la naissance de l'informatique. 1946 Calculateur lectronique ENIAC (Electronic Numerical Integrator and Calculator) de J.Presper Eckert, John Mauckly et Goldstine. 1947 Le transistor 1948 F.C.Williams et T.Kiburn ralisent le premier ordinateur programme enregistr: le Manchester Mark I. 1948 Calculatrice lectronique IBM 604 d'IBM 1950 Premiers ordinateurs UNIVAC 1, IBM et Bull, alliance de l'ordinateur et de la mcanique avec mise au point des machines-outils commande numriques 1956 Langage de programmation scientifique FORTRAN (IBM) 1957 Fondation de Control Data Corporation (CDC) par Seymour Cray 1959 Informatique base de transistors (2me gnration) 1960 les circuits intgrs (dbut 1960) 1960 Mini informatique avec DEC (Digital Equipment Corporation) avec le PDP8 196x COBOL : COmmon Business Oriented Language (gestion) 1964 Cration du langage BASIC par Kemeny et Kurz 1964 IBM360 architecture des ordinateurs (Amdahl), Famille de machines avec le mme jeu d'instructions, CDC6600 1970 Microprocesseur 4004 de INTEL (anctre du Pentium) 1972 Dbut des microprocesseurs 1972 Fondation de Cray Research Inc. par Seymour Cray. 1973 Systme d'exploitation UNIX (version langage C) 1974 Systme d'exploitation CP/M par Gary Kildall oprant sur microprocesseur 8088 1975 Microprocesseur Z80 (clne du 8080), Cration de Microsoft par Bill Gates et du BASIC sur Altar 1976 Installation du premier CRAY-1S aux USA. 1977 Apple II (8 bits Motorola 6502) mmoire de 64 Ko 1978 Microprocesseur 8086 (16 bits), Architecture oriente logiciel (VAX): simplifier la compilation des langages de haut niveau 1979 Le premier tableur : Visicalc sur Apple II 1981 PC d'IBM (16 bits Intel 8088) mmoire infrieure 1Mo avec le systme d'exploitation MS-DOS crit par Microsoft. 1984 MacIntosh d'Apple avec son interface graphique et sa souris 1984 PC AT (Advanced Technology) processeur 80286 et DOS 3.0 1985 Novembre : Windows 1.01 (PC AT avec HD et cran EGA) 1986 Fvrier : Windows 1.02 version franaise 1987 PS/2 avec la nouvelle architecture MCA et OS/2 (IBM) 1990 Windows 3.0 1992 Windows 3.1 et OS/2 2.0 1993 Le Pentium d'INTEL 1993 DOS 6.0 avec compresseur de donnes et antivirus intgr 1995 Windows 95

Systmes dexploitation

8/17

2.

Fonctions d'un systme d'exploitation

Le Systme d'Exploitation (Operating System) est l'ensemble des logiciels effectuant la gestion optimale des ressources d'un systme informatique. Install, on dit encore charg en mmoire centrale lors du dmarrage, le Systme Opratoire prend en charge la gestion complexe des constituants d'un ordinateur (processeur, mmoire, priphriques) et en optimise l'utilisation. Il permet tout simplement de rendre oprationnel un ordinateur. Les fonctions principales sont: gestion des applications ou travaux (partage de l'UC), gestion des utilisateurs, gestion des interruptions, gestion de la Mmoire Centrale, gestion de la Mmoire Secondaire (gestion des fichiers). Un systme d'exploitation possde : un systme de dialogue avec lutilisateur soit travers une interface graphique soit laide dune interface de type console o les commandes sont entres en mode ligne ; un interprteur de commande, un certain nombre de services: diteur de texte, tableur, navigateur, compilateur, etc.

2.1. EVOLUTION HISTORIQUE DES SYSTEMES D'EXPLOITATION


Avec les premires configurations de machines, le systme d'exploitation tait trs primitif. Il tait mono-utilisateur et monojob (monoprogramm). Les utilisateurs se servaient de l'ordinateur les uns aprs les autres. Ils prparaient leur travail (job) sous forme de paquet de cartes perfores, puis l'introduisaient dans un lecteur. Le programme et les donnes taient enregistrs temporairement dans la mmoire centrale de l'ordinateur. Ils recevaient les rsultats sous forme de listings l'aide de l'imprimante. Il n'y avait pas de mmoire secondaire pour enregistrer les programmes de manire permanente. Un paquet de cartes comprenait donc le programme, les donnes et des commandes de contrle pour l'enchanement et l'excution du job (JCL). L'apparition de moyen de stockage (bandes magntiques, puis disques durs) permit d'enregistrer les programmes et les donnes. Les paquets de cartes se firent plus petits. Il devint possible d'enchaner des trains de travaux les uns derrire les autres. Le mode de traitement fut appel traitement par lot ou Batch Processing. Afin d'optimiser l'utilisation de l'unit centrale qui ne faisait rien lorsqu'un job effectuait des entres/sorties (E/S ou I/O en anglais), le systme d'exploitation devint multijob (multiprogramm). Plusieurs travaux chargs en mmoire centrale se partageaient l'utilisation de l'unit centrale (CPU). Le systme d'exploitation veillait rpartir au mieux les ressources CPU, mmoire centrale et mmoire secondaire. Une tranche de temps de l'ordre de quelques secondes tait alloue priori un job. Lorsque une E/S survenait ou bien la fin du temps allou, le CPU tait donn au job suivant. Les moyens de dialogue avec l'ordinateur volurent avec les postes loigns dits terminaux. Ceux-ci taient composs d'un cran et d'un clavier. La mise jour et la prparation des travaux se faisaient en interactif. Les processus utilisateurs taient grs par le systme d'exploitation comme un traitement particulier prioritaire par rapport au traitement Batch. Le temps partag (Time Sharing) tait n et le systme d'exploitation devint multitraitement. Chaque utilisateur devait se croire seul utiliser la machine. Une
Systmes dexploitation 9/17

tranche de temps de l'ordre de quelques centimes de secondes quelques diximes (selon le nombre d'utilisateurs) tait alloue tour tour chaque utilisateur. Le traitement par lot s'effectuait en arrire plan lorsque le systme n'avait aucun utilisateur traiter. Ce type d'architecture tait essentiellement centralis. Les travaux (Batch) taient mis en file d'attente sur le central et entraient en excution en plus ou moins grand nombre selon la charge interactive du systme. Avec le nombre croissant d'utilisateurs, des machines spcialises en interactif et en batch vinrent collaborer au sein de cette architecture centralise. Les terminaux relis la machine interactive (Front-End) servaient la prparation et la soumission des travaux exploits sur la machine Batch (Host). Par la suite, l'architecture centralise fut remplace par une architecture distribue. Les moyens de calcul, de stockage et d'impression jusqu'alors centraliss se sont retrouvs chez les utilisateurs. Le terminal laissa la place au poste de travail (Work Station). Le systme d'exploitation permit aux utilisateurs d'avoir plusieurs processus interactifs associs une session de travail. Il fut possible de lancer en arrire plan (background) dans une session interactive des processus de compilation, d'impression, etc, tout en continuant une autre tche (dition par exemple). Le systme d'exploitation devint multitche et permit un certain degr de paralllisme. Diffrents systmes d'exploitation virent le jour. Chaque constructeur d'ordinateur proposait le sien. Dans les annes 1960-70 il ne fallait pas moins de 10 ans pour raliser un systme. Le systme Unix crit en langage C vint rvolutionner le monde de l'informatique en 1973. Ce systme pouvait s'installer sur n'importe quelle machine en moins d'un an. Il permettait la ralisation rapide d'applications distribues et assurait le portage de celles-ci sur d'autres machines. Certains systmes d'exploitation permettent le traitement temps rel. Les vnements extrieurs au systme doivent tre immdiatement pris en compte. La gestion des interruptions et le partage du CPU est alors plus complexe qu'avec le temps partag.

2.2. CYCLE DUTILISATION DE L'ORDINATEUR PAR UN DEVELOPPEUR


La conception d'un programme est la premire tape. C'est sans aucun doute ltape la plus courte, mais y passer du temps permet den conomiser vraiment par la suite. Viennent ensuite la mise au point du programme et les tests de validation. L'criture et la modification s'effectuent l'aide d'un diteur de texte ou dun environnement de programmation. Un utilitaire, comme sccs, peut tre utilis pour la gestion des diffrentes versions d'un programme et la conservation de l'historique des modifications. Le programme appel source est compil et donne un fichier objet. Le lien du programme objet avec des modules objets des bibliothques (fonctions et procdures du systme ou dveloppes) est effectu par un diteur de liens (linker) pour donner un fichier excutable. Le fichier excutable est charg en mmoire centrale par un chargeur (loader). Il existe des compilateurs qui gnrent directement des fichiers excutables. De mme l'dition de liens peut tre effectue au chargement voire mme dynamiquement l'excution. Les fichiers objets et excutables peuvent tre gnrs temporairement juste avant utilisation vitant ainsi l'occupation permanente d'une grande place sur disque. Un compromis est trouver entre le stockage et le cot de la compilation et de l'dition de liens. Une fois le programme valid, il est mis alors en exploitation avec des modifications propres une utilisation particulire (ce qui ncessite une compilation et/ou une dition de liens) et des jeux de donnes particuliers. La dure d'exploitation d'un travail tant en gnral de quelques dizaines d'heures, il est ncessaire de trononner l'excution d'un programme et d'effectuer plusieurs passages en machine. En effet l'utilisateur n'est pas
Systmes dexploitation 10/17

tout seul et il faut diviser le temps machine entre les diffrents utilisateurs: s'il y a par exemple 24 utilisateurs chacun aura pratiquement droit une heure par jour. Le trononnage des jobs permet en outre chaque utilisateur de vrifier au fur et mesure le bon droulement du programme utilis (code numrique de simulation). L'exploitation des codes occupe la plus grande charge de l'ordinateur. La maintenance (dtection et correction d'erreurs) et la rnovation des programmes (volution de l'environnement ou des mthodes numriques) constituent un travail de nature compltement diffrente.

2.3. LES SYSTEMES D'EXPLOITATION UNIX-LIKE


Le systme Unix est un systme multi-utilisateur, temps partag et multitche. Ce systme n'a pas t conu pour le traitement par lot. Nanmoins ce dernier est devenu possible l'aide des systmes NQS (Network Queuing System) et RQS (Remote Queuing System) dvelopps par Sterling Software et mis dans le domaine public. Le systme LINUX est un systme Unix crit par Linus Torwald. Le systme GNU/Linux est un systme Linux avec un ensemble trs consquent de produits, intgrs au systme, mais provenant du monde OpenSource. Il y a plusieurs interprteurs de commandes sous Unix ou Linux. Ne faisant pas rellement partis du noyau (kernel) on les appelle des Shells. Exemples : le Bourne Shell (/bin/sh), le C-Shell (/bin/csh), le Korn-Shell (/bin/ksh), le Bourne-Again Shell (/bin/bash)

2.4. LE SYSTEME D'EXPLOITATION MS-DOS


Le systme MS-DOS a t conu pour tre mono-utilisateur et monotche. Certaines commandes comme PRINT peuvent nanmoins s'excuter larrire plan (background). L'intgrateur graphique Windows permit d'ajouter la gestion et l'environnement multitche manquants. La version Windows 3.11 peut tre considr comme un cas particulier de systme d'exploitation dans un systme d'exploitation. En 1995, Windows devint un systme d'exploitation part entire connu sous le nom de Windows 95. Plusieurs systmes DOS (Disk Operating System) ont t crs sur PC : IBM-DOS, Digital-DOS, etc. On parle aujourdhui du DOS comme dun interprteur de commandes. Il a t remplac pat la commande CMD sous XP et VISTA.

2.5. LES SYSTEMES D'EXPLOITATION WINDOWS


W95, W98, W98ME, W98SE, NT4, NT2000, XP, VISTA

Systmes dexploitation

11/17

3.

Mcanismes de base

3.1. DEFINITIONS
Un processeur est l'ensemble des moyens matriels et logiciels permettant l'excution des instructions. Un processus est le droulement dynamique d'un ensemble d'instructions excutables sur le mme processeur. Un programme est un ensemble de processus, ventuellement rduit un seul lment. Une ressource est tout moyen logiciel ou matriel ncessaire au lancement d'un processus, autre qu'un processeur. Les ressources peuvent tre une zone de mmoire centrale, de la mmoire secondaire ou un priphrique (drouleur de bandes, imprimante, ). Un processus disposant de toutes les ressources ncessaires et d'un processeur adquat est dit actif. S'il lui manque un processeur, il est dit activable. S'il lui manque une ressource, il est dit bloqu ou en attente de ressource.

3.2. COMMUTATION D'ETAT


Plusieurs processus peuvent se trouver en mmoire centrale en mme temps. Ils s'excutent alors tour tour. Le passage d'un processus l'autre doit s'effectuer sans perdre le contexte d'UC du processus en cours (valeurs de l'accumulateur, du registre d'instruction, du compteur ordinal, etc). La sauvegarde du contexte d'excution permettra de reprendre par la suite l'excution du processus interrompu. Le mcanisme de base utilis s'appelle la commutation de mot d'tat (eXchange Package). Il permet d'excuter de manire indivisible la sauvegarde du mot d'tat dans une zone prcise et le changement d'une nouvelle valeur partir d'une zone prcise.

3.3. INTERRUPTION ET DEROUTEMENT


Le rle du systme d'interruption est d'avertir l'unit centrale qu'un condition particulire est survenue. La prise en compte d'vnement (coupure de courant, horloge, E/S, accs mmoire illgaux, instruction illgale, rsultat d'opration hors intervalle, etc) doit tre instantane. Le mcanisme d'interruption permet d'interrompre l'excution d'un processus pour excuter une routine de traitement approprie appele routine d'acquittement (interrupt handler). Le compteur ordinal et le contexte du processus interrompu sont sauvegards. Le contrle est transfr une adresse dtermine et associe un type d'interruption. Les interruptions peuvent tre dues des vnement matriels ou logiciels. L'excution du droutement s'effectue en mode superviseur (par opposition au mode utilisateur). Le systme d'interruption est en gnral hirarchis. A chaque signal d'IT est affect un niveau de priorit. Si un conflit se prsente, l'IT de plus forte priorit sera traite la premire. Il y a en gnral 3 classes d'interruption: 1) les interruptions externes dont la cause est extrieure au droulement du processus (panne, intervention de l'oprateur, etc), 2) les droutements provenant d'une situation exceptionnelle ou d'une erreur lies l'instruction en cours (division par zro, adressage illgal, etc), 3) les appels au systme (SuperVisor Call ou SVC) permettant de raliser une fonction du systme d'exploitation: consultation des tables systme, opration d'E/S, etc (exemple: Intr($13, Reg) en Turbo Pascal sous MS-DOS)

Systmes dexploitation

12/17

Les principales interruptions sont par ordre de priorit: dfaillance lectrique: lors d'un coupure de courant le systme doit sauvegarder le maximum d'information pour garantir la reprise ultrieure des travaux (tat de la mmoire centrale, du disque, etc). horloge: cette interruption permet de mettre jour l'horloge interne du systme, de partager et de dcompter les temps d'utilisation. fin d'E/S: le systme est prvenu lors de l'achvement d'une opration sur un priphrique (disque, imprimante, etc). protection mmoire: un adressage illgal (operand range error) en dehors des adresses infrieure et suprieure de la zone mmoire allou au processus provoquera une interruption de l'excution. opration illgale: une division par zro (division by zero), une opration donnant un rsultat non reprsentable (floating point overflow / underflow), l'excution d'un instruction inconnue ou de type superviseur provoqueront un arrt du processus en cours. arrive d'vnement temps rel: vnements capts par des organes particuliers connects l'ordinateur. L'acquittement d'un signal d'interruption impose qu'un certain nombre de conditions soit rempli: 1) l'UC doit tre dans un tat tel qu'elle accepte de se drouter pour un niveau d'interruption donne, l'UC peut tre inhibe ou dsinhibe pour une interruption donne, 2) le niveau de priorit correspondant au signal d'IT doit tre arm, 3) aucune IT de niveau de priorit suprieure n'est l'tat actif ou en cours de traitement. L'UC volue entre 2 tats bien prcis vis vis de chaque interruption: 1) elle met en attente toutes les interruptions d'un certain type (UC inhibe), 2) elle accepte de se drouter (UC dsinhibe). L'acheminement du signal d'IT doit tenir compte de la priorit de chaque niveau et des niveaux qui doivent tre ignors. L'UC prend connaissance de son tat par rapport une interruption en consultant le mot d'tat programme. Ce mot d'tat permet de rsoudre les problmes d'incompatibilit entre deux types d'acquittements, de protger le droulement des traitements associs des niveaux moins prioritaires. Certains indicateurs du mot d'tat programme (masque d'interruptions) peuvent tre positionns pour retarder temporairement la prise en compte d'une interruption qui sera dite masque. Il est possible par ailleurs de supprimer compltement la prise en compte d'une interruption en dsarmant le niveau de celle-ci. MASQUER == Retarder la prise en compte d'une IT DESARMER == Supprimer la prise en compte d'une IT

Systmes dexploitation

13/17

Diffrents tats d'interruption sont possibles: Niveau arm : le signal sera pris en compte. Niveau dsarm: le signal d'IT est ignor et ne sera jamais pris en compte. En attente : avant droutement de l'UC, certaines conditions sont remplir: aucun niveau de priorit suprieur ne doit tre actif (en cours), le niveau doit tre dsinhib Niveau actif : la routine d'acquittement du signal est en cours d'excution.

3.4. DIFFERENCE ENTRE ROUTINE DE TRAITEMENT ET SOUS-PROGRAMME


Le mcanisme d'appel de sous-programme met en jeu un programme appelant et un programme appel. Avant de donner la main (branchement l'adresse du sousprogramme appel), l'adresse de retour l'instruction suivante dans le programme appelant est sauvegarde dans une pile systme. S'il y a des variables passes en arguments, les adresses (passage par adresse) ou les valeurs (passage par valeur) sont ajoutes dans la pile. Si des variables locales au sous-programme appel existent, alors un emplacement mmoire dans la pile leur est ventuellement attribu. Le programme appel s'excute, peut communiquer avec le programme appelant travers des variables globales ou les variables passes en argument, puis rend la main au programme appel et restaure la dans son tat initial (avant appel). Une routine de traitement n'est pas un sous-programme du programme en cours d'excution. Elle appartient au systme (sauf dans le cas o, par programmation, une autre routine que celle du systme peut tre propose par le programmeur). Une interruption arrte l'excution du programme et donne la main une routine du systme. Le mcanisme de commutation d'tat est utilis.

Systmes dexploitation

14/17

4.

Exemples d'interruption en Turbo-Pascal

4.1. PROGRAMME SE_BREAK


Essayer le programme dans l'environnement TURBO-PASCAL et hors environnement (excution diffre l'aide d'un fichier EXE). Quelles diffrences peut-on constater? A quel moment est excute la routine GestionBREAK? Que se passe-t-il lorsque la boucle devient Repeat Until false; ?

4.2. PROGRAMME SE_CLICK


Ce programme dtourne la routine de traitement de lecture d'une touche enfonce du clavier. Cette dernire routine est rappele par la routine de traitement local afin de garantir la lecture de la touche. Cest la nouvelle routine qui met un lger bip sonore. Le programme lance un processus CMD.EXE dans lequel on peut relancer la mme commande. Appeler plusieurs fois le programme excutable et constater l'occupation grandissante de la mmoire centrale. Pour cela on utilisera la commande externe memmap.exe fournie avec les sources des exercices. Remarque: L'excution de l'interprteur de commande CMD.EXE se termine lorsque la commande EXIT est appele. Le programme ayant utilis la commande EXEC se poursuit alors et se termine en remettant en place le traitement antrieur de l'interruption clavier.

4.3. PROGRAMME SE_ITIME


Ce programme dtourne l'interruption horloge. Appeler plusieurs fois de suite le programme et surveiller l'occupation mmoire. Puis revenir l'tat initial en appelant plusieurs fois la commande EXIT. Dcrire ce qui se passe.

4.4. PROGRAMME SE_HALT


Ce programme sauvegarde l'adresse systme de la routine de fin de programme (donne par la variable ExitPROC) puis dfinit une nouvelle adresse de fin de programme. La procdure dsigne est excute en fin de programme quel que soit le droulement de l'excution (fin normale, interruption, erreur, etc).

4.5. PROGRAMME BGDEMO


A partir des fichiers BGSOUND.PAS, BGDEMO.PAS et du compilateur TPC, crer les fichiers BGSOUND.TPU et BGDEMO.EXE. On utilisera la commande TPC / ? pour obtenir la liste les options disponibles de la commande TPC. Excuter le programme BGDEMO et l'interrompre par CTRL+BREAK. Que se passe-t-il lorsque la zone prcdemment occupe par le programme BGDEMO est remplace par un autre programme?

Systmes dexploitation

15/17

5.

Exemples de gestion des signaux sous Unix

5.1. LISTE DES SIGNAUX


La liste des signaux peut tre obtenue laide de la commande : > kill -l 1) 5) 9) 13) 18) 22) 26) 30) 34) 38) 42) 46) 50) 54) 58) 62) SIGHUP SIGTRAP SIGKILL SIGPIPE SIGCONT SIGTTOU SIGVTALRM SIGPWR SIGRTMIN+2 SIGRTMIN+6 SIGRTMIN+10 SIGRTMIN+14 SIGRTMAX-13 SIGRTMAX-9 SIGRTMAX-5 SIGRTMAX-1 2) 6) 10) 14) 19) 23) 27) 31) 35) 39) 43) 47) 51) 55) 59) 63) SIGINT SIGABRT SIGUSR1 SIGALRM SIGSTOP SIGURG SIGPROF SIGSYS SIGRTMIN+3 SIGRTMIN+7 SIGRTMIN+11 SIGRTMIN+15 SIGRTMAX-12 SIGRTMAX-8 SIGRTMAX-4 SIGRTMAX 3) 7) 11) 15) 20) 24) 28) 32) 36) 40) 44) 48) 52) 56) 60) SIGQUIT SIGBUS SIGSEGV SIGTERM SIGTSTP SIGXCPU SIGWINCH SIGRTMIN SIGRTMIN+4 SIGRTMIN+8 SIGRTMIN+12 SIGRTMAX-15 SIGRTMAX-11 SIGRTMAX-7 SIGRTMAX-3 4) 8) 12) 17) 21) 25) 29) 33) 37) 41) 45) 49) 53) 57) 61) SIGILL SIGFPE SIGUSR2 SIGCHLD SIGTTIN SIGXFSZ SIGIO SIGRTMIN+1 SIGRTMIN+5 SIGRTMIN+9 SIGRTMIN+13 SIGRTMAX-14 SIGRTMAX-10 SIGRTMAX-6 SIGRTMAX-2

Elle peut tre aussi obtenue partir des fichiers include : SIGHUP Exit Hangup SIGINT Exit Interrupt SIGQUIT Core Quit SIGILL Core Illegal instruction SIGTRAP Core Trace trap SIGABRT Core Abort SIGERR Core Error exit SIGFPE Core Floating-point exception SIGKILL Exit Kill (cannot be caught) SIGPRE Core Program range error SIGORE Core Operand range error SIGSYS Core Bad argument to system call SIGPIPE Exit Broken pipe SIGALRM Exit Alarm clock SIGTERM Exit Software terminaison signal SIGIO Ignore I/O signal SIGURG Ignore Urgent cond. on I/O chanel SIGCLD Ignore Death of child-process SIGPWR Ignore Power failure SIGRECOVERY Ignore Recovery signal SIGUME Core Uncorrectable memory error SIGDLK Core True deadlock detected SIGCPULIM Exit CPU time limit exceeded SIGSHUTDN Ignore System shutdown imminent SIGSTOP Stop Sendable stop signal SIGTSTP Stop idem from terminal
Systmes dexploitation 16/17

SIGCONT SIGWINCH SIGINFO SIGUSR1 SIGUSR2

Ignore Continue a stoped process Ignore Window size change Ignore Information signal (getinfo) Exit User-defined signal 1 Exit User-defined signal 2

Cette liste est susceptible de changer selon le systme dexploitation. UTILISATION EN BOURNE SHELL trap 'rm -f /tmp/$$; exit' 1 2 3 15 trap "" 1 2 3 15 UTILISATION EN C SHELL onintr label ... label: command UTILISATION EN LANGAGE C #include <signal.h> void (*signal (int sig, void (*func) (int))) (int); void (sigset (int sig, void (*func) (int))) (int); int sigignore (int sig); Exemple 1 #include <signal.h> main() { void catch(int signal); signal(SIGINT, catch); /* ... */ } void catch(int signal) { signal(SIGINT, catch); /* ... */ } EXEMPLE 2 AVEC LA FONCTION WAIT: main() { int ret_val, ret_stat; signal(SIGINT, SIG_IGN); /* forks... */ ret_val = wait(&ret_stat); /* ... */ }

Systmes dexploitation

17/17

Vous aimerez peut-être aussi