Vous êtes sur la page 1sur 64

Systmes dexploitation avancs

Benot Naegel
CNAM Alsace

Benot Naegel

Systmes dexploitation avancs

1 / 51

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

2 / 51

Introduction

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

3 / 51

Introduction

1. Introduction
Systme dexploitation Interface logicielle entre le matriel (ordinateur au sens gnral) et lutilisateur. Fournit au programmeur un ensemble dabstractions permettant de dissimuler la complexit de la gestion matrielle. Permet de virtualiser la gestion des ressources matrielles. Gestion bas-niveau des ressources matrielles. Gre lordonnancement et la synchronisation des tches, le cloisonnement entre les processus, lallocation de la mmoire physique, les entres/sorties, de manire transparente pour lutilisateur. Contexte SE prsent sur tout systme reposant sur un microprocesseur, une mmoire et un systme dentres/sorties. Ordinateur, PDA, console de jeux, calculatrice, tlvision, smartphone, distributeur de billets, lecteur carte puces, automobile,...

Benot Naegel

Systmes dexploitation avancs

4 / 51

Introduction

1. Introduction
Est-il toujours ncessaire ? Pas toujours : cas des systmes embarqus monoprogramms (programmation directe en langage machine). Mais il est ncessaire la plupart du temps pour utiliser de manire ecace toutes les ressources de la machine. Exemples de SE Ordinateur :
UNIX et ses drivs (FreeBSD, Linux, MacOS X) - propritaires/ logiciels libres Windows (Windows 3.1, Windows 95, Windows 98, Windows NT, Windows 2000,

Windows Vista, Windows Seven ...) - propritaire


MS-DOS Mac OS

Systmes mobiles : Android, Symbian OS, Windows CE, Windows Mobile, iOS...

Benot Naegel

Systmes dexploitation avancs

5 / 51

Introduction

1. Introduction

Objectifs dun systme dexploitation Fournir linterface utilisateur un ensemble de ressources virtuelles et unies. Exemple : une seule fonction pour sauvegarder un chier, quel que soit le priphrique (disquette, disque dur, cl USB) utilis.

Benot Naegel

Systmes dexploitation avancs

6 / 51

Introduction

1. Introduction

Autres objectifs dun SE Multiprogrammation : excution concurrente dun ensemble de programmes. Donner lillusion que tous les programmes chargs se droulent de manire simultane. Chaque programme a accs lensemble des ressources physiques sans interfrer avec les autres programmes (notion de cloisonnement). Multi-utilisateur : gestion de plusieurs utilisateurs simultanment. Donner lillusion chaque utilisateur quil est seul utiliser la machine. Consquences Logiciel extrmement complexe (noyau Linux : >6 millions de lignes de code. Windows 7 > 70 millions de lignes) ncessitant des dizaines dannes de dveloppement. Relativement peu de SE dvelopps utilisables en pratique.

Benot Naegel

Systmes dexploitation avancs

7 / 51

Introduction

1. Introduction
Organisation du module

Cours + travaux pratiques. Travaux pratiques : programmation systme sous Linux. Manipulation des notions vues en cours (gestion de chiers, processus, threads, smaphores, communication inter-processus, etc.). 3 Notes : TP, valuation crite nale, projet. Sujet de projet libre ou impos. Pour le sujet libre, faire une proposition ainsi quun cahier des charges pour validation (le sujet doit avoir un lien avec une au moins des grandes parties traites en cours). Exemple de sujet libres proposs lan dernier : Morpion via Bluetooth sous Android, Gestionnaire WiFi sur iPhone, AndroFly : utilisation dun smartphone comme manette de jeu sous FlightGear.

Benot Naegel

Systmes dexploitation avancs

8 / 51

Introduction

1. Introduction
Bibliographie

Systmes dexploitation. Andrew Tanenbaum, Pearson Education, 3e ed. 2008. Operating system concepts. Silberschatz, Galvin, Gagne, Wiley, 8e ed. 2008. La programmation sous Unix. Jean-Marie Riet, Ediscience, 3e ed. 1991. Understanding the Linux kernel. Bovet, Cesati, OReilly, 3e ed. 2005. Windows Internals. Russinovich, Solomon, Microsoft Press, 5e ed, 2009.

