introduction aux systèmes d'exploitationfab7887.free.fr/fac-plops/taf/se/se - cours sem1/cours...

22
Introduction aux systèmes d'exploitation Généralités Un système informatique est un système complexe dont la gestion directe par l’utilisateur est quasi impossible (par exemple, l’utilisateur doit-il se préoccuper de la manière dont un fichier est enregistré sur disque ?). Il y a donc nécessité d’intercaler une couche logicielle de "gestion" de la machine ce qui nous amène au concept de machine virtuelle. Un système informatique peut alors être représenté comme une superposition de couches : On peut entrevoir deux finalités (a priori) pour un système d’exploitation : transformer une machine physique en une machine confortable pour l'utilisateur gérer les ressources de la machine Les premiers ordinateurs ne possédaient pas de systèmes d'exploitation ; les utilisateurs de l'époque devaient entrer manuellement et dans le système binaire leurs données et leurs programmes. La situation est maintenant bien différente et l'utilisateur a, à sa disposition, une interface, généralement graphique, qui lui permet une utilisation très confortable de l'ordinateur. Le système d'exploitation rend à l'utilisateur une gamme de services : assistance dans la création de programmes, exécution de programmes, accès aux dispositifs d'entrées/sorties, accès contrôlé au système informatique, accès contrôlé aux fichiers, détection d'erreurs, comptabilité des temps d'utilisation de ressources, ... En ce qui concerne la seconde fonctionnalité, considérons, sur une machine, plusieurs programmes qui doivent utiliser des ressources : processeur(s), mémoire, horloges, disques, terminaux, imprimantes,... Il est clair qu’un chef d’orchestre est nécessaire; c’est le système d’exploitation qui jouera ce rôle en tant que

Upload: dinhhanh

Post on 14-Sep-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Introduction aux systèmes d'exploitation

Généralités

Un système informatique est un système complexe dont la gestion directe par l’utilisateur est quasi impossible (par exemple, l’utilisateur doit-il se préoccuper de la manière dont un fichier est enregistré sur disque ?). Il y a donc nécessité d’intercaler une couche logicielle de "gestion" de la machine ce qui nous amène au concept de machine virtuelle. Un système informatique peut alors être représenté comme une superposition de couches :

On peut entrevoir deux finalités (a priori) pour un système d’exploitation :

● transformer une machine physique en une machine confortable pour l'utilisateur● gérer les ressources de la machine

Les premiers ordinateurs ne possédaient pas de systèmes d'exploitation ; les utilisateurs de l'époque devaient entrer manuellement et dans le système binaire leurs données et leurs programmes. La situation est maintenant bien différente et l'utilisateur a, à sa disposition, une interface, généralement graphique, qui lui permet une utilisation très confortable de l'ordinateur. Le système d'exploitation rend à l'utilisateur une gamme de services : assistance dans la création de programmes, exécution de programmes, accès aux dispositifs d'entrées/sorties, accès contrôlé au système informatique, accès contrôlé aux fichiers, détection d'erreurs, comptabilité des temps d'utilisation de ressources, ...

En ce qui concerne la seconde fonctionnalité, considérons, sur une machine, plusieurs programmes qui doivent utiliser des ressources : processeur(s), mémoire, horloges, disques, terminaux, imprimantes,... Il est clair qu’un chef d’orchestre est nécessaire; c’est le système d’exploitation qui jouera ce rôle en tant que

Page 2: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

gestionnaire des ressources (contrôle et ordonnancement). Par exemple si trois programmes veulent imprimer sur la même imprimante, il ne faut pas que leurs sorties se mélangent; le système d’exploitation effectuera les tâches suivantes : stockage des fichiers de sortie, attribution de priorités, prise en main des sorties, destruction des fichiers tampons après impression.

Historique

● 1ère génération d’ordinateurs ( 1945 - 1955)

