La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Concepts de base des O.S. Chapitre 1 1.1. Qu'est-ce un O.S. ? 1.2. Histoire des O.S. 1.3. La jungle des O.S. 1.4. Composantes des O.S. 1.5. Les appels-systèmes.

Présentations similaires


Présentation au sujet: "1 Concepts de base des O.S. Chapitre 1 1.1. Qu'est-ce un O.S. ? 1.2. Histoire des O.S. 1.3. La jungle des O.S. 1.4. Composantes des O.S. 1.5. Les appels-systèmes."— Transcription de la présentation:

1 1 Concepts de base des O.S. Chapitre Qu'est-ce un O.S. ? 1.2. Histoire des O.S La jungle des O.S Composantes des O.S Les appels-systèmes

2 Qu'est-ce qu'un O.S. ? C'est la couche logicielle indispensable entre le hardware et les programmes applicatifs C'est une machine étendue –Présentation à l'utilisateur d'une machine virtuelle –Masquage de la complexité technique C'est un gestionnaire de ressources –Allocation équitable du temps (CPU) et de l'espace (mémoire) entre les différents processus –Allocation équitable des autres ressources périphériques

3 3 LO.S. est plus quune interface Beaucoup dutilisateurs ne voient que linterface (shell) Intégration de plus en plus forte actuellement entre les services (cfr Windows/Internet) Hardware Operating System LibrariesUtilities Interface

4 4 Objectifs de lO.S. Utilisation efficace des ressources –Eviter les bouchons (bottlenecks) et les temps dattente –Partage optimal du CPU, mémoire, I/O Facilité dutilisation –Le client est roi Disponibilité, fiabilité, sécurité –les systèmes informatiques sont le cerveau de nombreuses entreprises A failed system can mean a failed company...

5 5 Vue abstraite d'un système informatique Un système informatique est composé de: –hardware –programmes systèmes –programmes d'applications

6 Historique des OS

7 7 Première génération OS Systèmes batch (par lots) simples Mono-tâche et séquentiel (héritier: DOS) ComputeReadPrint ComputeReadPrint Gaspillage d utilisation CPU !

8 8 Seconde génération OS Systèmes batch avec spooling (Simultaneous Peripheral Operations On- Line) lecture et écriture Mieux, mais problème des longs jobs ComputeReadPrint ComputeReadPrint ComputeReadPrint

9 9 Troisième génération OS 1965–1980 Introduction des concepts de temps partagé et dinteractivité avec les utilisateurs (premiers terminaux texte tty) systèmes multi-tâches, multi-utilisateurs Nécessité dun ordonnanceur et de gestion de processus (priorités, tranches de temps) Les premiers O.S. modernes, propriétaires (IBM, Dec,…) ou de domaine public (Unix) Vers une gestion moins gaspilleuse des ressources

10 10 Base de la multiprogrammation Plusieurs jobs sont résidents en mémoire. Nécessité dun ordonnanceur pour sélectionner le job suivant devant sexécuter

11 11 Quatrième génération 1980 –... Les premiers PCs: retour en arrière au niveau des O.S. (mono-tâche, mono-user)! Les premiers réseaux: intégration des protocoles de communication dans les O.S. Lavènement réel de linformatique moderne Internet a 30 ans! Unix aussi! C également!

12 12 Quatrième génération 1980 –... The system is the network. (Sun Microsystems) Multi-utilisateurs, Multi-tâches, Multi- processeurs, Multi-ordinateurs (systèmes distribués)

13 13 Résumé de lhistoire de linformatique

14 La jungle des O.S. Mainframe operating systems Server operating systems Multiprocessor operating systems Personal computer operating systems Real-time operating systems (O.S. temps-réel) Embedded operating systems (O.S. embarqués) Smart card operating systems (O.S. pour cartes à puces)

15 15 Systèmes parallèles Plusieurs CPU coopérant en topologie rapprochée (cartes multiprocesseurs, clusters) À mémoire partagée, distribuée, ou distribuée et virtuellement partagée. Pourquoi ? –Coût/Performance –Fiabilité/Tolérance aux pannes/Qualité de Service –Sécurité