Benot Naegel

Systmes dexploitation avancs

9 / 51

Introduction

1.1 Historique
Historique des systmes dexploitation Premire gnration (1945-1955) : tubes vide. Seconde gnration (1955-1965) : transistors et traitements par lots (batch). Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation. Quatrime gnration (1980-aujourdhui) : ordinateurs personnels.

Benot Naegel

Systmes dexploitation avancs

10 / 51

Introduction

1.1 Historique
Premire gnration (1945-1955) : tubes vide

1941, Germany, Konrad Zuse, Z3 : 2600 relais mcaniques

Benot Naegel

Systmes dexploitation avancs

11 / 51

Introduction

1.1 Historique
Premire gnration (1945-1955) : tubes vide

1944, UK, Flowers et al., Colossus Mark2 : dcryptage des communications allemandes

Benot Naegel

Systmes dexploitation avancs

12 / 51

Introduction

1.1 Historique
Premire gnration (1945-1955) : tubes vide

1946, Etats-Unis, ENIAC, Mauchly, Eckert


Benot Naegel Systmes dexploitation avancs 13 / 51

Introduction

1.1 Historique
Premire gnration (1945-1955) : tubes vide

Pas de systme dexploitation : programmation par interrupteurs. Manipulation lourde. Problmes de abilit engendrs par les tubes vide. La mme quipe conoit, construit, administre et maintient chaque machine. Langages de programmation inconnus (y compris le langage assembleur). Le programmeur sinscrit pour une dure de temps dans la salle machine (et prie pour quaucun des 20000 tubes ne grille...). Essentiellement des calculs numriques (tables de sinus ou logarithmes). Introduction des cartes perfores au dbut des annes 50.
Benot Naegel Systmes dexploitation avancs 14 / 51

Introduction

1.1 Historique
Deuxime gnration (1955-1965) : transistors et traitements par lots

Transistor remplace tube vide : les ordinateurs deviennent plus ables. Programmation sur papier (FORTRAN ou assembleur) puis codage sur cartes perfores. Soumission du support physique loprateur prsent en salle machine. Loprateur rcupre la trace dexcution sur une imprimante. Si le compilateur FORTRAN est ncessaire, il devait pralablement le charger. Perte de temps en manipulations humaines Solution : traitement par lots. Mainframe IBM 7094

Benot Naegel

Systmes dexploitation avancs

15 / 51

Introduction

1.1 Historique
Deuxime gnration (1955-1965) : transistors et traitements par lots

Transistor remplace tube vide : les ordinateurs deviennent plus ables. Programmation sur papier (FORTRAN ou assembleur) puis codage sur cartes perfores. Soumission du support physique loprateur prsent en salle machine. Loprateur rcupre la trace dexcution sur une imprimante. Si le compilateur FORTRAN est ncessaire, il devait pralablement le charger. Appareil de perforation de cartes IBM Perte de temps en manipulations humaines Solution : traitement par lots.

Benot Naegel

Systmes dexploitation avancs

16 / 51

Introduction

1.1 Historique
Deuxime gnration (1955-1965) : transistors et traitements par lots

Transistor remplace tube vide : les ordinateurs deviennent plus ables. Programmation sur papier (FORTRAN ou assembleur) puis codage sur cartes perfores. Soumission du support physique loprateur prsent en salle machine. Loprateur rcupre la trace dexcution sur une imprimante. Si le compilateur FORTRAN est ncessaire, Carte perfore FORTRAN il devait pralablement le charger. Perte de temps en manipulations humaines Solution : traitement par lots.

Benot Naegel

Systmes dexploitation avancs

17 / 51

Introduction

1.1 Historique
Deuxime gnration (1955-1965) : transistors et traitements par lots

Traitement par lots

Source : Systmes dexploitation, A. Tanenbaum, 3e ed.

Benot Naegel

Systmes dexploitation avancs

18 / 51

Introduction

1.1 Historique
Deuxime gnration (1955-1965) : transistors et traitements par lots

Systmes dexploitation : FMS (Fortran Monitor System) et IBSYS (SE de lIBM 7094).

IBM 7090

Benot Naegel

Systmes dexploitation avancs

19 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