Les machines de cette époque préhistorique étaient constituées de tubes à vide et il n’y avait pas de système d'exploitation. Les programmes étaient écrits en langage machine (houla !) car les langages de programmation étaient encore inconnus et étaient mémorisés à l’aide de "clés". L’utilisation de cartes perforées a considérablement amélioré le contact avec les machines. Les programmes étaient exécutés les uns après les autres en deux temps : chargement + exécution :

● 2ème génération d’ordinateurs ( 1955 - 1965)

Les machines sont constituées de transistors et le mode de traitement est le traitement par lot (Batch Processing). FORTRAN (inventé par John Backus) est le premier langage de programmation ; les programmes sont écrits dans ce langage sur cartes perforées (une instruction par carte) ce qui constitue un "job".

Pour réduire le temps d’attente, le Batch a utilisé une découverte de l’époque : les bandes magnétiques. Entrées et sorties sont mises sur bandes ce qui réduit considérablement les temps d’attente et permet de rentabiliser l’unité centrale.

Page 3: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Les premiers systèmes sont FMS ( Fortran Monitor System) et IBSYS ( sur IBM 7094).

● 3ème génération d’ordinateurs ( 1965 - 1980)

Les machines sont constituées de circuits intégrés et utilisent le concept de multiprogrammation. De plus les machines évoluent dans le cadre de familles "compatibles" (exemple IBM 360 -> 370 -> 4300 -> 3080 -> 3090). Les faits nouveaux sont :

● la présence en mémoire de plusieurs programmes ou morceaux de programmes : la mémoire est découpée en partitions :

job 3

job 2

job 1

O.S.

Page 4: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

● l’utilisation d’ordinateurs secondaires (canaux) pour les entrées/sorties

Les différents "jobs" sont exécutés jusqu’à ce qu’une opération d’entrée/sortie survienne. Dans ce cas, l’exécution du "job" courant est interrompue et c’est un autre "job" qui sera exécuté.

Les caractéristiques de ces systèmes à multiprogrammation sont :

● complexité grandissante du système; plus grande taille● gestion de la mémoire partagée● meilleure équilibrage de la charge des différentes ressources● meilleures performances (temps de réponse) pour les travaux courts.

Les systèmes à temps partagés (time sharing) sont des variantes modernes des systèmes à multiprogrammation. Chaque programme se voit attribuer un quantum de temps D ; il gardera le bénéfice du processeur pendant ce temps, mais ensuite il devra laisser la place à un autre programme; il retrouvera le processeur plus tard pour une nouvelle exécution pendant le temps D .

Page 5: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Tout se passe, sur ces systèmes, comme si un utilisateur (programme) a la machine pour lui tout seul (mais fonctionnant plus lentement). De fait, l’utilisateur ne se rend pas compte qu’il n’est pas seul à utiliser la machine ; dans les applications interactives cela se voit encore moins. Le temps d’élaboration T1 d’une requête (y compris la réflexion de l’utilisateur) est nettement plus long que le temps d’exécution T2 de la requête; on peut donc utiliser le temps T1 pour servir d’autres usagers.

Les premiers systèmes utilisant le concept de time sharing ont été :

● CTSS (MIT 1962 sur IBM 7094)● MULTICS : le projet MULTICS (MULTiplexed Information and Computing Service) a

été conduit par le MIT, Bell Labs et GE ; ce projet très lourd a produit des idées neuves, mais des partenaires ont abandonné (comme GE).

● UNIX (1970 Thompson et Ritchie) a repris des idées de MULTICS dans le cadre d’un système moins ambitieux mais plus réaliste.

● 4ème génération d’ordinateurs ( 1980 - 1994)

C’est l’époque des ordinateurs personnels et des réseaux. La miniaturisation s’accentue (LSI, VLSI, ULSI) ; la fabrication industrielle en grande série fait baisser les prix. On voit apparaître des stations de travail (généralement non Intel, UNIX) et des micro-ordinateurs (généralement Intel, MS DOS).

Les réseaux suscitent des systèmes d’exploitation nouveaux :