16 16 Systèmes distribués Lapplication est répartie sur plusieurs ordinateurs (loosely coupled). Avantages –Partage de ressources –Adaptation application/architecture Nouveau concept : Cluster & Grid computing (voir

17 17 Systèmes temps-réel Contraintes de temps strictes Souvent utilisés pour des applications dédicacées de contrôle (industrie, domaine médical, scientifique,…) Hard real-time system Nécessite un O.S. + hardware adapté Soft real-time system Nécessite un paramètrage de lO.S. (ordonnanceur spécialisé)

18 18 Systèmes mobiles (embarqués ou spécialisés) de l'informatique dans toutes les machines: cartes à puce, machines à laver, notebook, agenda électroniques, GSM,... nécessité d'un O.S. standard, miniature et adapté pour les programmer : Windows CE, adaptation de Linux, PalmOS,...

19 Composantes des O.S. Gestion des processus Gestion de la mémoire Gestion des fichiers Gestion des I/O et périphériques Administration et sécurité Réseau Services utilisateurs (interface, audit, monitoring…)

20 20 Gestion des processus Un processus est un programme en cours dexécution –Il occupe des ressources (mémoire, fichiers ouverts, CPU,..) –Il a un contexte dexécution (état) Les fonctions indispensables sont: –Création et terminaison –Allocation des ressources –Synchronisation et communication –Administration

21 21 Gestion de la mémoire Partage équitable de la mémoire entre processus Gestion dune mémoire virtuelle (swap) Protection des accès Récupération des blocs devenus libres (garbage collection)

22 22 Gestion de la mémoire secondaire L'O.S. doit gérer efficacement: –L'allocation/désallocation de l'espace disque –Les accès (lents) aux disques –Les transferts mémoire-vive/mémoire secondaire

23 23 Gestion des fichiers Administration des fichiers –Création/effacement/copiage fichiers/répertoires –Modification des propriétés dun fichier –Correspondance fichier/stockage physique –Backup et archivage create, delete, open, close read, write, seek get or set attributes

24 24 L'arbre des fichiers.

25 25 L'arbre des fichiers Before mounting, –Les fichiers sur "Floppy" sont inacessibles After mounting floppy on b, –Les fichiers sur "floppy" font partie de l'arbre des fichiers

26 26 Gestion des I/O Assurer un niveau dabstraction: cacher les particularités des systèmes Composantes principales –Gestion de buffering, caching et spooling –Drivers

27 27 Administration et sécurité Gestion des comptes utilisateurs –quotas, compatibilité, droits daccès Audit du système Démarrage (boot) et redémarrage en cas de panne Lutte contre le piratage Les fonctions réseaux jouent un rôle majeur aujourdhui (accès distants au CPU et aux périphériques)

28 28 Administration réseau Lié de plus en plus à lO.S. 4 types de systèmes –Stand alone (en voie d'extinction) –Multiprocesseurs –Clusters (LAN) –Distribué (WAN) 2 modèles de communication –Par passage de message –Mémoire (virtuellement) partagée

29 29 Services utilisateurs Interface (conviviale) –Shell –GUI (Graphic User Interface) –Scripting (langages de commande) Comptabilité, administration Sécurité, Audit Lutilisateur veut un O.S. simple d'emploi, efficace, fiable (cfr évolution de lautomobile)

30 30 Structure dO.S. type - UNIX signals terminal handling character I/O system terminal drivers file system swapping block I/O system disk and tape drivers CPU scheduling page replacement demand paging virtual memory system call interface to kernel kernel interface to the hardware interface terminal controllers terminals device controllers disks and tapes memory controllers physical memory shells and commands compilers and interpreters system libraries USERS NOYAUNOYAU HARDWARE

31 Les appels-systèmes Les appels-systèmes permettent aux applications d'utiliser les ressources systèmes (gestion des processus, fichiers, mémoire I/O). Ils font basculer l'application de l'exécution en mode utilisateur à l'exécution en mode "kernel" (noyau) Ils déclenchent pour cela une interruption du cours normal de l'exécution vers un traitement (handler) en mode noyau.

32 32 Gestion des Processus Chapitre Les processus 2.2. L'ordonnancement des processus

33 Les processus Un processus est un programme en exécution Un processus est caractérisé par un contexte d exécution –segments de texte, données et pile –compteur spécifiant linstruction suivante à exécuter –registres

34 34 Les segments d'un processus: le texte, les données, la pile.

35 35 Etats d'un processus. ordonnanceur

36 36 L'importance de l'ordonnanceur Une des bases d'un OS multiprogrammé est –le traitement des interruptions –l'ordonnancement

37 37 Opérations sur les processus Création de nouveaux processus Terminaison de processus Suspension –Interne (wait) –Externe (attente dune ressource) P1 P4 P5 P6 P2 P3 P7 Arbre de processus

38 38 Création de processus Un processus (père) peut créer des processus fils –stockage en une structure d'arbre de processus, –chaque processus connaît son père Partage de ressources (mémoire, fichiers) entre père et fils –total ou partiel Exécution –soit concurrente –soit le père attend la terminaison du fils

39 39 La terminaison de processus Exécution de la dernière instruction ou appel système exit(). –L'O.S. libère les ressources employées –Le père en attente peut se réactiver Un parent peut arrêter son exécution ( abort() ) ou un processus peut "tuer" un autre s'il en a le droit ( kill() ) Les processus orphelins (père mort) sont généralement associés au processus racine.

40 40 La terminaison de processus 4 possibilités: 1.Sortie normale (appel exit() ou fin de code) 2.Sortie en cas d'erreur (volontaire, appel abort()) 3.Erreur fatale (involontaire, kill() par l'O.S.) 4.Processus tué par un autre (involontaire, appel- système kill())

41 41 Implémentation des processus PCB = Process Control Block Bloc d'informations caractérisant complètement un processus –état –compteur d'instruction –état des registres –paramètres de priorité et d'ordonnancement –paramètres de gestion de la mémoire –informations comptables –informations I/O (fichiers ouverts…)

42 42 Process Control Block (PCB)

43 43 Les PCB permettent d'interrompre et de relancer des processus

44 L'ordonnancement des processus Bursts of CPU usage alternate with periods of I/O wait –(a) a CPU-bound process –(b) an I/O-bound process

45 45 Objectifs de lordonnancement Beau problème multicritère! Il n y a pas quune politique dordonnancement mais des politiques paramétrées Souvent, on choisit une politique, que lon adapte (tuning) à la situation concrète nombre et type de processus, priorités, contraintes,...

46 46 Algorithmes d'ordonnancement Premier arrivé, premier servi (FCFS) Plus court d'abord (SJF) Avec priorité Carrousel (Round Robin) Avec files multiples

47 47 Lordonnancement le plus simple First Come First Served Simple Souvent frustrant (attente pour les jobs courts) Job CPU use temps d'attente moyen = t=02430

48 48 Ordonnancement Shortest-Job-First (SJF) Associe à chaque processus une estimation n+1 de la durée de la prochaine utilisation CPU (CPU burst). Choisit le processus avec le plus petit n+1 Difficulté: l'estimation n+1 SJF est optimal : il donne le temps moyen d'attente minimal pour un ensemble de processus donnés (où l'on connaît les temps successifs d'exécution!)

49 49 SJF non préemptif ou préemptif 2 schémas possibles –nonpréemptif –préemptif: réquisitionner le CPU si un processus nouveau a une estimation n+1 plus petite que le temps estimé restant du processus en cours. Ce schéma est connu sous le nom de Shortest-Remaining-Time-First (SRTF).

50 50 Ordonnancement par priorité Une priorité (nombre entier positif) est associée à chaque processus Le CPU est alloué au processus prêt avec la plus haute priorité (FIFO par priorité) (plus petit entier = plus haute priorité), de manière préemptive ou non. SJF est en fait un ordonnancement par priorité où la priorité est l'estimation du temps CPU du prochain cycle Problème Famine: un processus avec faible priorité peut attendre très longtemps Solution Priorité dynamique en fonction du temps d'attente. Au plus on attend, au plus la priorité augmente

51 51 Ordonnancement "Carrousel" Round Robin (RR) Définition d'une durée maximale d'utilisation continue du CPU par processus (quantum), par ex millisecondes. Quand un processus en exécution atteint son quantum, il est interrompu.Choix FIFO des processus prêts (Carrousel) Si n processus prêts avec un quantum q, chaque processus utilisera 1/n du CPU au plus un temps q. Aucun processus n'attend donc plus de (n-1)q unités de temps si q grand => FIFO si q petit, beaucoup de pertes

52 52 Ordonnancement avec files multiples Le pool des processus prêts est partitionné en différentes files suivant le type de processus ou ses priorités Chaque file peut avoir son propre algorithme d'ordonnancement –file de processus utilisateurs interactifs – RR –file de processus système – FCFS –file de processus batch - Par priorité Un ordonnancement doit être effectué entre les files.

53 53 Ordonnancement avec files multiples (2) Priorités de files: d'abord les processus systèmes, ensuite les processus interactifs, enfin les batchs. Si priorité fixe, danger de famine. Réserver des quotas d'utilisation CPU par files: maximum 20% pour la file système, 50% pour l'interactive, 30% pour la batch (éventuellement quota dynamique suivant le moment de la journée).

54 54 Ordonnancement avec files multiples (3)

55 55 Ordonnancement avec files multiples et feedback Possibilité de transition d'un processus d'une file à une autre en fonction de son temps d'attente De nombreux paramètres sont à considérer: –nombre de files –ordonnanceur pour chaque file –algorithme de rehaussement de priorité –algorithme d'abaissement de priorité –algorithme de choix de file de départ

56 56 Ordonnancement temps-réel Garantie d'exécution de certains processus en des temps déterminés. Cela nécessite de l'ordonnanceur: la préemption possible (réquisition du CPU) la gestion des priorités

57 Threads Dans la plupart des systèmes dexploitation, chaque processus a un espace dadresse et un seul chemin dexécution. Cependant, on trouve des situations dans lesquelles il est souvent souhaitable davoir plusieurs chemins dexécution partageant le même espace dadressage et fonctionnant en quasi-parallèle comme si cétaient des processus distincts. Plusieurs systèmes dexploitation nouveaux proposent un tel mécanisme à travers des threads. Un thread est une unité de base dutilisation de lUC. Chaque thread sexécute séquentiellement, possède son propre compteur dinstructions, ses registres et sa propre pile. Les threads partagent lUC de la même façon que les processus: lun dentre eux est exécuté, puis cest le tour dun autre.

58 58 Chapitre 3 Communication entre processus 3.1. Mécanismes 3.2. Synchronisation 3.3. Problèmes classiques

59 Mécanismes Signaux Un signal est la notification à un processus de l'occurrence d'un événement. Il existe différents signaux, chacun destiné à un type d'événement particulier. Les signaux peuvent être vus comme des interruptions logicielles effectuées sur les processus. Les signaux sont asynchrones, cest-à-dire que le processus auquel un signal est délivré ne peut pas déterminer à l'avance le moment où il recevra le signal. Les processus ne peuvent pas échanger des données par ce mécanisme.

60 60 Tubes Un tube est un canal de communication directe entre 2 processus. Il transporte un flot d'octet. L'ordre des caractères en entrée est conservé en sortie (premier entré, premier sorti). Un tube est de taille limitée (souvent 4096 caractères). Pour lire et écrire dans un tube, le système dexploitation fournit des appels système read, write aux processus. Le système assure donc la synchronisation de l'ensemble dans le sens où: - il bloque le processus lecteur du tube lorsque le tube est vide en attendant qu'il se remplisse; - il bloque (éventuellement) le processus écrivain lorsque le tube est plein (si le lecteur est plus lent que l'écrivain et que le volume des résultats écrits est important).

61 61 Mémoire partagée Le concept de mémoire partagée permet à plusieurs processus d'accéder à un même segment de mémoire. Aucun transfert entre processus n'est nécessaire, les données sont simplement placées à un endroit accessible par les différents processus. C'est le moyen le plus rapide pour échanger des données entre processus mais cette façon de communiquer pose certains problèmes de cohérence dinformations et de coordination.

62 62 Files de messages Une file de messages est un mécanisme de communication sapparentant au concept de boîte aux lettres qui permet la communication indirecte entre différents processus. Avec ce mécanisme, les messages sont envoyés et reçus à la file de messages comme dans une boîte aux lettres. Un processus peut communiquer avec dautres à travers plusieurs files de messages différents. Deux processus ne peuvent communiquer que sils partagent une file de messages. Chaque file de message a une identification unique et les primitives send et receive. Avec la file de messages, les processus peuvent échanger des données structurées.

63 63 Les sockets Les sockets sont des points de connexion pour une communication. Une socket en utilisation possède généralement une adresse associée par laquelle un processus pourra émettre ou recevoir de linformation. En première approximation, les modèles de communication qui sont accessibles à travers les sockets sont tout à fait analogues à deux outils de la vie courante: le courrier et le téléphone. Le mécanisme de socket peut être utilisé par des processus qui ne sont pas en relation. De plus, il fournit une interface générale pour les fonctions de gestion de réseaux.

64 La synchronisation entre processus Lexclusion mutuelle de ressources non partageables La synchronisation car la vitesse relative de deux processus est imprévisible puisqu'elle dépend de la fréquence des interruptions de chaque processus, ainsi que de la durée de travail et de la fréquence dattribution des processeurs aux processus. On peut dire que les processus se déroulent de manière asynchrone les uns par rapport aux autres. Toutefois, pour assurer une certaine coopération, les processus doivent synchroniser leurs activités à certains moments du traitement lorsquun processus ne peut pas poursuivre avant quun autre processus nait achevé son traitement. Le système dexploitation doit donc fournir un mécanisme de synchronisation.

65 65 Section critique Problème d'accès concurrents (race condition) Soient deux processus comptables P 1 et P 2 qui partagent une même zone mémoire. Chaque processus veut retirer un montant dun compte: if (balance - retrait >=0) balance := balance - retrait; else error( "on ne peut plus retirer !" ); Supposez que la balance soit égale à 800, le processus P 1 veut retirer 500 et le processus P

66 66 Un bon moyen déviter le conflit d'accès doit satisfaire les quatre conditions suivantes: -Deux processus ne peuvent être en même temps en section critique. -Aucune hypothèse ne doit être faire sur les vitesses relatives des processus et sur le nombre de processus. -Aucun processus suspendu en dehors dune section critique ne doit bloquer les autres processus. -Aucun processus ne doit attendre trop longtemps avant dentrer en section critique.

67 67 Solution " busy waiting" Solutions logicielles Les variables de verrouillage Les processus partagent une variable (verrou), unique, qui a initialement la valeur 0. Un processus doit tester ce verrou avant dentrer en section critique. Si le verrou vaut 0, le processus le met à 1 et entre dans sa section critique. Si le verrou est déjà à 1, le processus attend quil repasse à 0. Lalternance Cest une approche applicable à seulement deux processus à la fois. On laisse aux processus partager une variable partagée, tour. Ne fonctionne que si l'alternance est parfaite.

68 68 Solutions matérielles Le masquage des interruptions Laisser aux processus masquer les interruptions avant dentrer dans la section critique et les restaurer à la fin de la section. (Linterruption horloge ne peut pas avoir lieu lorsque les interruptions sont masquées). Le processeur ne pourra donc plus être alloué à un autre processus.

69 69 Linstruction TSL Solution qui requiert un peu daide de la part du matériel. Plusieurs ordinateurs fournissent une instruction spéciale qui permet de tester et de modifier le contenu dun mot dune manière atomique. while (TRUE) { while (Test-and-Setlock(lock)); section-critique(); lock := FALSE; section-noncritique(); }

70 70 Solutions « SLEEP and WAKEUP » Pour éviter linconvénient du busy waiting, on peut utiliser quelques primitives de communication interprocessus qui se bloquent au lieu de prendre du temps processeur lorsquelles ne sont pas autorisées à entrer en section critique. SLEEP est un appel système qui suspend lappelant en attendant quun autre processus le réveille. Lappel WAKEUP a un seul paramètre: le processus à réveiller.

71 71 Sémaphores Introduit par E. J. Dijkstra en 1965, un sémaphore s est une variable qui a les propriétés suivantes: -Une valeur e(s) qui est un entier positif. -Une file d'attente f(s) qui contient des processus bloqués sur le sémaphore s Sur un sémaphore, seules deux opérations sont autorisées: -Down (s): décrémente la valeur du sémaphore. Si la valeur du sémaphore s est >= à 0, le processus poursuit son exécution normalement, sinon, le processus est mis en attente. -U p (s) : incrémente la valeur du sémaphore s. Si un ou plusieurs processus étaient en attente sur le sémaphore s, bloqués par une opération Down, lun dentre eux sera choisi par le système pour terminer son Down.

72 72 Down (s): e(s) := e(s) - 1; if e(s) < 0 { état (P):= bloqué; entrer (P, f(s)); } Up (s): e(s) := e(s) + 1; if e(s) 0 { sortir (Q, f(s)); // Q est un processus bloqué sur s; état(Q) := prêt; entrer(Q, file dattente de processus prêts); }

73 73 Sémaphores d'Exclusion Mutuelle Le concept de sémaphore permet de résoudre le problème de la section critique pour n processus. Les n processus partagent un sémaphore s, e(s) est initialisé à 1. Tous les processus doivent suivre la même règle suivante: while (TRUE) { Down (s) section-critique(); Up (s) section-noncritique(); }

74 74 Sémaphores de Synchronisation Dans une situation où un processus doit en attendre un autre pour continuer (ou commencer) son exécution. Les deux processus partagent un sémaphore s, e(s) est initialisée à 0. Tous les deux doivent suivre la règle suivante: Processus 1 while (TRUE) { travail1 (); Up (s); // réveille processus 2 } Processus 2 while (TRUE) { Down (s); // attente processus 1 travail2 (); }

75 75 Moniteurs Cest au compilateur de réaliser lexclusion mutuelle au niveau des entrées dans le moniteur. Echange de messages Un processus contrôle la ressource et octroie la ressource en fonction des messages reçus.

76 Problèmes classiques de synchronisation Problème du producteur – consommateur BufferSize := 3; // nbre demplacements dans le buffer Semaphore mutex := 1; //Contrôle accès section critique Semaphore vide := BufferSize; // nbre demplacements libres Semaphore plein := 0; // nbre demplacements occupés

77 77 Producer() { int objet; while (TRUE) { produire_objet (&objet); // produire lobjet suivant down (&vide); // décrémente nbre demplacements libres down (&mutex); // entrer en section critique mettre_objet (objet); // mettre l'objet dans le buffer up (&mutex); // sortir de la section critique up (&plein); // incrémente nbre demplacements occupés }

78 78 Consumer() { int objet; while (TRUE) { down (&plein); // décrémente nbre demplacements occupés down (&mutex); // entrer en section critique retirer_objet (&objet); // retirer lobjet du buffer up (&mutex); // sortir de la section critique up (&vide); // incrémente nbre demplacements libres utiliser_objet (objet); // utiliser lobjet }

79 79 Gestion des processus: gare aux deadlocks! (a) Un deadlock potentiel (b) Un deadlock réel

80 80 Consumer() { int objet; while (TRUE) { down (&mutex); // entrer en section critique down (&plein); // décrémente nbre demplacements occupés retirer_objet (&objet); // retirer lobjet du buffer up (&mutex); // sortir de la section critique up (&vide); // incrémente nbre demplacements libres utiliser_objet (objet); // utiliser lobjet }

81 81 Le modèle des lecteurs et des rédacteurs semaphore mutex := 1; // contrôler accès à rc semaphore bd := 1; // contrôler accès à base de données int rc; // nombre de processus lecteurs Rédacteur() { while (TRUE) { creer_donnees (); // section non critique down (&bd); // obtenir laccès exclusif à bd ecrire_donnees (); // mettre à jour les données up (&bd); // libérer laccès à rc }

82 82 Lecteur () { while (TRUE) { down (&mutex); // obtenir laccès exclusif à rc rc := rc + 1; // un lecteur de plus if (rc = 1) // si cest le premier lecteur down (&bd); // empêcher un rédacteur daccéder à bd up (&mutex); // libérer laccès à rc lire_base_de_donnees (); // lire les données down (&mutex); // obtenir laccès exclusif à rc rc := rc - 1; // un lecteur de moins if (rc = 0) // si cest le dernier lecteur up (&bd); // permettre au rédacteur daccéder à bd up (&mutex); // libérer laccès à rc utiliser_donnees_lues (); // section non critique }

83 Interblocage (deadlock) Un ensemble de processus est en interblocage si chaque processus attend un événement que seul un processus de lensemble peut engendrer. Exemple: problème du dîner des philosophes P1 P5 P4 P2 P3

84 84 Il faut réunir quatre conditions pour provoquer un interblocage: Lexclusion mutuelle: chaque ressource est, soit attribuée à un seul processus, soit disponible. La détention et lattente: les processus qui détiennent des ressources précédemment obtenues peuvent en demander de nouvelles. Pas de réquisition: les ressources obtenues par un processus ne peuvent lui être retirées contre son gré. Elles doivent être explicitement libérées par le processus qui les détient. Lattente circulaire: il doit y avoir un cycle dau moins deux processus, chacun attendant une ressource détenue par un autre processus du cycle.

85 85 Traitement des interblocages Prévenir Eviter Détecter Corriger

86 86 Chapitre 4 Gestion de la mémoire La mémoire est un tableau à une dimension de mots machines (ou doctets) chacun ayant une adresse propre. Les échanges avec lextérieur se font en général par des lectures ou des écritures à des adresses spécifiques. La mémoire est le point central dans un système dexploitation; cest à travers elle que lUC communique avec lextérieur.

87 87 correspondance entre adresses logiques et adresses physiques: comment convertir les adresses symboliques dans un programme en adresses réelles dans la mémoire principale? gestion de la mémoire physique: comment étendre la mémoire disponible pour pouvoir maintenir plusieurs processus? partage de linformation: comment permettre aux différents processus de partager des informations en mémoire? protection: comment éviter au processus de porter atteinte aux zones de mémoire allouées aux autres processus?

88 88 Espace adresse logique versus espace adresse physique Adresse logique - produite par lunité centrale de traitement; également désignée sous le nom d'adresse virtuelle. Adresse physique - adresse vue par lunité de mémoire. - La conversion au moment de lexécution des adresses logiques en adresses physiques est effectuée par la memory-management unit (MMU) qui est un dispositif matériel. Les adresses logiques et physiques sont les mêmes dans le schéma de liaison dadresses au moment de la compilation et du chargement; les adresses logiques et physiques diffèrent dans le schéma de liaison dadresses au moment de lexécution.

89 89 Allocation contigüe Systèmes monoprogrammés: La mémoire est partagée entre le système dexploitation et un processus unique. A un instant donné, une portion de la mémoire contient le système dexploitation, le reste contient un seul processus. Ce processus peut parfois utiliser toute la mémoire disponible. Systèmes multiprogrammés avec des partitions fixes: La mémoire est divisée en n partitions ayant une taille fixe (des partitions différentes peuvent avoir des tailles égales ou inégales). Utilisation des registres de base et limite. Systèmes multiprogrammés avec partitions variables: On alloue des partitions variables aux processus et on choisit l'emplacement dynamiquement lors de lentrée en mémoire du processus.

90 90 Systèmes multiprogrammés avec "swapping": Un processus qui est en attente durant une période relativement longue sera transféré en mémoire auxiliaire (swap out) pour libérer la mémoire principale pour d'autres processus. Quand son attente est terminée, il peut être ramené en mémoire principale (swap in) pour continuer son exécution.

91 91 Allocation non contigüe Pagination: La mémoire physique est découpée en blocs de taille fixe appelés cadres de pages. La mémoire logique est également subdivisée en blocs de la même taille appelés pages. Quand on doit exécuter un processus, on charge ses pages dans les cadres de pages de mémoire disponibles. Un processus de taille N pages requiert N cadres de pages libres. Memory Management Unit pour la pagination: Pour définir la conversion dadresse, le support matériel pour la pagination est une table de pages. La table de pages contient ladresse de base de chaque page dans la mémoire physique.

92 92 Mémoire virtuelle La mémoire virtuelle est une technique autorisant l'exécution de processus pouvant ne pas être complètement en mémoire. La mémoire virtuelle schématise la mémoire comme un tableau de stockage uniforme extrêmement grand, séparant la mémoire logique telle que la voit lutilisateur de la mémoire physique. La mémoire virtuelle est communément implémentée avec la pagination à la demande équivalente à la pagination avec swapping.

93 93

94 94 Chapitre 5 Protection et sécurité 5.1 Objectifs de la protection 5.2 Domaines de protection 5.3 Matrice d'accès 5.4 Implémentation de la matrice de droits 5.5 Sécurité

95 Objectifs de la protection éviter la violation pernicieuse intentionnelle dune restriction daccès par un utilisateur, assurer que chaque composante dun système emploie les ressources du système seulement dans une forme cohérente avec les politiques instaurées pour lutilisation de ces ressources, améliorer la fiabilité dun système en détectant des erreurs latentes dans les interfaces entre les sous-systèmes composants.

96 Domaines de protection Tous les processus fonctionnent dans un certain domaine de protection. Le domaine de protection indique à quelles ressources le processus peut accéder et quelles exécutions particulières le processus peut exécuter. La capacité d'exécuter une certaine exécution sur une certaine ressource s'appelle un droit d'accès. Un domaine est une collection de droits d'accès. On définit un domaine par une paire ordonnée. Les domaines peuvent partager les droits daccès. Lassociation entre un processus et un domaine peut être statique ou dynamique. Le processus peut devoir changer dynamiquement des droits d'accès pour des procédures du système dexploitation.

97 97 Un domaine peut être associé à: Un utilisateur: tous les processus d'un utilisateur sont dans le même domaine. On commute de domaine quand on change dutilisateur. Un processus: les différents processus du même utilisateur peuvent être dans différents domaines. On commute de domaine quand un processus envoie un message à un autre et attend ensuite une réponse. Une procédure: les différentes procédures peuvent appartenir à différents domaines. On commute de domaine quand on effectue un appel à une procédure.

98 Matrice d'accès Le modèle de protection peut être envisagé de façon abstraite comme une matrice, appelée matrice de droits. Les lignes de la matrice de droits représentent les domaines, et les colonnes les objets. Chaque entrée dans la matrice consiste en un ensemble de droits daccès. L'entrée droit (i, j) définit lensemble des opérations quun processus, sexécutant dans le domaine D i, peut appeler sur un objet O j.

99 Implémentation de la matrice de droits Limplémentation la plus simple de la matrice des droits est une table globale consistant en un ensemble de triplets ordonnés. A chaque fois que lon exécute une opération M sur un objet O j dans le domaine D i, on cherche dans la table globale un triplet où M R k. Si on trouve ce triplet, on permet à lopération de continuer. Sinon, il se produit une situation derreur. Cette implémentation possède plusieurs désavantages: la table est généralement grande et elle ne peut donc pas être maintenue en mémoire principale, il est difficile de profiter de groupements spéciaux dobjets ou de domaines.

100 100 Solutions: Liste daccès aux objets Liste de capacités des domaines Un mécanisme de clés et verrous

101 Sécurité erreurs de programmation (d'un utilisateur, ou du système lui- même) qui se propagent au système (du fait de contrôles insuffisants ou mal effectués) mauvais fonctionnement du matériel opérateur, concepteur ou réalisateur malveillant ou peu scrupuleux (quand il s'agit d'informations financières!).

102 102 Authentification Les mots de passe peuvent être générés par le système ou sélectionnés par les utilisateurs. Le problème commun à cet approche consiste à garder secret le mot de passe. Menaces contre les programmes Le cheval de Troie Porte de contournement

103 103 Menaces contre les systèmes Ver Virus Surveillance de menaces Le système peut contrôler des formes suspectes dactivité pour détecter une violation de sécurité. Une liste de contrôle enregistre lheure, lutilisateur et tous les types d'accès à un objet.


Télécharger ppt "1 Concepts de base des O.S. Chapitre 1 1.1. Qu'est-ce un O.S. ? 1.2. Histoire des O.S. 1.3. La jungle des O.S. 1.4. Composantes des O.S. 1.5. Les appels-systèmes."

Présentations similaires


Annonces Google