1966, IBM Srie 360. Utilisation de circuits intgrs. Architecture unique pour une large gamme de machines. Mmoire : entre 4 et 4096 kilooctets.
Benot Naegel Systmes dexploitation avancs 20 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

Systme dexploitation OS/360 unique pour toute la gamme 360. SE norme. Millions de lignes dassembleur. Milliers de bugs. Introduction de la multiprogrammation, de la technique de spoulage.

Benot Naegel

Systmes dexploitation avancs

21 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

Multiprogrammation Gnration prcdente (IBM 7090) : quand un job sarrte pour attendre une entre/sortie (E/S), lUC ne fait rien (attente). Dans les applications commerciales, les temps dE/S peuvent atteindre 80 90% du temps total. Solution : partitionnement de la mmoire entre plusieurs jobs. Quand un job attend une E/S, un autre job peut utiliser lUC. Mcanismes de protection matrielle contre lintrusion des jobs concurrents.

Benot Naegel

Systmes dexploitation avancs

22 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

Spoulage Spool : Simultaneous Peripheral Operation On Line. Stockage sur disque des jobs crits sur carte au fur et mesure de leur arrive. Quand un job se termine, le systme en charge un nouveau. Les manipulations de bande disparaissent. Inconvnient : dure entre soumission du job et rcupration des rsultats trs longue (plusieurs heures).

Benot Naegel

Systmes dexploitation avancs

23 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

Temps partag Chaque utilisateur dispose dun terminal en ligne. LUC sert les jobs qui rclament eectivement des ressources. Premier systme temps partag : CTSS (Compatible Time Sharing System). Mcanismes de protection matrielle systmatiss. MIT, Bell Labs, General Electrics : dveloppement de MULTICS partir de 1964.

Benot Naegel

Systmes dexploitation avancs

24 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

MULTICS (MULTIplexed Information and Computing Service) Paradigme : distribution individuelle de puissance de calcul similaire la distribution dlectricit. Un ordinateur trs puissant fournit de la puissance de calcul toute une ville. Systme innovant et trs ambitieux : capable de supporter des centaines dutilisateurs. Bell Labs et General Electrics se retirent en 1969 et 1970. MIT nit seul le projet. Succs mitig.

Benot Naegel

Systmes dexploitation avancs

25 / 51

Introduction

1.1 Historique
Troisime gnration (1965-1980) : circuits intgrs et multiprogrammation

Perce des mini-ordinateurs A partir de 1961, famille des PDP (PDP-1...PDP-11). Pas compatibles entre eux (contrairement aux IBM). Thompson, ingnieur ayant travaill sur MULTICS Bell Labs dveloppe une version allge (mono-utilisateur) de MULTICS sur un PDP-7 : UNICS Base du systme UNIX. 1959, DEC PDP-1. 120000 $ pice. 4 k mots de 18 bits.

Benot Naegel

Systmes dexploitation avancs

26 / 51

Introduction

1.1 Historique
Quatrime gnration (1980-aujourdhui) : ordinateurs personnels

Dveloppement des microprocesseurs Ordinateurs personnels. Intel 8080 : SE CP/M. Dbut des annes 80 : IBM PC Bill Gates propose IBM un package DOS/BASIC. Version modie : MS-DOS. IBM PC/AT : 1983 (proc. Intel 286) puis 386, 486, Pentium, etc. 1974, micro-processeur Intel 8080 (8 bits)

IBM PC 5150

Benot Naegel

Systmes dexploitation avancs

27 / 51

Introduction

1.1 Historique
Quatrime gnration (1980-aujourdhui) : ordinateurs personnels

Systmes dexploitation CP/M, DOS : interface textuelle. Xerox PARC : concept dIHM (interface homme-machine) graphique. Steve Jobs a t impressionn par ce concept : dveloppement du Lisa (chec commercial) puis Apple Macintosh (norme succs). Dbut des systmes dexploitation bass sur des IHM graphiques. 1984, Apple Macintosh 128K (proc. Motorola 68000) (SE : Systeme)

Benot Naegel

Systmes dexploitation avancs

28 / 51

Introduction

1.1 Historique
Quatrime gnration (1980-aujourdhui) : ordinateurs personnels