● systèmes d’exploitation de réseaux ( le réseau n’est pas transparent)● systèmes d’exploitation répartis ( le réseau est transparent)

Concepts de base

Processus

Page 6: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Le concept de processus est fondamental. Il peut être défini de plusieurs manières (pas toujours équivalentes) ; on se contentera ici de la définition intuitive suivante : un processus est un programme en cours d’exécution ce qui implique qu’un processus contient les ingrédients suivants :

● code exécutable● données du programme● pile du programme● valeurs de registres du processeur (compteur ordinal, pointeur de pile, mot d’état)● valeurs d’autres registres si nécessaire● autres informations mémorisées si nécessaire

Si l’on considère le cas d’un système en temps partagé, il y aura plusieurs processus sur la même machine ; ces processus seront répertoriés dans une table des processus (qui est un vecteur de structures). Lorsqu'un processus n’est pas en exécution effective sur un processeur (généralement il y a moins de processeurs que de processus), il est mémorisé : stockage des informations nécessaires à la reprise de l’exécution effective: on parle alors de blocage ou de suspension (notions en fait différentes comme on verra plus loin).

Un processus peut en créer un autre (ou plusieurs) ce qui implique une filiation de processus. Un processus peut perdre son "père" (mort ou terminaison de celui-ci), il devient alors "orphelin" et généralement il est "adopté" par un autre processus .

La création de processus est une opération spéciale qui nécessite de faire appel au système d’exploitation car il faut mettre à jour un certain nombre de données de gestion du système. Le processus géniteur, pour créer un nouveau processus, effectue un "appel système", c’est à dire invoque une "routine système" appelée primitive. C’est d’une manière générale le cas pour d’autres opérations de création, de destruction, d’utilisation, de fin d’utilisation d’objets : à chaque fois le processus concerné appelle une primitive.

Un processus appartient à un propriétaire (owner) identifié par un uid (user identifier) qui est un entier codé usuellement sur 16 ou 32 bits. Les utilisateurs sont eux-mêmes regroupés en des groupes d’utilisateurs ; chaque groupe est identifié par un gid (group identifier).

Page 7: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Fichiers

Les fichiers sont usuellement organisés dans des structures arborescentes :

Avec cette méthode (simple au demeurant), un fichier possède un nom unique qui est le chemin qui permet d’y accéder à partir de la racine. Ce nom est le " pathname ".

Exemples :

sous UNIX /B/X/F (la racine est \)sous MSDOS c:\B\X\F (la racine est le disque dur C:)

Les fichiers sont protégés de diverses manières. Dans les systèmes actuels comme UNIX,

● 3 opérations sont prises en considération : lecture, écriture, exécution● 3 catégories d’utilisateurs sont définies : propriétaire, groupe auquel appartient le propriétaire,

autres utilisateurs.

Page 8: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Ce qui permet de définir les droits avec 9 bits :

Un processus peut accéder à un fichier; si sa demande est accordée par le système d’exploitation, il reçoit en retour un descripteur de fichier (handle).

Certains systèmes admettent l’existence de fichiers spéciaux :

● les fichiers représentant les périphériques d’entrée/sortie (abstraction commode) ; ainsi sous UNIX il existe 3 fichiers spéciaux standards :

❍ 0 : standard input (stdin), usuellement le clavier❍ 1 : standard output (stdout), usuellement l’écran❍ 2 : standard error (stderr), usuellement l’écran

● les tuyaux ou tubes ou conduits ( pipes) qui sont des fichiers de communication entre deux processus.

Appels système

Le système d’exploitation contient une bibliothèque de procédures ou " primitives ". Lorsque un processus appelle une primitive (effectue un appel système), on passe du mode utilisateur au mode système (ou superviseur).

Page 9: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Ainsi, si un processus désire effectuer une lecture dans un fichier, il appellera la primitive READ dont la syntaxe pourrait être :

count = read(file, buffer, nbytes)

