Système d’Exploitation (I) Chapitre premier Chapitre Premier GENERALITES rappel de cours 1- INTRODUCTION Dans les premiers âges de l’informatique, les programmeurs chargeaient directement leurs programmes en mémoire via des pupitres dédiés. Ensuite, manuellement ils indiquèrent une adresse début et ordonnèrent le processeur de s’y brancher. Actuellement, les systèmes modernes offrent deux services fondamentaux aux utilisateurs. Premièrement, ils permettent un usage facile du hardware, en définissant et créant une machine virtuelle qui diffère de marque, uniquement, de la machine réelle. Pour cette raison, le succès des ordinateurs des deux dernières décades est dû aux systèmes d’exploitation qui ont su achever une couverture de l’obscurité hardware. En plus, les programmeurs n’ont pas besoin de réécrire leurs applications lorsqu’ils changent de machines. Deuxièmement, ils gèrent les ressources, par partage, entre plusieurs utilisateurs. Une des plus importantes ressources est le processeur. Un système multi-tâche divise la tâche, à exécuter, entre plusieurs processus et procure pour chaque processus les ressources nécessaires pour son exécution, en particulier, la mémoire et au moins un thread d’exécution. Le système exécute un thread pour une très courte durée et passe ensuite au suivant permettant une équitable exécution des différents threads. Même dans un système mono-utilisateur, le multi-tâche est extrêmement utile puisqu’il permet l‘exécution d’au moins deux tâches à la fois. Par exemple, un utilisateur peut éditer un texte en même temps où il imprime ou compile un second. Chaque processus se voit servir et, à l’œil de l’utilisateur, les programmes semblent s’exécuter simultanément. En plus du partage du processeur, le système gère la mémoire et régularise l’accès aux fichiers et organes d’entrée/sortie. Les systèmes se distinguent les uns des autres selon la façon dont ils présentent leurs machines virtuelles et leur gestion des ressources. 1 Système d’Exploitation (I) Chapitre premier 2- DEFINITION DES SYSTEMES D’EXPLOITATION Les programmes qui s‘exécutent sur un ordinateur sont de deux types : Logiciel de base Logiciel d’application Le système d’exploitation, constituant important du logiciel de base, est considéré comme un programme software offrant un environnement de programmation dans lequel d’autres programmes peuvent s’exécuter et prendre avantage du processeur et de ses organes d’entrée/sortie. 2.1 DECOMPOSITION HIERARCHIQUE 2.1.1 Machine NUE : Une machine nue est définie par : Un répertoire de base = l’ensemble des instructions machines ou primitives Une mémoire = les registres du processeur et la mémoire principale Un mécanisme d’exécution = le cycle ou la méthode d’exécution d’une instruction (lecture, décodage et exécution de l’instruction) 2.1.2 Machine abstraite Tout langage définit une machine abstraite capable de l’interpréter. Elle est dite abstraite parce qu’elle n’a pas de représentation physique. Par sa définition générale, le langage permet de définir : Des objets et les mécanismes permettant de les créer. Des actions (primitives) permettant de manipuler ces objets. Des règles de composition de ces actions. De là on peut définir une machine abstraite comme suit : Un répertoire de base = l’ensemble des primitives du langage Une mémoire = la représentation des objets par ce langage Un mécanisme d’exécution = l’ensemble des règles d’interprétation du langage 2.1.3 Décomposition hiérarchique Si on appelle M la machine nue, on peut définir une machine M0 en associant un langage à M tel que le problème deviendra plus simple à résoudre. La spécification de M0 se réduit à son interface, donc aux objets et règles offerts par M0. Ainsi, une machine Mi ne dépend que de Mj et non des détails de sa réalisation interne. La relation entre machine est dite relation de dépendance Ainsi, la structure d’un système peut être décrite par un graphe. Cette décomposition hiérarchique en niveau présente plusieurs avantages qui résultent de l’indépendance introduite par l’abstraction : Indépendance de conception : chaque machine est décrite par son interface. 2 Système d’Exploitation (I) Chapitre premier Indépendance de modification : la modification d’une machine n’implique aucune modification des machines qui l’utilisent tant que l’interface reste inchangée. Indépendance de mise au point : une fois son interface spécifiée, une machine peut être mise au point indépendamment des machines qui l’utilisent et inversement. D’où la notion de portabilité. Un système constitue, donc, une interface entre l’utilisateur et la machine qui se définit par un langage ou un moyen de communication. Toute information nécessaire à la bonne gestion du système doit être contenue dans cette interface. Une tâche exprimée très simplement selon les avantages offerts par la machine abstraite s’avère plus complexe à un niveau d’abstraction inférieur. Donc une opération de haut niveau se décompose en plusieurs opérations de bas niveau. D’autre part, plusieurs machines virtuelles (abstraites) peuvent être définies sur une même machine pour des utilisateurs différents. De là, il apparaît la décomposition suivante figure1.2 : USER 1 USER 2 USER 3 USER n .. .. .. Logiciel d’application Compilateur Assembleur Editeur de texte. . . Base de données Système d’exploitation Logiciel de Base Machine Physique Figure1.2 : Situation abstraite d’un système d’exploitation Un utilisateur est caractérisé par un logiciel d’application qui constitue son environnement de travail. Tout utilisateur a son propre environnement. Une partie commune à tous les utilisateurs appelée logiciel de base. Tout logiciel d’application dépend de cette partie. Les frontières entre ces couches ne sont pas définitives, il arrive parfois qu’un logiciel d’application puisse être intégré au logiciel de base. Ce qui est la tâche du manager. Une fonction du logiciel de base peut être câblée par besoin d’économie. Ce qui est la tâche du concepteur. A l’intérieur du logiciel de base, nous distinguons les outils et services (compilateurs, éditeurs, utilitaires…) ainsi que le système d’exploitation lui-même. 3 Système d’Exploitation (I) Chapitre premier 2.2 FONCTIONS D’UN SYSTEME D’EXPLOITATION Cette partie du logiciel de base, en contact direct avec la machine, remplit deux fonctions essentielles : 2.2.1 Gestion des resources Gestion des Ressources physiques Processeurs centraux. Mémoire principale. Mémoire secondaire. Organes d’E/S. Gestion des Ressources logiques Partage et échange d’information entre utilisateurs. Protection mutuelle des utilisateurs. Divers Comptabilité et facturation. Statistiques et mesure des performances. 2.2.2 Machine virtuelle Gestion de l’information Structuration. Conservation. Désignation. Transfert. Exécution Exécution de programmes en séquence (Batch). Exécution de programmes en parallèle. Composition de programmes (compilation séparée). Divers Mise au point. Traitement des défaillances. Mesure du temps. Etc.… 3. HISTORIQUE DES SYSTEMES D’EXPLOITATION Pour comprendre encore mieux les systèmes d’exploitation et ce qu’ils font, il faudrait voir comment ils se sont développés au cours de ces dernières années. En suivant cette évolution, on pourra identifier les éléments communs à ces systèmes et comprendre leur développement. Comme les systèmes d’exploitation dépendent étroitement de l’architecture des ordinateurs sur lesquels ils fonctionnent, on passera en revue les générations d’ordinateurs pour en examiner les différents systèmes d’exploitation. 4 Système d’Exploitation (I) Chapitre premier 3.1 PREMIERE GENERATION (1945-1955) Les machines de cette génération étaient construites au moyen de tubes électroniques. A cette époque, un seul groupe de personnes concevait, construisait, programmait, utilisait et effectuait la maintenance de la machine. La programmation se faisait intégralement en langage machine. Les systèmes d’exploitation étaient inconnus. Chaque utilisateur se réservait l’usage de la machine pour un temps fini et disposait de toutes les ressources de la machine. A l’aide d’un pupitre, il communiquait son programme écrit en binaire et lançait son exécution. Inconvénients : matériel trop cher, perte de temps, risque d’erreur et de panne Au début des années 50, il y eut l’introduction de cartes perforées et la naissance de quelques logiciels de base qui furent les outils de développements de programmes (assembleurs, compilateurs, aide à la mise au point) et des sous programmes d’E/S. Ce modèle s’appelle la porte ouverte open Shop Inconvénients : peu économique par rapport au prix du matériel, mauvaise gestion du matériel. 3.2 DEUXIEME GENERATION (1955-1965) La naissance des transistors améliorait la situation où les ordinateurs devinrent suffisamment fiables pour être construits et vendus. Pour lancer un job, le programmeur écrit et tape son programme sur des cartes perforées et les remet à l’opérateur qui prépare le compilateur en question, lance l’exécution et remet les résultats de l’imprimante au programmeur qui corrige son programme et ainsi de suite. La majeure partie du temps de l’ordinateur est perdue au cours des déplacements de l’opérateur. On adopta, alors, le traitement par lots Batch Processing qui consiste à rassembler un ensemble de travaux et préparer leur exécution, d’où la naissance des moniteurs d’enchaînement qui consistaient à automatiser le passage d’un programme à un autre. Inconvénients : Les E/S étaient gérées par le CPU d’où la faiblesse du rendement. La solution à ce problème était la naissance du parallélisme entre le traitement et les E/S. Une première solution consiste à utiliser deux ordinateurs séparés, un pour le traitement et l’autre pour les E/S (IBM 1401 pour les E/S et IBM 7094 pour le traitement). Inconvénients : déplacement des bandes magnétiques coûteux en temps. La deuxième solution est l’intégration des canaux d’E/S. Un canal ou unité d’échange est un processeur capable d’exécuter des E/S de manière autonome, indépendamment du processeur central qui exécute le traitement proprement dit. Inconvénients : Le CPU et les canaux accèdent à des informations communes en mémoire centrale, et les vitesses, relatives au traitement et au transfert, deviennent 5 Système d’Exploitation (I) Chapitre premier un facteur important. Le débit du périphérique est très faible par rapport à la capacité de traitement. En voulant faire du transfert simultané, on a crée une accumulation d’information sous forme de buffers d’E/S en MC. La solution est de transporter les buffers en mémoire secondaire à grande capacité telle que le débit de transfert soit un peu plus élevé que les périphériques lents. Ces transferts sont généralement commandés par un canal. Cette forme de traitement est appelée SPOOLING figure1.3. Ce nom est acronyme pour Simultaneous Peripheral Operation On Line. Le Spooling utilise essentiellement le disque comme un buffer très grand pour lire sur les dispositifs d’entrées et mémoriser les fichiers de sortie jusqu’à ce que les dispositifs de sorties puissent les accepter. C CPPU U LECTEUR CANAL M MC C CANAL PRINTER CANAL DISQUE Figure1.3 : Le Spooling Inconvénients : le processeur reste inactif pendant la durée de l’E/S. Un travail bref arrivant pendant l’exécution d’un travail lent attend la fin de celui-ci. La solution est qu’il faut songer à un système qui accepte plusieurs programmes en mémoire centrale. 3.3 TROISIEME GENERATION (1965-1980) Cette génération est caractérisée par la naissance des circuits intégrés et la multiprogrammation. Des mémoires rapides et de grande capacité ont vu le jour et ont permis de penser au partage de celles-ci entre plusieurs utilisateurs en même temps. On dit qu’il y a multiprogrammation lorsque plusieurs programmes coexistent en mémoire et que le déroulement de l’un peut être interrompu au profit d’un autre avec reprise ultérieure du programme interrompu. 6 Système d’Exploitation (I) Chapitre premier La solution qui en résulte consiste à partitionner la mémoire. Chaque partition contient une tâche différente. Lorsqu’une tâche attend la fin d’une E/S, une autre tâche peut utiliser le CPU. Inconvénients : a- Complexité du système : partage de la mémoire et protection des programmes entre eux en mémoires centrale et secondaire. b- Partage des ressources : équilibre de la charge du CPU, mémoire centrale et des organes d’E/S. c- Protection mémoire et réentrance. La solution est donc la naissance du temps partagé. Le premier système à temps partagé est le TCSS qui fut suivi par le système MULTICS ( MULTiplexed Information and Computing Service). Cette génération est aussi caractérisée par le développement des mini-ordinateurs de la série PDP11 de la DEC et une nouvelle version de Multics baptisée UNIX (UNiplexed Information and computing service). Le principe du temps partagé consiste à allouer à chaque utilisateur une portion de temps (quantum) lui permettant de disposer de toutes les ressources dont il a besoin. Ces tranches de temps sont de quelques millisecondes (ms). Cette génération fut aussi caractérisée par le développement des systèmes temps réel qui sont une forme de systèmes d’exploitation spécialisés. Ils consistent à conduire des processus industriels par un ordinateur. L’ordinateur fait lui-même des prélèvements de données dont il a besoin (température, pression, etc.…) et agit directement sur les organes du processus industriel. Les mesures sont enregistrées périodiquement, affichées sur un tableau de bord et stockées pour des statistiques d’exploitation. L’ordinateur veille que les mesures prises soient normales et ne dépassent pas un certain seuil. Sinon, il provoque l’arrêt du processus industriel. Comme les pannes ou les défaillances sont aléatoires, le système doit rester en garde pour éviter tout accident. On dit qu’il travaille en temps réel. 3.4. QUATRIEME GENERATION (1980 – 1990) Cette génération est caractérisée par les ordinateurs personnels, les réseaux et les systèmes répartis. Ordinateurs Personnels Les PCs sont apparus dans les années 1970 grâce à l’électronique LSI (Large Scale Integration) et VLSI. Leurs systèmes d’exploitation n’étaient ni multi-utilisateurs ni multitâches. Depuis, ces systèmes ont opté pour la commodité et la rapidité d’où la naissance de CPM, MSDOS, OS/2, Xenix qui sont simples d’utilisation et ont commencé à intégrer beaucoup de concepts d’Unix. Microsoft a étendu MSDOS pour inclure un système de fenêtrage et IBM a intégré le multitâche et le système de fenêtrage a OS/2. En même temps on a développé également du matériel plus puissant, plus rapide et plus sophistiqué. Les stations de travail comme les stations Sun, Appolo d’HP ou la RS/6000 d’IBM sont des résultats d’un tel effort. Actuellement, beaucoup d’universités et de sociétés 7 Système d’Exploitation (I) Chapitre premier préfèrent utiliser un grand nombre de stations connectées en réseaux locaux. La ligne qui sépare la station du PC tend à s’effacer dans l’avenir. Les systèmes distribués De tels systèmes possèdent plus d’un processeur en étroite communication partageant le bus de l’ordinateur, l’horloge et quelquefois la mémoire et les périphériques. Il existe plusieurs raisons pour créer de tels systèmes. En augmentant le nombre de processeurs, on espère améliorer la capacité de traitement, c’est à dire, effectuer plus de travail en moins de temps. Un autre avantage aussi considérable est la fiabilité. Si l’on peut distribuer correctement les fonctions parmi les différents processeurs, une panne d’un processeur n’arrêtera pas le système mais peut être le ralentira seulement. Les autres processeurs auront à effectuer les tâches du processeur en panne jusqu’à son rétablissement. Ce mode de fonctionnement s’appelle le mode dégradé. Les systèmes multiprocesseurs actuels les plus courants utilisent le modèle de traitement symétrique où chaque processeur exécute une copie du système d’exploitation. Au besoin, ces copies communiquent entre elles. D’autres utilisent le traitement asymétrique où à chaque processeur est assignée une tâche spécifique. Un processeur maître contrôle le système, les autres attendent que le maître donne des instructions. Le processeur maître alloue par scheduling du travail aux processeurs esclaves. Dans de tels systèmes, les utilisateurs n’ont pas à connaître où se trouvent leurs fichiers ou leurs programmes. Les systèmes distribués permettent l’exécution simultanée et distribuée de plusieurs programmes sur plusieurs processeurs. Le scheduling est complexe et doit optimiser le parallélisme. Il doit également se dérouler en cas d’informations incomplètes ou fausses à cause des délais de communication. les systèmes répartis Les processeurs ne partagent pas de mémoire ni d’horloge. Au lieu de cela, chaque processeur possède sa propre mémoire locale. Les processeurs communiquent à travers diverses lignes de communication. Dans un système réparti, les processeurs peuvent varier en taille et en fonction. Ils peuvent inclure des PCs, des stations, des mini-ordinateurs et de grands systèmes à usage général. Ces processeurs portent différentes appellations sites, nœuds, ordinateurs, etc. Dans un tel système, les utilisateurs connaissent l’existence des différents sites, peuvent se connecter sur une machine distante et transférer des fichiers d’une machine à une autre. Chaque ordinateur fonctionne avec son propre système et au compte d’un utilisateur particulier. Les raisons pour construire des systèmes répartis sont le partage des ressources, l’accélération du calcul, la fiabilité et la communication. 4. STRUCTURE DES SYSTEMES D’EXPLOITATION Un système doit être conçu soigneusement pour fonctionner correctement et être modifié facilement. 4.1 SYSTEME MONOLITHIQUE Le système est, dans ce cas, un ensemble de procédures pouvant s’appeler entre elles. Chaque procédure doit avoir une interface bien définie. Le système est considéré comme une seule 8 Système d’Exploitation (I) Chapitre premier pièce, lorsqu’il prend le contrôle il masque toutes les caractéristiques matérielles en particulier les interruptions. Avantage : Cette structure est relativement simple à concevoir et à implémenter. Inconvénient : n’importe quelle interruption invoque le système et masque toutes les autres. Ce qui tend à dégrader le temps de réponse, spécialement quand il y a plusieurs processus. MSDOS en est un exemple écrit pour fournir le plus de fonctionnalité possible dans le moindre espace, à cause du matériel sur lequel il allait tourner. Il n’a donc pas été soigneusement divisé en modules. La figure1.4 montre sa structure courante. Même s’il possède une structure quelconque, ses interfaces et ses niveaux de fonctionnalités ne sont pas bien séparés. Les programmes d’application sont capables d’accéder aux routines D’E/S de base (BIOS) afin d’écrire directement sur l’écran ou sur l’unité de disque par exemple. Un tel risque rend MSDOS vulnérable devant les programmes erronés, ce qui se caractérise par des blocages complets assez souvent du système. PROGRAMMES D’APPLICATION PROGRAMMES SYSTEMES RESIDENTS DRIVERS MSDOS DRIVERS BIOS Figure1.4 : La structure de MSDOS 4.2 SYSTEME EN COUCHES Dans l’approche en couches, on dit également noyau, le système est réparti en un noyau et un nombre de processus systèmes s’exécutant simultanément. Chaque couche représente une machine virtuelle cachant tous les détails de la machine de niveau inférieur. Avantage : est la modularité. Les couches sont sélectionnées de telle sorte que chacune utilise seulement les fonctions et services des couches inférieures. Cette approche simplifie la mise au point du système. Inconvénient : pour exécuter une opération d’E/S, un programme utilisateur doit exécuter un appel système à la couche gestion des E/S qui appelle, elle-même, la couche gestion de la mémoire puis la couche scheduling du CPU et enfin le matériel. Dans chaque couche, les paramètres d’appel sont sujets de changement. Chaque couche ajoute une surcharge à l’appel, ce qui rend l’appel plus lent que dans un système qui n’est pas en couches. 9 Système d’Exploitation (I) Chapitre premier OS/2, descendant direct de MSDOS, a été conçu en couches comme le montre la figure1.5 : APPLICATIO N APPLICATIO N APPLICATIO N USER MODE KERNEL MODE FILE SYSTEM MEMORY AND I/O DEVICE MANAGEMENT PROCESSOR SCHEDULING Figure1.5HARDWARE : La structure de OS/2 4.3 MACHINES VIRTUELLES L’approche en couches a abouti au concept de la machine virtuelle. La figure1.6 montre une telle structure. Le noyau se charge de la multiprogrammation et fournit plusieurs machines virtuelles. Ces machines sont des modèles logiques de la machine réelle. Chaque machine virtuelle exécute n’importe quel système d’exploitation. Il serait préférable d’utiliser des systèmes mono-utilisateurs tels que MSDOS. IBM, le pionnier de ce domaine, appelle ces machines des CMS (Conversational Monitor System). L’avantage est que les diverses ressources du système sont totalement protégées. Chaque machine virtuelle est entièrement isolée des autres, il n’existe pas de problème de sécurité. Il n’y a aucun partage direct des ressources. Il est possible de définir un réseau de machines virtuelles communiquant entre elles. USER 1 USER 2 USER 3 USER 4 CMS MACHINE VIRTUELLE NOYAU LOCAL CMS MACHINE VIRTUELLE NOYAU LOCAL CMS MACHINE VIRTUELLE NOYAU LOCAL CMS MACHINE VIRTUELLE NOYAU LOCAL Noyau MULTIPROGRAMMATION GESTION DES MESSAGES 10 Système d’Exploitation (I) Chapitre premier MATERIEL Figure1.6 : Système en machines virtuelles 4.4 CLIENT/SERVEUR L’idée est de décomposer le système en un ensemble de processus clients et serveurs, chacun des processus serveurs implémente un ensemble de services, par exemple les services de gestion de la mémoire, des processus ou du scheduling. Chaque serveur tourne en mode utilisateur, exécutant une boucle qui vérifie toujours s’il y a des requêtes de services des clients. Le client qui peut être un autre composant (serveur) du système d’exploitation ou une application utilisateur exprime ses requêtes de services par envoi de messages aux serveurs. Un noyau tournant en mode kernel (noyau) gère la communication et le transfert des messages entre les différents éléments (clients et serveurs). Chaque processus peut s ‘exécuter sur un processeur distinct, ce qui rend le système adaptable à une structure distribuée. Ce modèle se prête bien aux réseaux et systèmes répartis. Processus client Processus client Serveur Processus Serveur Mémoire Serveur Fichiers Serveur Terminaux NOYAU MATERIEL Figure1.7 : Le modèle client/serveur 4.5 MODELE HYBRIDE Ce modèle est une combinaison des modèles précédents. Il se base surtout sur le modèle en couches et sur le modèle client/serveur. Le système se décompose généralement en une couche d’abstraction du hardware ce qui constitue la machine virtuelle, d’un noyau et d’un exécutif. Le noyau implémente les fonctions de bas niveau tout comme le noyau du modèle client/serveur. Il comprend le scheduling des threads, la gestion des interruptions et la synchronisation multiprocesseur. Il comprend également un ensemble de routines et d’objets de base nécessaire à l’exécutif. 11 Système d’Exploitation (I) POSIX Subsystem Chapitre premier OS/2 Subsystem Win32 Subsystem Security Subsystem Win32 Client SYSTEM CALLS Object Process Memory Security I/O Manager Manager Manager Manager System KERNEL HARDWARE ABSTRACTION LAYER HARDWARE Figure1.8 : Windows NT, un modèle hybride 4.6 APPELS SYSTEMES D’après les structures des systèmes précédentes les appels système peuvent être divisés en plusieurs catégories selon les modules ou serveurs des couches inférieures. Grossièrement, ils sont représentés en cinq catégories. Processus : Arrêter (end) , stopper un processus (abort) Charger (load), exécuter un processus(execute) Créer (fork) ,terminer(exit) Obtenir(get, set process attib), définir des attributs Attendre un certain temps(wait time) Attendre , signaler des événements( wait, signal ) Allouer, libérer la mémoire(alloc, dealloc) Fichiers : 12 Système d’Exploitation (I) Chapitre premier créer , supprimer (create, delete) ouvrir , fermer (open, close) lire, écrire, repositionner (read, write, reposition) obtenir, définir des attributs(get ,set file attributes) I/O : demander, libérer des périphériques(request, release) obtenir, définir des attributs de périphériques (get, set) attacher, détacher attach, detach) Information : date et heure (date, time) données système (get, set) processus, fichiers, périphériques (get,set) Communication : créer, supprimer des connexions(open , close) envoyer, recevoir des messages(send receive) transférer des informations sur les états(get , set) attacher, détacher des périphériques à distance 13 Système d’Exploitation (I) Chapitre premier GENERALITES EXERCICES EXERCICE 1 : On considère un ordinateur dont les organes périphériques sont un lecteur de cartes(1000 c/minutes) et une imprimante (1000 l/minutes). Un « travail moyen » est ainsi défini : lire 300 cartes. Utiliser le processeur pendant 1 minute. Imprimer 500 lignes. On suppose que tous les travaux soumis par les usagers ont des caractéristiques identiques à celle du travail moyen. On définit 2 mesures des performances du système : Le débit moyen D des travaux : nombre de travaux exécutés en 1 heure Le rendement M de l’unité centrale (UC) : fraction du temps total d’utilisation de l’UC pendant lequel elle exécute du travail utile (autre que la gestion des périphériques) 1) On suppose d’abord que les périphériques sont gérés par l’UC. Calculer M et D dans les hypothèses de fonctionnement suivantes : a) Le système est exploité en porte ouverte, la durée d’une session est limitée à 15 min b) Le système est exploité avec un moniteur d’enchaînement séquentiel des travaux 2) On suppose maintenant que les périphériques sont gérés par un ordinateur séparé qui constitue une bande magnétique (BM) à partir des cartes et liste sur l’imprimante le contenu d’une BM de sortie. L’ordinateur principal est alimenté par la BM d’entrée et produit la BM de sortie. On néglige la durée de lecture et d’écriture des BM. Le temps de transfert des BM d’un ordinateur à l’autre est de 5 min, dans chaque sens ; on suppose qu’une BM regroupe une journée de 50 travaux. a) On suppose que le rythme de soumission des travaux est suffisant pour occuper l’ordinateur central à plein temps. Calculer M et D b) Etablir la planification de la constitution du train des travaux et calculer le temps d’attente moyen d’un usager (temps entre la soumission du travail et la réception du résultat). On admettra que les travaux arrivent à un rythme régulier, que le temps de constitution d’une journée (préparation du train de cartes) est de 10 min, et que le temps de distribution des résultats d’une journée (découpage et tri des listes) est de 10 min également. 3) Les périphériques sont maintenant gérés par un canal d’E/S. Le système est monoprogrammé et le moniteur d’enchaînement permet à l’UC d’exécuter le traitement parallèlement à la lecture des suivants et à l’impression du précédent. Calculer dans ces conditions M et D. Même question si le travail moyen lit 1200 cartes et imprime 1500 lignes pour 1 min d’utilisation du l’UC. 4) Les E/S sont maintenant gérés avec tampons sur disque (spool de lecture et d’impression). Le travail moyen est celui défini en (3) (1200 cartes, 1 minute et 15000 lignes) a) On suppose qu’une carte et une ligne d’impression occupent respectivement 80 et 100 octets. Quelle est la taille minimale nécessaire des tampons (buffers) de lecture et 14 Système d’Exploitation (I) Chapitre premier d’impression sur disque que l’UC soit utilisée à son rendement maximal ? Quel est alors le débit des travaux. b) Le rythme d’arrivée des travaux et la taille du tampon de lecture sont ceux calculés en a) et la taille du tampon d’impression sur disque est 2 Mega-Octets. Quel est le rendement de l’UC ? EXERCICE 2 : Soient 3 programmes P1, P2 et P3 de priorité décroissante, on suppose qu’il n’y a pas de conflits au niveau des périphériques pour l’exécution de ces programmes en multiprogrammation. On veut utiliser la méthode du quantum de temps attribué à chacun des programmes. Un programme devra abandonner l’UC lorsqu’il l’aura utilisé pendant le temps T Un programme peut abandonner l’UC pendant un temps t1<T, sachant que: P1 utilise 10mn d’UC pour 25ms d’opération d’E/S P2 utilise 30mn d’UC pour 40ms d’opération d’E/S P3 utilise 5mn d’UC pour 30ms d’opération d’E/S T= 10ms 1) Représenter graphiquement l’exécution des 3 programmes 2) Citer quelques avantages et inconvénients en utilisant les différents algorithmes interruption d’une tâche et lancement d’une opération d’E/S utilisant le critère de priorité utilisant le quantum de temps EXERCICE3 : 1- Quels sont les objectifs principaux d’un système d’exploitation ? 2- Une méthode extrême de Spooling connue comme Staging, consiste à lire le contenu d’une bande magnétique sur disque avant de l’utiliser. Exposer le principal avantage d’un tel système ? 3- Dans un système multiprogrammé et en temps partagé, plusieurs utilisateurs partagent le système simultanément. Cette situation peut provoquer divers problèmes de sécurité : a - Quels sont ces problèmes ? b – Dans une machine en temps partagé, pouvez vous assurer le même degré de sécurité que dans une machine dédiée. 4- Quel est le principal avantage de la multiprogrammation ? 5- Quelles sont les principales différences entre les systèmes pour les gros ordinateurs et les ordinateurs personnels ? 6- Définissez les propriétés suivantes : a- Batch b- Interactif c- Temps partager d- Temps réel e- Réparti 7- Nous avons insisté sur la nécessité pour un OS d’utiliser efficacement le matériel. Quand est ce que le système (OS) délaisse ce principe et gaspille des ressources ? Pourquoi un tel système n’est il pas du gaspillage. ? 15 Système d’Exploitation (I) Chapitre premier 8- Dans quelles circonstances serait-il mieux qu’un user utilise un système en temps partagé plutôt qu’un PC ou une station de travail mono utilisateur ? 9- Donner les différences entre multitraitement symétrique et asymétrique. Quels sont les avantages et les inconvénients des OS multiprocesseurs ? 10- Pourquoi les systèmes répartis sont-ils souhaitables ? 11- Quelle est la principale difficulté à surmonter pour écrire un système temps réel ? 12- Quelles sont les activités d’un système d’exploitation en ce qui concerne la gestion des processus ? 13- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la gestion de la mémoire ? 14- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la gestion de la mémoire auxilliaire ? 15- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la gestion des entrées-sorties ? 16- Quelles sont les activités principales d’un système d’exploitation en ce qui concerne la gestion de fichiers ? 17- Quel est l’objectif de l’interpréteur de commandes. Pourquoi est-il habituellement séparé du noyau ? 18- Enumérer les cinq services fournis par un système d’exploitation. Expliquer comment chacun d’entre eux rend le système plus pratique pour les utilisateurs. Expliquer également dans quels cas il serait impossible pour les programmes niveau utilisateur de fournir ces services ? 19- Quel est l’objectif des appels système ? 20- Quel est l’objectif des programmes système ? 21- Quel est le principal avantage de l’approche en couches pour la conception des OS ? 22- Pour un concepteur d’OS, quel est le principal avantage d’utiliser une architecture de machine virtuelle. Quel en est le principal avantage pour l’utilisateur ? 16 Système d’Exploitation (I) Chapitre premier GENERALITES SOLUTION DES EXERCICES EXERCICE1 : 1a/ On réserve la machine à l’user pour une durée de 15mn. Durée d’1 travail (W) 15mn Débit 60mn Débit = Nombre de travaux en une heure = 1/15.60 = 4 wx. Rendement (η) = Tps utile/Tps total. Chaque travail (W) occupe le CPU pendant 1mn et la session dure 15mn donc η = 1/15 ≈ 6% b/ Le système est exploité avec un séquenceur automatique. Durée d’un travail = Tps lecture des cartes + Tps d’exécution + Tps impression des cartes Tps lecture des cartes : 1000 c 1mn 300 c T1= 3/10 Tps d’exécution : T2 = 1mn Tps impression des cartes : 1000 l 1mn 500 l T3= 5/10 Donc Tps d’un W moyen = T1 + T2 + T3 = 1.8 Débit : Tps d’un W moyen 1.8 Débit 60mn Débit =60/1.8 ≈ 3 wx Rendement η= 1/1.8=0.55= 55% 2- Transfert : LC BM = 5mn BM Imp = 5mn BM 50wx a/ Le processeur travaille pendant une minute pour un travail moyen Donc Tps CPU = 50 wx*1 = 50mn pour une journée Tps d’occupation de l’UC dans la journée = 5 + 50 +5 = 60mn= 1h Donc Débit (D) = 50wx Rendement (η)= 50/60 ≈ 83% b/ Tps de préparation de train des cartes = 10mn Tps de distribution d’une journée = 10mn Tps d’attente moyen d’un usager = Tps moyen de préparation des cartes (T1) + Tps de transfert du LC vers BM (T2) + Tps d’occupation de l’UC dans la journée (T3) 17 Système d’Exploitation (I) Chapitre premier + + Tps de transfert de BM vers IMP (T4) Tps moyen de distribution (T5) T1= 10/2= 5mn en moyenne T2= 15mn 1000 c 1mn 300*50 T2 T3= 5 +50 + 5=60mn T4= 25 mn 1000 l 1mn 500*50 T4 T5= 10/2= 5mn en moyen Donc Tps d’attente moyen = 110mn 3Tps =Tlect + NTproc + Timp =60mn N= (60- 3/10- 5/10) /1 = 59.2 Donc Débit = 59.2 Rendement (η) = 59.2/60 = 98% Même question avec 1 travail moyen (LC=1200c, Proc=1mn, Imp=1500 l) Tps LC : 1000 c 1mn 1200 c 1200/1000 = 1.2mn Tps Imp : 1000 l 1mn 1500 l 1500/1000 = 1.5mn Tps = TpsLect + TpsProc + NTpsImp = 60mn N= (60 – 22/10) * 10/15 = 38.5 Donc Débit = 38 Rendement (η) = 58.5/60 = 64% 4a/ La taille minimale du tampon d’entrée est celle d’un travail : 1c 80 octets 1200 c 1200*80= 960000 octets Donc TailleTE ≈ 96 Koctets Taille minimale du tampon de sortie est celle des résultats d’un travail : 1l 100 octets 1500 l 1500 * 100 = 1500000 octets Donc TailleTS ≈ 150 Koctets Comme le spooling permet l’aiguillage rapide de la tête du disque pour une lecture ou une écriture l’UC étant utilisée à son rendement maximale c.à.d 100%. La durée d’un travail se réduit donc au temps de l’exécution par l’UC c.à.d 1mn. Donc Débit = 60 18 Système d’Exploitation (I) Chapitre premier b/ Pendant l’utilisation de l’UC d’une minute, il y a l’impression de 1500 lignes sur disque 150 Koctets après 13.3mn d’exécution , 2 Mégaoctets peuvent être imprimés et 96k lus sur disque. Donc η = 1. EXERCICE3 : 1- OS Machine Virtuelle Gestion des ressources a- présente une machine virtuelle. b- gestion des ressources. physiques : CPU, MC, MS (disque), E/S logiques : données et programmes - partage et échange - protection mutuelle Machine virtuelle : présenter les outils pour pouvoir Conservation Exécution Batch Désignation Données Exécution Parallèle Programmes Structuration Composition des programmes 2) Avec Spooling : C CPPU U BANDE CANAL M MC C CANAL PRINTER CANAL DISQUE 19 Système d’Exploitation (I) Chapitre premier Sans Spooling : CPU BANDE MC PRINTER Explication : Sans spooling les E/S sont simultanées avec la lecture Encombrement de la mémoire. Avec spooling on utilise le disque pour accélérer. Le staging copier de la bande magnétique sur disque. Avantage : gain de temps dû à la différence de vitesse entre bande et disque. 3) Les problèmes de sécurité sont : a/ Protéger le système contre les utilisateurs. b/ Protéger les utilisateurs entre eux. c/ Assurer la protection par le système de fichiers (SGF) qui affecte à chaque utilisateur une Home directory (espace de travail). Par contre la machine dédiée est sécurisée. 4/ La multiprogrammation plusieurs programmes en mémoire. L’exécution d’un programme et les E/S d’un autre se font en parallèle ce qui augmente le rendement et l’efficacité du CPU. 5/ Comparons deux systèmes connus : MS – DOS pour le PC et Unix pour gros système Critères Sécurité Multitâche Ms-dos (pc) Limitée Non Préemptif Gestion de la Mémoire Totalement allouée à l’utilisateur Partage du disque Généralement accès Séquentiel(Simultanéité avec le système) unix (gros système) Renforcée Préemptif (Notion de priorité, de quantum…) Partagée entre plusieurs utilisateurs ayant plusieurs programmes chacun Accès Multiple 20 Système d’Exploitation (I) Chapitre premier 6) a- Batch : traitement séquentiel par lots. b- Interactif : traitement séquentiel ou lire (commande – réponse) c- Temps partager : plusieurs terminaux reliés à une centrale (sécurité…) d- Temps réel : notion de deadline gestion du temps. e- Réparti : plusieurs PC reliés en réseaux. 7) 1er cas : OS peut gaspiller des ressources pour gérer le temps efficacement dans un système en temps réel où la notion de deadline (temps critique) est très importante. 2ème cas : OS peut gaspiller des ressources au profil de l’interactivité. Dans une machine dédiée les E/S, la MC et le CPU ne sont pas exploités à 100% car ils sont dédiés à un seul utilisateur à un instant t. 8) Il serait meilleur qu’un utilisateur utilise un système en temps partagé plutôt qu’un PC ou une station de travail mono utilisateur, lorsqu’il y a un accès partagé aux données et/ou programmes. 9) Système symétrique : Avantage : indépendance des machines Inconvénient : la sécurité n’est pas très fiable. MC P1, P2,…, Pi MC P1, P2,…, Pi MC P1, P2,…, Pi OS OS OS CPU CPU CPU Système asymétrique : Avantage : la sécurité de l’OS est efficace. Inconvénient : si la machine qui contient l’OS tombe en panne, tout le système est paralysé. 21 Système d’Exploitation (I) MC Chapitre premier MC P1, P2,…, Pi MC P1, P2,…, Pi OS CPU CPU CPU 10) Les systèmes répartis sont souhaitables du point de vue coût par rapport au temps partagé. Aussi la liberté de travail et de maintenance. 11) La difficulté à surmonter pour écrire un système en temps réel est la gestion du temps (le deadline) qui nécessite un changement du scheduling et du système d’interruption. 12) Les activités du SE concernant la gestion des processus sont : Création et suppression des processus utilisateurs et systèmes. Suppression et reprise des processus. Fourniture de mécanismes de communication des processus. Fourniture des mécanismes de synchronisation des processus Fourniture des mécanismes pour le traitement des interblocages. 13) Les activités du SE concernant la gestion de la mémoire sont : Savoir en permanence quelles parties de la mémoire sont en cours d’usage et par qui. Décider quels processus doivent être chargés en mémoire quand on dispose de l’espace libre. Allouer et désallouer de l’espace si nécessaire. 14) Les activités du SE concernant la gestion de la mémoire auxiliaire sont : Gestion de l’espace libre. Allocation de la mémoire. Scheduling du disque. 15) Les activités du SE concernant la gestion des Entrées-Sorties sont : Un système de mise en mémoire cache (à coté du contrôleur disque ou sur la RAM) Une interface générale de drivers. Des drivers pour des périphériques spécifiques. 16) Les activités du SE concernant la gestion des fichiers sont : 22 Système d’Exploitation (I) Chapitre premier Création et suppression de fichiers. Création et suppression de répertoires. Support de primitives pour manipuler des fichiers et des répertoires. Correspondance entre les fichiers et la mémoire auxiliaire. Sauvegarde des fichiers sur support stable (non volatil). 17) Les cinq services fournis par un système d’exploitation sont : Exécution des processus. Opération des E/S Manipulation du système de fichiers. Communication Détection d’erreurs 18) Les appels systèmes jouent le rôle d’interface entre le software et les processus (un processus en évolution fait appel à plusieurs appels systèmes). 19) Les programmes systèmes facilitent la tâche de programmation de l’utilisateur 20) Avantage de l’approche en couches pour la conception des OS est la modularité : Indépendance entre couches Modification ou chargement des couches o Portabilité o Facilité de mise au point o Facilité de conception 21) Avantage d’utiliser une architecture de machine virtuelle est : Du point de vue concepteur : Réduction du code. Uniquement le code de la machine virtuelle Du point de vue utilisateur : Pas de recyclage. Il travaille sur le système qu’il maîtrise. 23