49
1 Introduction aux systèmes d’exploitation N.Hameurlain http://www.univ-pau.fr/ ~hameur

1 Introduction aux systèmes dexploitation N.Hameurlain hameur

Embed Size (px)

Citation preview

Page 1: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

1

Introduction aux systèmes d’exploitation

N.Hameurlain

http://www.univ-pau.fr/~hameur

Page 2: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

2

Plan

• Classification des logiciels – logiciels d ’applications;– logiciel de base.

• Composants du logiciel de base

• Modes d’exploitation et Fonctionnalités d ’un SE.

Page 3: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

3

Logiciels exécutés sur un ordinateur : classification

• Logiciels d'application – achetés ou développés, pour satisfaire des

besoins spécifiques.

• Logiciels de base– fournir des services adaptés à la résolution des

problèmes usuels traités sur ce type de calculateur.

Page 4: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

4

Logiciels de base: fonctionnalités

• Préparation et mise au point des programmes

• Exploitation (exécution) des programmes;

• Gestion des ensembles de données: stockage, partage.

Page 5: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

5

Composants du logiciel de base: les Outils

• Logiciels de manipulation de collections de données– éditeurs de textes– compilateurs, éditeurs de liens– recherche dans un fichier; extraction, fusion– etc ... (utilitaires divers)

• n'interagissent pas avec les logiciels d'application

Page 6: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

6

Composants du logiciel de base: les Services

• Logiciels facilitant le travail du programmeur ou de l'usager mais facultatif pour cette fonction, et

• interagissant avec les logiciels d'applications.– gestionnaires de données– gestionnaires de fenêtres– gestionnaires de communications– etc...

Page 7: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

7

Composants du logiciel de base: Système d'exploitation

• Collection de fonctions participant directement à l'exécution de logiciels sur le matériel et permettant éventuellement le partage de celui-ci:– chargement et lancement des programmes– gestion du (des) processeur(s), des périphériques et

entrées/sorties – gestion de la mémoire principale et secondaire

• Interagissant avec les logiciels d'application

Page 8: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

8

Interactions entre composants logiciels de base

• Les frontières entre composants sont variables dans le temps et suivant les concepteurs de systèmes d'exploitation

Matériel

Système d ’Exploitation (SE)

OutilsServices

Applications(Interprète de commandes)

Page 9: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

9

Interactions Utilisateur/système

• Interactions Programmeur /système d'exploitation

• Interactions usager (non programmeur) ->système

Page 10: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

10

Interactions Programmeur /système d'exploitation(1)

• Pour le système d'exploitation, un programme d'application est considéré comme une procédure (presque) classique.– Conséquence (MS-DOS, MacOS) : si un

programme se "plante", le système aussi.

Page 11: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

11

Interactions Programmeur /système d'exploitation (2)

• Pour le programmeur, le système apparaît aussi comme une collection de procédures, trop délicates ou trop fastidieuses pour qu'il les écrive lui-même: – Ces procédures sont appelables si l'on connaît leurs

noms et leurs arguments.

• Passage du mode utilisateur en mode système: appels système ou trappe ou SVC (Supervisory Call)

Page 12: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

12

Exemples de fonctions système

• Manipulation des fichiers et des répertoires:– ouverture de fichiers– lecture dans un fichier– etc...

• Accès aux périphériques d ’Entrées/Sorties (disque, réseau)

Page 13: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

13

Appels systèmes

• Avantages: utiliser des bibliothèques pour éviter d'avoir à écrire des procédures en assembleur ainsi que le passage des paramètres dans la pile.

• Cas des langages de haut niveau: les appels systèmes pour réaliser des Entrées/Sorties sont invisibles du programmeur car mis en place par le compilateur ou l'interpréteur.

Page 14: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

14

Interactions usager (non programmeur) ->système