Microsoft Windows Microsoft Windows, successeur de MS-DOS bas sur le concept dIHM. Windows 3.x : surcouche de MS-DOS Windows 95, Windows 98 : grande quantit de code 16 bits. Windows NT : rcriture complte, systme totalement 32 bits. Version 5 de NT : Windows 2000 Puis Windows XP, Windows Vista, Windows Seven 1992, Windows 3.1

Benot Naegel

Systmes dexploitation avancs

29 / 51

Introduction

1.1 Historique
Quatrime gnration (1980-aujourdhui) : ordinateurs personnels

Unix Invention du langage C Systme crit en C et assembleur. Plusieurs branches concurrentes du systme : BSD (Berkeley), AT& T System V. Nombreux drivs commerciaux : Microsoft XENIX, IBM AIX, Solaris, HP UX,... Tentative de standardisation : POSIX (Portable Operating System +IX pour consonnance UNIX). Linux : clone (logiciel libre) dUNIX dvelopp sous limpulsion de Linus Torvalds.

Histoire dUNIX
Benot Naegel Systmes dexploitation avancs 30 / 51

Introduction

1.2 Structure matrielle dun ordinateur

Architecture dun ordinateur Base : architecture de Von Neumann. Principes dcrits en 1945.

Benot Naegel

Systmes dexploitation avancs

31 / 51

Introduction

1.2 Structure matrielle dun ordinateur


Processeur Extrait des instructions de la mmoire et les excute. Chaque processeur a un jeu dinstructions spcique. Registres : permettent de stocker des variables importantes et des rsultats intermdiaires. Instructions classiques :
charger un mot de la mmoire vers un registre (et inversement). opration arithmtique : une ou deux oprandes et stockage du rsultat dans un

registre.

Compteur ordinal : adresse de la prochaine instruction excuter. Mis jour chaque excution dinstruction. Pointeur de pile : adresse courante du sommet de la pile. Mot dtat (PSW, Program Status Word) : entre autre, mode (utilisateur ou noyau) dexcution. Rle trs important dans les appels systme. Pipeline : units spares pour lextraction, le dcodage et lexcution. Linstruction n+1 est dcode tandis que linstruction n+2 est extraite et linstruction n excute. Une instruction qui rentre dans le pipeline est excute, mme si linstruction prcdente tait un branchement conditionnel.
Benot Naegel Systmes dexploitation avancs 32 / 51

Introduction

1.2 Structure matrielle dun ordinateur

Mode noyau/utilisateur Information stocke dans le PSW. Mode noyau : le processeur peut excuter tout son jeu dinstruction et a accs lensemble du matriel. Mode utilisateur : sous-ensemble dinstructions. E/S (entres/sorties) et accs la mmoire inaccessibles. Interdiction de basculer le bit de protection du PSW. Pour accder aux services du SE, un programme utilisateur doit eectuer un appel systme (instruction trap). Le programme bascule en mode noyau, puis reprend la main la n du traitement de lappel systme.

Logiciel

Services Noyau

Matriel

Benot Naegel

Systmes dexploitation avancs

33 / 51

Introduction

1.2 Structure matrielle dun ordinateur


Mmoire Hirarchie de couches :

Registres internes au processeur < 1 Ko. Mmoire cache : plusieurs niveaux. Mmoire principale (RAM, Random Access Memory). Disque magntique : temps daccs 1000 fois plus lent que la RAM. Stockage important.

Mise en oeuvre de la mmoire virtuelle : chaque programme ne manipule que des adresses virtuelles. Conversion dadresse ralise matriellement par la MMU (Memory Management Unit). La MMU se trouve sur le processeur.

Benot Naegel

Source : Systmes dexploitation, A. Tanenbaum, 3e ed. Systmes dexploitation avancs

34 / 51

Introduction

1.2 Structure matrielle dun ordinateur


Les disques Disque magntique ou disque dur : cot du stockage 100 fois infrieur la RAM et capacit 100 fois suprieure. Temps daccs aux donnes plus long. Un ou plusieurs plateaux tournant 5400, 7200 ou 10800 tours/min.

Source : Systmes dexploitation, A. Tanenbaum, 3e ed.

Benot Naegel

Systmes dexploitation avancs