Trois paramètres sont passés au système : le nom du fichier (file), l’endroit où on mettra en mémoire le résultat de la lecture (buffer) et le nombre d’octets à lire (nbytes). Le code de retour count donne le nombre d’octets effectivement lus (et le code -1 en cas d’erreur).

Shell

Le shell est l’interface permettant d’utiliser directement le fonctionnalités du système d’exploitation en offrant à l’utilisateur un langage de commande textuel ou graphique. Ainsi, sous UNIX, la suite de commandes

cat file1 file2 file3 | sort > /dev/lp &

indique que l’utilisateur demande en arrière plan (&) de concaténer 3 fichiers file1, file2, file3, puis de trier le résultat par ordre alphabétique des lignes (sort) et d’envoyer le résultat dans le fichier spécial /dev/lp (imprimante). Les signe | indique l’utilisation d’un tube (pipe); en effet cat et sort sont deux procédures qui donnent naissance à des processus : le processus cat génère des données qui sont transmises, via le tube, au processus sort (cat remplit le tube, sort le vide).

Page 10: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Concepts avancés

Les systèmes d'exploitation modernes présentent de nouvelles caractéristiques : micro-noyau, threads, multiprogrammation symétrique, systèmes répartis ou distribués, architecture orientée objet,...

Micro-noyau

Les fonctionnalités des systèmes d'exploitation ont considérablement augmenté, ce qui a conduit à des systèmes d'exploitation de taille imposante. L'importance de cette taille a nécessité dans un premier temps de placer en mémoire centrale un noyau indispensable et laisser en mémoire secondaire (sur disque) des fonctionnalités plus secondaires. Cette tendance s'est accentuée dans l'idée du micro-noyau (microkernel) ; le micro-noyau est constitué de fonctionnalités essentielles (adressage, communication entre processus) et les autres fonctionnalités sont organisées en bibliothèques de procédures à laquelle s'adresse, en cas de besoin, le micro-noyau ; ces procédures sont considérées comme des programmes ordinaires et peuvent résider localement ou sur une autre machine reliée par réseau.

Threads

Il n'y a pas encore de mot français pour désigner les threads. Un processus peut être découpé en unités exécutables indépendantes qui correspondent aux threads. Un thread s'exécute de manière séquentielle (il est composé d'instructions machine), par contre plusieurs threads d'un même processus peuvent s'exécuter simultanément. Pour faciliter l'exposé, on ne fera pas de distinction entre processus et threads lorsque cela n'apportera rien de particulier ; par contre la différence sera mise en évidence si cela est nécessaire.

Multiprogrammation symétrique

Pour augmenter les performances, on a été conduit construire des machines avec plusieurs processeurs ; ces machines sont dites multiprocesseur. Ce type de machine possède une architecture dans laquelle les processeurs partagent la mémoire centrale et les possibilités d'entrée/sortie. Ils peuvent communiquer par la mémoire centrale ou par un bus spécifique. La multiprogrammation symétrique consiste

● à utiliser une machine multiprocesseur ● à faire effectuer les mêmes fonctions par tous les processeurs (banalisation)

Par suite, le système d'exploitation répartit les processus ou les threads entre les processeurs disponibles. Les avantages de ces techniques sont tout d'abord l'augmentation de la performance (c'est à dire de la vitesse d'exécution), mais aussi la résistance aux pannes (un processeur en panne ne correspond pas à l'arrêt du système), les possibilités d'évolution et d'ajustement (par ajout de processeurs supplémentaires).

Systèmes répartis

A l'inverse du concept de multiprogrammation symétrique, on trouve celui de système réparti pour lequel un ensemble de machines reliées par un réseau est considéré comme une "grosse" machine unique. Dans un système réparti (on dit aussi distribué), les fonctionnalités du système d'exploitation peuvent être réparties entre les diverses machines composant le système. De même, les ressources gérées par le système d'exploitation sont aussi réparties entre les différentes machines. Etant donné l'importance des réseaux à notre époque, les systèmes répartis représentent un champ d'intérêt important. On étudiera ces systèmes plus loin.

