LO41
Architecture et Utilisation des systèmes
d’exploitation
edohmessan@[Link]
Partie 1 : Éléments d’un SE
1 Introduction
– 1.1 Présentation d’un SE
– 1.2 Rôle d’un SE
– 1.3 Historique des S.E
– 1.4 Historique d’Unix
– 1.5 Présentation d’Unix
2 Les Processus
– 2.1 Notion de Processus
– 2.2 Gestion des Processus
– 2.3 Ordonnancement
– 2.4 Le cas d’Unix
Partie 1 : Éléments d’un SE
3 Le Système de Gestion de Fichiers
– 3.1 Représentation des données
– 3.2 Notion de fichier
– 3.3 Système de Gestion de Fichiers
– 3.4 La sécurité des mécanismes de protection
– 3.5 le cas d’Unix
4 Les Entrées Sorties
– 4.1 Les différents types d’E/S
– 4.2 Les gestionnaires d’E/S
– 4.3 Le cas d’Unix
Partie 1 : Éléments d’un SE
5 La Mémoire
– 5.1 Mémoire segmentée
– 5.2 Pagination
– 5.3 Mémoire virtuelle
– 5.4 le cas d’Unix
6 L’Interaction entre processus
– 6.1 Mécanisme de synchronisation
– 6.2 Communication entre processus
– 6.3 Le cas d’Unix
Partie 2 : Communication et Gestion des Processus
7 La Gestion du Parallélisme
– 7.1 Compétition / Coopération
– 7.2 Mécanisme de synchronisation
– 7.3 Modèle Producteur - Consommateur
– 7.4 Modèle Lecteur – Rédacteur
8Les Mécanismes de Synchronisations reposant sur la
notion d’Exclusion Mutuelle
– 8.1 Représentation formelle de l’Exclusion Mutuelle
– 8.2 Algorithmes de Gestion de l’Exclusion Mutuelle
– 8.3 l’Exclusion Mutuelle par sémaphores
– 8.4 Producteurs Consommateurs par sémaphores
Partie 2 : Communication et Gestion des Processus
9 Ordonnancement
10 Inter blocage
11 Conclusion : Systèmes d’Exploitation modernes
– 11.1 Les micro - noyaux
– 11.2 Les systèmes distribués
– 11.3 Les environnements Client - Serveur
– 11.4 Les systèmes temps – réel
– 11.5 Les systèmes mobiles
– 11.6 Les perspectives
Historique de l’évolution des ordinateurs
Origine : Traitement des besoins spécifiques pour des
exploitants autonomes
Introduction de nouveaux concepts au regard
– de l’évolution des besoins
– des raisons économiques
– de l’amélioration des performances
Les systèmes purement séquentiels
1950 – 1960 : Carte (Programme binaire + données) Carte ou
Impression
Les systèmes purement séquentiels
Avantages
– Vitesse de calcul (relative)
– Base de travail scientifique
Inconvénients
– Faible débit
– Matériel sous utilisé
– Délais de manipulation des cartes
– Pas de langage de commande
– Dump
Les systèmes purement séquentiels
1955: Émergence des supports magnétiques
– Outil de gestion des supports magnétiques
– Moniteur d’enchaînement des travaux
• Notion JOB
• Langage de description des étapes
Le langage de commande
permet à l'utilisateur de
préciser en quoi consiste le La protection des données et
travail. des instructions
Le superviseur d'entrées-sorties assurent le
contrôle des opérations d'entrées-sorties des
programmes des utilisateurs.
Les systèmes purement séquentiels
1960: Ordinateur spécialisé d’entrées sorties
– Gestion des E/S par transfert des cartes sur bandes et
lecture des bandes par le moniteur des travaux
•Le débit des travaux
est amélioré.
•Le temps de réponse
est augmenté
Les systèmes purement séquentiels
Avantages :
– Utilisation de langages de commandes évolués
– Préparation des travaux indépendante de l’exploitation
– Débit amélioré (meilleure utilisation du matériel)
Inconvénients :
– Pas d'interaction directe utilisateur/système
– Monoprogrammation
– Processeurs souvent inactif
– Temps de réponse augmenté
– On ne peut supprimer complètement le temps d’opération
des E/S
Les systèmes en temps partagé
la séquence de cartes perforées d’un job batch
1. Définition du travail notamment du propriétaire
2. Exécution du compilateur avec en entrée le code source
3. Chargement en mémoire du programme exécutable
4. Exécution du programme et production des données
Les systèmes en temps partagé
Utilisation de transistors
– Machines plus fiables (mainframes)
Opérateur professionnel
– Engagé pour s’occuper du système
– Enchaînement des tâches, surveillance de leur déroulement etc.
– Le programmeur n’a plus accès à la console
Mise en commun des tâches similaires
– Exemple : deux programmes FORTRAN utilisent le même compilateur
=) Toujours de longues périodes d’inactivité de l’unité centrale.
Traitement hors ligne (offline)
Utilisation de bandes magnétiques comme buffers E/S de l’unité centrale (IBM-7094).
Conversion cartes $ bandes sur des machines distinctes (IBM-1401).
Moniteur résident
Les systèmes en temps partagé
IBM 7004 Console 7094
Introduction du parallélisme
1960 : Entrées Sorties tamponnées
– Processeur spécialisés dans le traitement autonome d’opérations
spécifiques Traitement parallèle
– Superviseur E/S
– Introduction du mécanisme « des interruptions »
La multiprogrammation
1965 : Circuit intégré
– Développé grâce à l’augmentation de la taille des mémoires centrales
– Offrir une gamme de machines compatibles : Éviter les machines dédiées (IBM-1401
vs. IBM-7094) et Permettre la montée en puissance progressive.
– Première famille d’ordinateurs dotés de circuits intégrés. Rapport performance / coût
cassé.
– OS/360 : des millions de lignes d’assembleur. Des milliers de programmeurs. Autant de
bugs.
La multiprogrammation
1965 : IBM 36091
La multiprogrammation
Progrès du matériel :
– Amélioration des périphériques
– Processeurs dédiés aux entrées-sorties (E/S tamponnées)
– Organisation de la mémoire (mémoire virtuelle)
Progrès du logiciel :
– Entrées-sorties en mode différé (spool)
– Faire coexister plusieurs travaux dans la mémoire, et faire
travailler celui qui peut.
– Exécution parallèle d’entrée-sortie et d’activités d’exécution (E/S
tamponnée)
– Moniteur plus évolué
La multiprogrammation
Spooling (Simultaneous Peripheral Operation Online) :Utilisation de
disques (accès direct) plutôt que de bandes (accès séquentiel)
Plus besoin de conversion cartes $ bandes
Forme rudimentaire d’ordonnancement : Le système choisi un candidat
parmi les travaux disponibles (modification de l’ordre initial des travaux)
Premier cas de prise de décision à la place des utilisateurs
Temps partagé (multitâche / timesharing) : Extension
logique de la multiprogrammation
Plusieurs travaux sont lancés simultanément (multiprogrammation)
Commutation très fréquente entre les différents programmes en cours
(illusion de parallélisme)
Possibilité de dialogue avec le programmeur (celui-ci redevient le
contrôleur de ses travaux)
CTSS (Compatible Time Sharing System), MULTICS
(MULTiplexed Information and Computing Service).
=) Un accès interactif aux données nécessite un système de fichiers, et
pose donc les premiers problèmes de sécurité.
Amélioration de l’interface
1965 : Le temps partagé
– Avantages :
• Meilleur temps de réponse
• Délais d’attente plus court
• Interaction utilisateur
• Illusion multi-tâches
– Inconvénients :
• Complexité
• Pas réellement multitâches
• Changement de contextes fréquents
Amélioration de l’interface
1970 : Le transactionnel
– Partage d’informations fondamentales qui couvrent les données ainsi
que les instructions qui décrivent les opérations
– Transaction : pour gérer le partage et garder la cohérence des
données partagées
– Sauvegarde des données
Les Systèmes Parallèles
Plusieurs processeurs partagent les mêmes ressources
matérielles (bus, mémoire, périphériques etc.)
– Mémoire partagée ou répartie
– Même bus de données
– Partage des travaux
– Exécution simultanée
– Dégradation progressive
Deux familles :
– Symétriques (SMP) :
• Tâches prédéfinies pour chaque processeur
• Les processeurs exécutent tous une copie du système;
• Partage « collaboratif » des travaux
• Philosophie maître esclave (Sun Os4)
– Asymétriques :
• Chaque processeur exécute une copie du système d’exploitation et
communique avec les autres pour l’allocation des tâches (ex. SunOS 5 (Solaris
2) et LINUX)
Les Systèmes Parallèles
Avantages :
– Réellement multitâches
– Tolérances aux pannes
Inconvénients :
– Équilibrage de charge entre les processeurs (file d ’attente)
– Manque de souplesse
Les Systèmes Distribués
Plusieurs processeurs ne partagent pas les mêmes
ressources matérielles (bus, mémoire, périphériques etc.)
Partage de ressources éloignées et communication sur un
réseau
Avantages :
– Réellement multitâches,
– Tolérances aux pannes,
– Souplesse et Évolutivité.
Inconvénients :
– Délais de propagation,
– Équilibrage de charge entre les ordinateurs connectés,
– Complexité,
– Administration.
Les Systèmes Temps réels
Les systèmes temps réel sont principalement utilisés pour des
applications dédiées (ex. robotique industrielle). Ils doivent fournir les
résultats attendus quelles que soient les contraintes de temps
imposées.
Temps réel rigide
– Système garantissant que les tâches critiques finissent à temps.
Caractéristique incompatible avec les systèmes à temps partagé.
Temps réel souple
– Système donnant la priorité aux tâches critiques jusqu’à ce qu’elles se
terminent. Cette fonctionnalité se retrouve de plus en plus dans les
systèmes modernes (UNIX en particulier).
Historique
Le Système d’Exploitation
Définition :
– « Abstraction régissant l’exécution des programmes et pouvant remplir
des fonctions telles que l’affectation des ressources, l’ordonnancement, la
gestion des E/S et des données » [AFNOR]
Le Système d’Exploitation : Objectif (1)
Masquer le matériel en fournissant la notion
de ressource
– Abstraction indépendante des détails matériels
– Abstraction protégée par le système
Le Système d’Exploitation : Objectif (2)
Contrôler et gérer l’accès aux ressources
– Plusieurs programmes peuvent s’exécuter en même temps
• multi multi-tâches / mono tâches
– Plusieurs utilisateurs peuvent utiliser le système en même temps
• multi utilisateurs / mono utilisateurs /
Exemples :
– UNIX : multi -tâches + multi-utilisateurs
– NT/ 2000 : multi-tâches + mono-utilisateur
Le Système d’Exploitation
Double fonction :
– En tant que machine étendue ou machine virtuelle
– En tant que gestionnaire de ressources
Le Système d’Exploitation
Décomposition fonctionnelle d’un SE :
– fonction de base :
• les processus
• la gestion de la mémoire, le système de
fichiers, les entrées sorties
– fonctions supplémentaires :
• les réseaux, les systèmes répartis
• les systèmes de fenêtrage
Description d’un S E
Lors de la phase de conception d'un système
d'exploitation, il est nécessaire de faire de nombreux
choix :
– choix d'algorithmes,
– choix de politique de gestion,
– choix de paramètres, etc...
Ces choix sont guidés par la nature de l'utilisation du
système, et conduisent à des solutions de compromis.