35 / 51

Introduction

1.2 Structure matrielle dun ordinateur


Les disques Bras mcanique au-dessus des plateaux ; plusieurs ttes de lecture/criture. A une position donne du bras la tte peut lire une zone circulaire appele piste. Ensemble des pistes accessible une position donne est appele cylindre. Piste divise en secteurs (512 octets). Cylindres extrieurs contiennent plus de secteurs que les cylindres intrieurs. Dplacement du bras vers un cylindre quelconque : 5 10 ms. Une fois le bras en place, temps daccs au secteur concern : 5 10 ms. Lecture/criture eective : dbit jusqu 300Mo/s.

Benot Naegel

Systmes dexploitation avancs

36 / 51

Introduction

1.2 Structure matrielle dun ordinateur

Priphriques dentres/sorties Deux parties : contrleur et priphrique. Contrleur : interface entre le priphrique et le systme dexploitation. Priphrique : gestion trs complexe. Le contrleur ore une interface simplie. Exemple :
Lecture du secteur 11206 du disque 2. Contrleur eectue la conversion : numro de secteur linaire triplet

(cylindre,secteur,tte).
Cylindres comportent un nombre de secteurs variables. Secteurs peuvent tre

dfectueux.
Attente que le secteur se trouve sous la tte. Lecture et stockage des bits, calcul dune somme de contrle. Assemblage des bits en mots et stockage en mmoire.

Benot Naegel

Systmes dexploitation avancs

37 / 51

Introduction

1.2 Structure matrielle dun ordinateur

Problmes Pour chaque type/marque de priphrique, il faut tout rcrire. Code complexe et trs proche du matriel (gestion de tous les dtails). Lecteur de disquette : relativement simple par rapport dautres priphriques (disques durs, etc.). Comment sadapter tous les priphriques ? Utilisation de pilotes (drivers) crits pour chaque SE par les fabricants de matriel.

Benot Naegel

Systmes dexploitation avancs

38 / 51

Introduction

1.2 Structure matrielle dun ordinateur


Les bus Communication entre le processeur, la mmoire et les priphriques. Bus unique : plus susant. Exemple : Pentium, huit bus (cache, local, mmoire, PCI, SCSI, USB, IDE et ISA).

Benot Naegel

Systmes dexploitation avancs

39 / 51

Introduction

1.2 Structure matrielle dun ordinateur

Dmarrage de lordinateur BIOS (Basic Input Output System) : logiciel de bas niveau ddi aux E/S. Gestion basique du clavier, de lcran, des disques. Stock dans mmoire Flash non volatile. Au dmarrage le BIOS est lanc. Vrie la taille de la RAM, la rponse du clavier et dautres priphriques de base. Priphrique damorage : premier secteur lu en mmoire et excut. Le chargeur lance le systme dexploitation.

Benot Naegel

Systmes dexploitation avancs

40 / 51

Introduction

1.3 Structure dun systme dexploitation

Le noyau Partie qui rside constamment en mmoire centrale. Routines qui requirent un mode dexcution privilgi (mode superviseur ou mode noyau) : appels systmes. Passage en mode noyau ncessite un changement de contexte : sauvegarde des registres et restauration du contexte. Coteux. Pilotes Modules qui dialoguent avec les priphriques rels.
Noyau Logiciel

Services

Matriel

Benot Naegel

Systmes dexploitation avancs

41 / 51

Introduction

1.3 Structure dun systme dexploitation

Systmes monolithiques Anciennes versions dUNIX, de Linux (<1.2) : recompilation du noyau chaque installation de pilote. Versions rcentes de Linux : modulaires, mais toujours monolithiques. Les pilotes sont chargs dynamiquement dans le noyau. Meilleures performances, mais problme de robustesse : un pilote bugg introduit dans le noyau peut faire planter tout le systme.
Logiciel

Services Noyau

Matriel

Benot Naegel

Systmes dexploitation avancs

42 / 51

Introduction

1.3 Structure dun systme dexploitation