Architecture orientée objet

Page 11: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Cette approche moderne vise à construire les systèmes d'exploitation comme un ensemble d'objets possédant des propriétés et des méthodes. L'intérêt principal des objets, en dehors de la modularité, est leur réutilisation ce qui permet la construction de systèmes d'exploitation évolutifs et adaptables.

Exemples de systèmes d'exploitation

Pour terminer de chapitre sur les généralités, il convient de présenter deux systèmes d'exploitation courants : Windows NT et Unix. Nous en effectuerons une présentation sommaire, se réservant la possibilité d'approfondir par la suite les différentes caractéristiques de ces systèmes d'exploitation.

■ Windows NT

Les premiers micro-ordinateurs PC, lancés par IBM en 1981, étaient équipés d'un processeur Intel 8086 et d'un système d'exploitation développé par Microsoft : le MS-DOS (la taille du DOS 1.0 était de 8 Ko). Ces PC ont évolués avec l'adjonction de processeurs de plus en plus performants 80286, puis 80386. Au-dessus du DOS, Microsoft avait ajouté des fonctionnalités graphiques rassemblées sous le nom de Windows. Le DOS 3.3 de l'époque occupait en mémoire centrale une place de 46 Ko.

Les nouveaux processeurs 80486 et Pentium n'étaient pas optimisés par l'emploi du MS-DOS, bien que Windows ait évolué vers une version plus performante 3.X (1990). Il apparaissait, en conséquence nécessaire, de développer un nouveau système d'exploitation ce qui conduisit à Windows 95 et Windows NT. Ce dernier, beaucoup plus puissant que Windows 95, reprend toutes ses fonctionnalités auxquelles s'en ajoutent d'autres, notamment une plus grande portabilité vis à vis des plate-formes. La version actuelle est la version 4.0, mais la version 5.0 est déjà prête (1998).

Les caractéristiques principales de Windows NT sont les suivantes :

● portabilité

Le système Windows NT est écrit dans un langage de haut niveau (C, C++) et non pas dans le langage d'assemblage d'un processeur particulier, ce qui permet son adaptation à divers processeurs.

● multitâche

Windows NT , comme les produits correspondants des gros et moyens systèmes (Unix, VMS, ...) permet l'exécution simultanée de plusieurs applications. Comme l'interface est graphique, en général, une fenêtre est associée à chaque application. Toutes les applications ouvertes sont actives à un moment donné, l'une d'elle est l'application courante (sa fenêtre est en premier plan), les autres s'exécutent en tâches de fond.

● multithreading

Le concept de thread est utilisé dans Windows NT

Page 12: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

● indépendance du processeur

Windows 3.X et avant lui, MS-DOS étaient liés à l'architecture des processeurs de la famille Intel 80x806 ; Windows NT a été portée sur d'autres processeurs : PowerPC (Motorola), Alpha (DEC), MIPS Risc (IBM)

● support multiprocesseur

Windows NT utilise une interface qui lui permet de s'adapter au cas d'un processeur comme de plusieurs

● support POSIX et sécurité

Plusieurs niveaux de sécurités sont proposés dans Windows NT ; par ailleurs, Windows NT est compatible avec le standard POSIX ; ces deux caractéristiques sont plus importantes aux USA qu'en France, car le Département de la Défense a imposé un cahier des charges sur ces deux aspects qui est pris comme modèle.

● support réseau

Windows NT est disponible sous deux formes : Windows NT Workstation et Windows NT Server ; cette dernière forme constitue un outil performant de gestion de réseau local.

● compatibilité MS-DOS et Windows 3.X

Les applications anciennes sous MS-DOS et Windows 3.X peuvent fonctionner sous Windows NT.

L'architecture de Windows NT est décrite par le schéma ci-dessous :

