Beruflich Dokumente
Kultur Dokumente
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.
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.
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.
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.
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.
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.
Systmes dexploitation
14/17
4.
Systmes dexploitation
15/17
5.
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
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