Micronoyaux Noyau minimal : les pilotes sont chargs dans lespace utilisateur. Meilleure extensivit et adaptatbilit. Meilleure isolation des fautes. Un pilote bugg ne fait pas scrouler le systme. Problme de performances. Systmes trs complexes. Noyaux Mach/Chorus. Systme GNU Hurd (en dveloppement). Windows NT, MacOs X : pas vritable micronoyau, architecture hybride.
Mode noyau Services Noyau Mode utilisateur Processus systme Processus utilisateur

Matriel

Benot Naegel

Systmes dexploitation avancs

43 / 51

Introduction

1.3 Structure dun systme dexploitation

Exonoyaux Chaque utilisateur possde un sous-ensemble des ressources de la machine. Un exonoyau ne fait quattribuer des ressources de bas-niveau et vrie la cohrence des accs. Aucun mcanisme dabstraction. Chaque programme utilisateur doit donc crire lensemble des appels systmes, systmes de gestion de chiers, etc.

Benot Naegel

Systmes dexploitation avancs

44 / 51

Introduction

1.3 Structure dun systme dexploitation

Machines virtuelles Hyperviseur logiciel, permettant de crer plusieurs environnements mulant lordinateur hte. Chaque machine virtuelle donne lillusion de disposer dun ordinateur complet. Les machines virtuelles sont cloisonnes. Elles peuvent communiquer via rseau. Concept ancien. Remis au got du jour grce aux processeurs orant des instructions mettant oeuvre la virtualisation de faon matrielle.

SE1

SE2 Systmes hbergs Matriel virtuel

Hyperviseur

Systme hote

Matriel

Benot Naegel

Systmes dexploitation avancs

45 / 51

Introduction

1.4 Concepts de base des SE


Les processus
No de processus

Un processus est une abstraction reprsentant un programme en cours dexcution. Chaque processus possde :
un espace dadressage : programme excutable,

Etat du processus Compteur Registres Limite mmoire Fichiers ouverts

donnes, pile. un ensemble de registres (compteur ordinal, pointeur de pile,...)

Dans un systme multiprogramm, le systme peut dcider tout moment dinterrompre un processus et de continuer lexcution dun autre. Notion de changement de contexte : quand un processus est suspendu, il doit redmarrer exactement dans le mme tat. Toute linformation ncessaire (le contexte du processus) doit tre sauvegard quelque part. Table des processus : stocke le contexte du processus (registres, chiers ouverts,...), sauf le contenu de lespace dadressage.
Benot Naegel Systmes dexploitation avancs

Noyau

Bloc de controle

Pile

Tas Donnes Texte Espace dadressage


46 / 51

Introduction

1.4 Concepts de base des SE


Lespace dadressage

Plusieurs programmes cohabitent en mme temps en mmoire. Mcanisme de protection matrielle pour empcher les interfrences, contrl par le systme. Chaque processus ne voit que son espace dadressage. Espace dadressage sur 32 ou 64 bits (232 :4Go, 264 :>16 millions de Go). Mcanisme de mmoire virtuelle : le systme peut garder une partie de lespace dadressage en mmoire centrale et une partie sur le disque.

Pile

Pile

Pile

Tas Donnes Texte


0x00000000 0x00000000

Tas Donnes Texte


0x00000000

Tas Donnes Texte Espace dadressage

Espace dadressage

Espace dadressage

Processus 1
Benot Naegel

Processus 2
Systmes dexploitation avancs

Processus 3
47 / 51

Introduction

1.4 Concepts de base des SE


Les chiers

Systme de chiers : abstraction permettant de reprsenter le contenu dun disque comme un ensemble de chiers indpendants gnralement structurs au sein de rpertoires. Le systme permet louverture, la fermeture, la lecture et lcriture des chiers sur le priphrique physique.

Benot Naegel

Systmes dexploitation avancs

48 / 51

Introduction

1.4 Concepts de base des SE


Les entres/sorties

Nombreux types de priphriques (claviers, crans, imprimantes, etc.). Tout systme dexploitation possde un sous-systme dE/S responsable des priphriques. Partie logicielle gnrique (sapplique plusieurs priphriques) et partie spcique : les pilotes.

Benot Naegel

Systmes dexploitation avancs

49 / 51

Introduction

1.4 Concepts de base des SE


La scurit