Page 13: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Cette architecture montre tout d'abord une assez importante modularité : chaque fonction est un objet particulier. le concept de micro-noyau est utilisé mais pas de façon complète puisque un certain nombre de fonctionnalités (Object Manager, Process Manager, ...) s'exécutent en mode noyau (c'est à dire système). La couche HAL permet de s'adapter à des environnements matériels différents. En mode utilisateur, on peut constater que Windows NT s'adapte à de nombreux systèmes informatiques.

■ Unix

Rappelons brièvement l'histoire d'Unix :

1965 : Le projet MULTICS est lancé (MIT + General Electric) ; son objectif est la construction d'un système d'exploitation interactif en prolongement du programme CTSS.

1968 : Bells Laboratories se joint au projet ; Ken Thompson y participe.

1969 : Bells Labs se retire du projet car trop d'années sont nécessaires à son aboutissement. Ken Thompson essaie de recréer un "petit" Multics sur un PDP7, puis sur un PDP11 (DEC) : Unix. A cette occasion, la langage B est inventé pour l'écriture du système à partir du langage BCPL (Basic Combined Programming Language). Puis Dennis Ritchie invente le langage C à partir du langage B.

1973 : Unix est écrit en C et utilisé chez AT&T

1974 : Version 5 d'Unix avec permission d'utilisation dans les universités américaines. En particulier, des développements importants ont lieu à l'Université de Berkeley ; ils sont l'origine de BSD (Berkeley

Page 14: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Software Distribution).

1979 : apparition de nouvelles versions dont certaines pour micro-ordinateurs.

A partir de cette date, les versions se succèdent comme indiqué sur la figure ci-dessous :

Page 15: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

L'architecture d'Unix est conçue comme un modèle en couches, ou en coquilles successives : autour de la machine matérielle se trouve la couche noyau, puis la couche shell et utilitaires, enfin la dernière couche est composée d'outils divers :

Du point de vue des fonctionnalités qui sont en mode utilisateur ou en mode système, l'architecture d'Unix est décrite sur le schéma ci-dessous :

Page 16: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

On constate ici que le noyau est formé de modules assez conséquents répartis en deux grands blocs : le système de gestion des fichiers et le système de contrôle des processus. On y reviendra lorsque ces fonctionnalités seront étudiées.

Page 17: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

S.BOURNE Le système Unix InterEditions

A.B.FONTAINE, Ph.HAMMES

Unix, système et environnement Masson

A. S. TANENBAUM Les systèmes d'exploitation InterEditions

A.S.TANENBAUM Modern Operating Systems Prentice Hall

Y. NISHINUMA, R. ESPESSER Unix, premier contact Eyrolles

M.G. SOBEL A Practical guide to the Unix System Benjmin-Cummings

J.R. GROFF, P.N. WEINBERG

Le système d'exploitation Unix Belin

S. HEATH Windows NT Butterworth-Heinemann Book

. BIC, A.C. SHAW The logical Design of Operating Systems Prentice Hall

MAEKAWA, OLDENHOEFT, OLDENHOEFT

Operating Systems, Advanced Concepts Benjamin-Cummings

H.M. DEITEL An introduction to Operating Systems Addison Wesley

M. MILENKOVIC Operating Systems, Concepts and Design Mc Graw Hill

J.R. PINKERT, L.L. WEAR

Operating Systems, Concepts, Policies and Mechanisms Prentice Hall

Bibliographie

W. STALLINGS Operating Systems Prentice Hall

A.M. LISTER Principes fondamentaux des systèmes d'exploitation Eyrolles

S.KRAKOWIAKPrincipes des systèmes d'exploitation des ordinateurs

Dunod

Page 18: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Généralités sur les systèmes d'exploitation

Exercices

Exercice 1

Dans un système multiprogrammé à un processeur, on admet que chaque job possède les mêmes caractéristiques. Chaque job s'exécute sur N périodes de durée T chacune ; une période T se décompose en entrée/sortie (50% de T) et utilisation effective du processeur (50% de T). On suppose que les jobs se succèdent suivant la méthode du tourniquet (chacun à son tour obtient le processeur) et que les opérations d'entrée/sortie et d'utilisation du processeur peuvent être simultanées (pour des jobs différents).Dans le cas de 1, 2 et 4 jobs et dans les deux cas suivants :

● T est composée séquentiellement d'une entrée/sortie (50%), puis de l'utilisation du processeur (50%)

● T est composée séquentiellement d'une entrée/sortie (25%), puis de l'utilisation du processeur (50%), puis d'une entrée/sortie (25%)

calculer

1) le temps nécessaire à l'exécution d'un job2) le nombre moyen de jobs exécutés par période T3) le pourcentage de temps d'utilisation du processeur.