• Problème : pour avoir accès à une fonction système (exécution d'un programme par exemple) l'usager doit exécuter un programme qui fasse l'appel système correspondant !

• Solution: Interpreteur de commandes:– Programme usager (ou système) exécuté quand il

n'y a rien d'autre à faire.

Page 15: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

15

Présentation de différents modes d'exploitation

• Selon les besoins d'une classe d'applications, un système d'exploitation remplit des fonctions différentes.

• Exemples:– ordinateur individuel– centre de calcul– gestion de transactions– temps réel et gestion de procédés industriels

Page 16: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

16

Fonctionnalités à développer

– interpréteur de commandes – gestion des entrées/sorties série et parallèles– gestion des communications, des réseaux– gestion de fichiers, gestion de fenêtres – utilitaires de manipulation de fichier– gestionnaire de fenêtres.

Page 17: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

17

Qualités attendues

• Simplicité d’utilisation

• Temps de réponses acceptables

• Problèmes simplifiées:– un seul utilisateur à la fois– allocation des ressources simplifiée– pas ou peu d ’activités en parallèle.

Page 18: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

18

Solutions retenues

• Développement des SE spécifiques mono-utilisateur et mono-tâche (MSDOS);– fiabilité médiocre du fait du « mono_utilsateur »

(absence de protection).

• Utilisation des SE multi-utilisateurs et multi-tâches (UNIX, Windows NT, …)– bonne fiabilité– mise en réseaux immédiate,

Page 19: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

19

Centre de calcul: Objectifs

• Offrir des services communs inaccessible individuellement– logiciels complexes– accès à des périphériques divers;

• Offrir des possibilités découlant d ’un ensemble d ’usagers:– partage d ’information;– communications.

Page 20: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

20

Mode de traitement des travaux

• Multiprogrammation (traitement par lots, différés, batch): Non interactif– justification: rentabiliser au max le Matériel;

• Temps partagé (time sharing): Interactif– justification: satisfaire le plus rapidement

possible les demandes des services « courts » des usagers.

Page 21: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

21

Fonctionnalités à développer

• Idem ordinateur individuel plus,

• allocation et partage des ressources physique communs:– processeur(s); mémoire principale; disque,…

• gestion de l’information partagée (fichiers)

• gestion des communications entre usagers (courrier )

Page 22: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

22

Qualités attendus

• Protection des travaux des utilisateurs;

• sûreté de fonctionnement (disponibilité)

• Performances face à de nombreux usagers

• flexibilité par rapport aux besoins des utilisateurs;

• extensibilité dans le temps.

Page 23: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

23

Gestion des transactions

• Gestion d’un ensemble d ’informations très volumineux (Base de données);

• Accès aux informations uniquement au moyen d ’opérations pré-définies: transactions.

• Grand nombre de points d ’accès (terminaux) répartis géographiquement

Page 24: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

24

Qualités d’un système de transactions

• Grande sécurité de données;

• performances;

• disponibilités;

• outils pour le maintien de l ’intégrité de la BD;

• synchronisation des transactions

• mécanismes de reprise et de sauvegarde.

Page 25: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

25

Temps réels et gestion des procédés industriels

• Exemple: Systèmes embarqués (avions, trains); gestion du trafic; conduite de raffineries, etc...

• Types de mission : surveillance/sécurité; production/régulation

Page 26: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

26

Fonctionnalités à développer• Mesures et commandes:

– températures, pressions, etc– Nécessité des E/S spécialisées efficaces.

• Gestion des événements et priorités– mécanismes permettant de régir à un événement du

procédé dans un délai déterminé

• Traitements: mise à disposition de mécanismes de hiérarchisation des traitements:– contrainte: sûreté de fonctionnement.

Page 27: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

27

Les principaux Aspects des Systèmes d’Exploitation

N.Hameurlain

http://www.univ-pau.fr/~hameur

Page 28: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

28

Plan

• Processus et synchronisation

• Allocation de ressources

• Structuration des systèmes

• Gestion des objets

Page 29: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

29

Processus et synchronisation

• Problèmes: identifier et définir les activités autonomes;

• Processus: activité résultant de l'exécution d'un ou plusieurs programmes séquentiellement en vue de la réalisation d'une tâche bien définie;

• synchronisation: coordination d ’activités autonomes mais dépendantes

Page 30: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

30

Processus

• Le processus est l'entité d'affectation du processeur : en dehors des traitements d'interruptions et des périodes de transition, le processeur est alloué à un processus.

• Le mécanisme d'allocation du processeur (scheduler) considère les processus comme des activités autonomes et a priori indépendantes.

Page 31: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

31

Synchronisation

• Problème: Comment faire pour qu'une activité A, arrivée à un point X de son exécution, attende pour continuer qu'une activité B ait atteint ou dépassé un point Y de son exécution ?

• Solutions: approche par temporisation , et par « synchronisation »

Page 32: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

32

Approche par temporisation

• Principe: mesure le délai maximum D qu'il faut à B pour atteindre Y. Il suffit alors de commencer à exécuter A à partir de (début de B) + D;

• problème: solution difficile et périlleuse.

Page 33: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

33

Approche par temporisation:problèmes

• Aléa des temps d'entrées/sorties et indéterminisme induit;

• Variabilité du [Delta] avec la charge;

• Pannes partielles;

• Modification des programmes si évolutions des délais;

• Mauvaise utilisation des ressources car utilisation d'un délai maximum.

Page 34: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

34

Approche par synchronisation

• Conception de mécanismes de synchronisation utilisables par les processus qui doivent se synchroniser : – un processus signale aux autres processus un

"événement" (changement significatif) par rapport à sa situation ou dans l'environnement d'exécution.

• Exemple : sémaphores (Dijkstra 1967), nombreuses autres propositions.

Page 35: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

35

Mécanismes de synchronisation

• Doivent permettre – l'auto-suspension d'un processus – l'activation d'un processus suspendu

• Interaction forte avec le coeur du système d'exploitation car touche à l'allocation ou à l'abandon du processeur par un processus .

Page 36: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

36

Tendances actuelles

• Intégration des mécanismes de synchronisation dans les langages de programmation de haut niveau;

• Conception d'outils de synchronisation pour les systèmes répartis;

• Méthodes de preuves de la validité des solutions aux problèmes de synchronisation.

• Processus légers (lightweight process ou thread)

Page 37: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

37

Processus légers (Threads)

• Systèmes classiques (dérivés d'UNIX) : les processus ne peuvent communiquer que par des mécanismes impliquant des appels systèmes, ce qui est relativement long.

• Définition de plusieurs activités (threads) coopérantes au sein d'un même espace d'adresses de processus.– Communication, synchronisation inter-activités

sans passer par le système.

Page 38: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

38

Allocation de ressources(1)

• Aspects qualitatifs et quantitatifs :

• Problèmes en univers centralisé– gestion des processeurs, – gestions de l'espace disque, – gestion de la mémoire centrale, – traitement de l'interblocage.

Page 39: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

39

Allocation de ressources(2)

• Problèmes en univers réparti:– gestion des voies communes;– contrôle des flux, contrôle de congestion dans les

réseaux;

• Développement des techniques de simulation et modélisation mathématiques par systèmes de files d'attente

Page 40: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

40

Structuration des systèmes

• Monolitiques;

• A couches;

• Client/Serveurs ou Micro-noyau.

Page 41: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

41

Structuration des systèmes: système monolitique (1)

• Collection de procédures qui collaborent à la réalisation de fonctions complexes.

• Chaque procédure est visible a toutes les autres, et peut appeler a tout moment n'importe quelle autre;

• Exemple: UNIX

Page 42: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

42

Système monolitique (2)

• Les services (Appels système) offerts par le SE sont adressées en :– mettant les paramètres dans des registres ou la

pile; et en exécutant une instruction spéciale nommée appel au noyau ou appel au superviseur;

– Le SE examine alors les paramètres pour déterminer l'appel système a exécuter (pointeur sur l'appel système)

Page 43: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

43

Système monolitique (3)

– Le SE appelle la procédure correspondante (localisation et identification du service, qui est ensuite appelé);

– Le contrôle est rendu au programme de l'utilisateur;

Page 44: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

44

Systèmes à couches(1)

• Vu comme un ensemble de couches logiciels superposées.

• Chaque couche utilise les couches inférieures et fournis un service supplémentaire aux couches supérieures

• Exemple: THE, MULTICS,..

Page 45: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

45

Systèmes à couches(2)

Matériel

Gestion de la Mémoire

Gestion des IT et des processus

Gestion des E/S

Allocation de ressources

Gérant de fichiers

Inter de com Prog. d’app

utilisateur

Matériel

Gestion des périphériques et d ’Interruptions

Gérant de fichiers

Inter de com Prog. d’app

utilisateur

Mono-utilisateur monotâche Idéal

Page 46: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

46

Système Client/Serveur ou Micro-noyau(1)

• Certaines fonctions complexes du système sont sorties du système proprement dit et confiées à des serveurs indépendants (serveur de fichiers, de mémoire, etc…)

• Les processus utilisateur (clients) et les serveurs s ’exécutent en mode utilisateur;

• La communication entre clients et serveurs se fait par envoi de messages à travers le noyau du système (mode noyau);

Page 47: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

47

Système micro-noyau (2)

• Système configurable: changer les serveurs pour obtenir une meilleur adéquation;

• Système transportable: il suffit de réécrire la couche micro-noyau qui coordonne tous les serveurs;

• Incorporation des systèmes existants(DOS, UNIX)

• Se prête bien à une utilisation sur les systèmes distribués(Amoeba, Mach, …).

Page 48: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

48

Gestion des Objets

• Un système d'exploitation gère des objets (structures d'informations) comme le fait un langage de programmation et définit les moyens d'accès à ces objets.

• Exemples : fichiers, ..

Page 49: 1 Introduction aux systèmes dexploitation N.Hameurlain hameur

49

Gestion des Objets

• Problèmes de gestion des objets– implantation ; désignation – protection ;partage; destruction – migration ; communication; – réutilisation

• Définition de serveurs d'objets normalisés : CORBA