Ncessit de protger linformation. Robustesse aux intrusions humaines, aux virus, etc. Unix : chiers protgs par un code binaire sur 9 bits. (3 champs de 3 bits : propritaire, groupe, autres utilisateurs). Exemple : rxwr-xx chier en lecture/criture/excution pour le propritaire, et en lecture/excution pour les membres du groupe et les autres utilisateurs.

Benot Naegel

Systmes dexploitation avancs

50 / 51

Introduction

1.5 Les appels systme

Lorsquun processus a besoin dutiliser des ressources du systme, ou daccder des adresses situes en dehors de son espace dadressage (mmoire partage), il doit eectuer un appel systme. Un appel systme est une fonction dont le code rside dans le noyau. Le processus est interrompu et passe la main au noyau : changement de contexte et passage en mode noyau. Quand la fonction correspondant lappel systme est termine, le contexte est restaur et le processus reprend la main. La fonction renvoie gnralement un code de retour.

Benot Naegel

Systmes dexploitation avancs

51 / 51

Introduction

1.5 Les appels systme


Gestion des processus

Unix pid=fork() pid=waitpid(pid,&stat,options) s=execve(nom, argv, env) exit(statut) Cre un processus identique au parent. Retourne le pid du ls. Attend la terminaison dun ls Remplace limage dun processus Termine lexcution dun processus

Benot Naegel

Systmes dexploitation avancs

52 / 51

Introduction

1.5 Les appels systme


Gestion des chiers

Unix fd=open(fich,mode,...) s=close(fd) n=read(fd,buf,nbOctets) n=write(fd,buf,nbOctets) pos=lseek(fd,offset,orig) s=stat(nom,&buf) Ouvre un chier en lecture et/ou en criture Ferme un chier ouvert Lit nbOctets dun chier et les place dans buf Ecrit nbOctets dans un chier partir de buf Dplace la tte de lecture du chier Rcupre de linformation sur un chier

Benot Naegel

Systmes dexploitation avancs

53 / 51

Introduction

1.5 Les appels systme


Gestion des rpertoires et du systme de chiers

Unix s=mkdir(nom,mode) s=rmdir(nom) s=link(nom1,nom2) s=unlink(nom) s=mount(spec,nom,flags) s=umount(spec) Cre un nouveau rpertoire Supprime un rpertoire vide Cre un lien (nom2) pointant sur nom1 Supprime un lien Monte un systme de chiers Dmonte un systme de chiers

Benot Naegel

Systmes dexploitation avancs

54 / 51

Introduction

1.5 Les appels systme


Autres

Unix s=chdir(nomRep) s=chmod(nom,mode) s=kill(pid,signal) sec=time(&sec) Change le rpertoire de travail Change les droits daccs dun chier Envoie un signal un processus Renvoie le temps coul depuis le 1er janvier 1970

Benot Naegel

Systmes dexploitation avancs

55 / 51

Introduction

1.5 Les appels systme


Gestion des processus

Windows (API Win32) CreateProcess WaitForSingleObject ExitProcess Cre un nouveau processus Attend la n dun processus Termine lexcution du processus

Benot Naegel

Systmes dexploitation avancs

56 / 51

Introduction

1.5 Les appels systme


Gestion des chiers

Windows (API Win32) CreateFile CloseHandle ReadFile WriteFile SetFilePointer GetFileAttributesEx Cre un nouveau chier Ferme un chier Lit des donnes depuis un chier Ecrit des donnes dans un chier Dplace le pointeur de chier Trouve linformation sur un chier

Benot Naegel

Systmes dexploitation avancs

57 / 51

Introduction

1.5 Les appels systme


Gestion du systme de chiers

Windows (API Win32) CreateDirectory RemoveDirectory Cre un nouveau rpertoire Supprime un rpertoire vide

Benot Naegel

Systmes dexploitation avancs

58 / 51

Processus et ordonnancement

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

59 / 51

Gestion de la mmoire

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

60 / 51

Systme de chiers

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

61 / 51

Threads et synchronisation

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

62 / 51

Entres/sorties

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

63 / 51

Scurit

Plan

Introduction Processus et ordonnancement Gestion de la mmoire Systme de chiers Threads et synchronisation Entres/sorties Scurit

Benot Naegel

Systmes dexploitation avancs

64 / 51