Exercice 2

Un ordinateur possède une mémoire principale, une mémoire cache, un disque. Le temps d'accès à un mot du cache est A ns ; si le mot est dans la mémoire principale, il faut B ns pour le transférer dans le cache ; si le mot est sur le disque, il faut C ns pour le retrouver et B ns pour le transférer sur le cache. La probabilité de trouver le mot dans le cache est (n-1)/n et la probabilité de le trouver en mémoire principale est (m-1)/m.

Page 19: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Déterminer le temps moyen d'accès de ce système.

Exercice 3

Sous Unix, un fichier dont le propriétaire possède l'uid 12 et le gid 1 a le mode de protection

rwxr-x---

Un autre utilisateur dont le uid est 6 et le gid 1 tente d'exécuter ce fichier. Que se passe-t-il ?

Exercice 4

Faire un inventaire des différents systèmes d'exploitation actuellement utilisés.

Page 20: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Généralités sur les systèmes d'exploitation

Solution des exercices

Solution de l'Exercice 1

Hypothèse 1 : T est composée séquentiellement d'une entrée/sortie (50%), puis de l'utilisation du processeur (50%)

Hypothèse 2 : T est composée séquentiellement d'une entrée/sortie (25%), puis de l'utilisation du processeur (50%), puis d'une entrée/sortie (25%).

Dans les schémas ci-dessous, le vert indique les entrées/sorties et le rose l'utilisation du processeur. te indique le temps d'exécution, n le nombre moyen de jobs exécutés par période T et r le pourcentage de temps d'utilisation du processeur.

● Cas 1 : 1 job, hypothèse 1

te = NT ; n = (1/NT)x T = 1/N ; r = 50%

● Cas 2 : 1 job, hypothèse 2

mêmes résultats que ci-dessus

● Cas 3 : 2 jobs, hypothèse 1

te = NT ; n = 2/N ; r = 100%

● Cas 4 : 2 jobs, hypothèse 2

Page 21: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

mêmes résultats que ci-dessus

● Cas 5 : 4 jobs, hypothèse 1

te = (2N-1)T ; n = 4/(2N+1/2) ; r = 100%

● Cas 6 : 4 jobs, hypothèse 2

te = 3NT/2 ; n = 4/(9TN/2) ; r = 100 %

Solution de l'exercice 2

Ts = ((n-1)/n)A + ((m-1)/m)(B+A) + x(C+B)

x = 1 - (n-1)/n - (m-1)/m = 1/n +1/m -1

Ts = A + ((m-1)/m)B + (1/n + 1/m -1)C

Solution de l'Exercice 3

Page 22: Introduction aux systèmes d'exploitationfab7887.free.fr/Fac-Plops/Taf/SE/SE - Cours Sem1/Cours PDF/chap2.pdf · système d'exploitation. Les programmes étaient écrits en ... codé

Le propriétaire peut lire, écrire, exécuter. Un membre du groupe peut lire et exécuter. Les autres ne peuvent rien faire.

Solution de l'exercice 4

Une bonne adresse sur Internet : http://dir.yahoo.com/Computers_and_Internet/Software/Operating_Systems/