Cnum - Conservatoire numérique des Arts et Métiers - retour page d'accueil
  • À propos
  • Catalogue général
Recherche avancée
  • Aide  
  • roue dentee  
  • Fils RSS des actualités de la bibliothèque numérique
  • Accueil
  •  > 
  • Catalogue général
  •  > 
  • Crocus (pseud. collectif) - Systèmes d'exploitation des ordinateurs
  •  > 
  • p.289 - vue 307/384
Première page Page précédente
Page suivante Dernière page Réduire l’image 100% Agrandir l’image Revenir à la taille normale de l’image Adapte la taille de l’image à la fenêtre Rotation antihoraire 90° Rotation antihoraire 90° Imprimer la page
Basculer à gauche  Basculer à droite
Fermer
  • TABLE DES MATIÈRES
  • RECHERCHE DANS LE DOCUMENT
  • TEXTE OCÉRISÉ
  • Première image
  • PAGE DE TITRE
    • Avant-propos (p.r5)
    • Avant-propos de la seconde édition (p.r6)
    • Préambule (p.r7)
    • TABLE DES MATIERES (p.r9)
    • CHAPITRE 1. Introduction (p.1)
      • 1.1 Fonctions et aspects externes des systèmes (p.1)
      • 1.11 Fonctions d'un système (p.1)
      • 1.12 Aspects externes des systèmes (p.2)
      • 1.2 Caractéristiques communes (p.2)
      • 1.21 Partage des ressources physiques (p.3)
      • 1.22 Gestion de l'information (p.5)
      • 1.23 Coopération des processus (p.7)
      • 1.24 Protection (p.8)
      • 1.3 Problèmes de conception et d'évaluation (p.9)
      • 1.31 Mesures et modèles des systèmes (p.9)
      • 1.32 Méthodologie de conception (p.9)
      • 1.4 Organisation de l'ouvrage (p.10)
    • CHAPITRE 2. Les processus (p.11)
      • 2.1 Introduction (p.11)
      • 2.2 Définitions (p.12)
      • 2.21 Instructions. Processeur. Processus (p.12)
      • 2.22 Notion de ressource. Etats des processus (p.13)
      • 2.221 Ressources et états des processus (p.13)
      • 2.222 Accès aux ressources (p.14)
      • 2.223 Pouvoir d'un processus (p.15)
      • 2.224 Contenu du vecteur d'état (p.15)
      • 2.23 Relations entre processus (p.16)
      • 2.231 Création et destruction (p.16)
      • 2.232 Synchronisation et communication (p.16)
      • 2.24 Exemple de décomposition en processus (p.17)
      • 2.3 Exclusion mutuelle (p.18)
      • 2.31 Introduction au problème (p.18)
      • 2.32 Attente active (p.19)
      • 2.33 Les verrous (p.21)
      • 2.34 Les sémaphores (p.22)
      • 2.341 Définition (p.22)
      • 2.342 Propriétés des sémaphores (p.22)
      • 2.343 Sémaphores d'exclusion mutuelle (p.24)
      • 2.35 Difficultés de l'exclusion mutuelle (p.25)
      • 2.4 Mécanismes de synchronisation (p.26)
      • 2.41 Généralités (p.26)
      • 2.42 Mécanismes d'action directe (p.27)
      • 2.43 Mécanismes d'action indirecte (p.28)
      • 2.431 Synchronisation par événements (p.28)
      • 2.432 Synchronisation par sémaphores (p.30)
      • 2.44 Critique des mécanismes de synchronisation (p.35)
      • 2.5 Communication entre processus (p.36)
      • 2.51 Introduction (p.36)
      • 2.52 Communication entre processus par variables communes (p.36)
      • 2.521 Modèle du producteur et du consommateur (p.37)
      • 2.522 Communication par boîte aux lettres (p.42)
      • 2.53 Mécanismes spéciaux de communication (p.44)
      • 2.531 Sémaphores avec messages (p.44)
      • 2.532 Communication entre processus dans le système MU5 (p.45)
      • 2.6 Implantation des primitives de synchronisation (p.47)
      • 2.61 Exclusion mutuelle dans les primitives (p.47)
      • 2.62 Gestion des processus (p.48)
      • 2.63 Protection des primitives (p.49)
      • 2.64 Exemples (p.49)
      • 2.7 Problèmes de protection (p.55)
      • 2.71 Les problèmes (p.55)
      • 2.72 Quelques remèdes (p.56)
      • 2.8 Exemple de coopération de processus (p.58)
    • EXERCICES (p.58)
    • CHAPITRE 3. Gestion de l'information (p.67)
      • 3.1 Introduction (p.67)
      • 3.11 Terminologie (p.67)
      • 3.111 Représentation externe des objets (p.68)
      • 3.112 Représentation interne des objets (p.69)
      • 3.113 Objets composés (p.71)
      • 3.114 Durée de vie des objets (p.72)
      • 3.115 Notion de segment (p.73)
      • 3.116 Procédure (p.73)
      • 3.12 Contraintes apportées par le système (p.73)
      • 3.121 Partage des objets et utilisation des noms (p.74)
      • 3.122 Interférence avec la gestion des ressources physiques (p.74)
      • 3.123 Représentation du système (p.75)
      • 3.13 Modifications de la chaîne d'accès à un objet (p.75)
      • 3.131 Objets liés dès la compilation (p.76)
      • 3.132 Noms et objets libres après compilation (p.76)
      • 3.2 Gestion des noms dans le système CLICS (p.77)
      • 3.21 Introduction (p.77)
      • 3.22 La Mémoire segmentée (p.78)
      • 3.221 Désignation d'un segment par un processus (p.80)
      • 3.222 Descriptif des segments processus (p.81)
      • 3.23 Langage machine et objets manipulés (p.82)
      • 3.231 Format des instructions (p.82)
      • 3.232 Les différents objets manipulés par l'exécution d'une procédure (p.82)
      • 3.233 Multiplicité des objets (p.84)
      • 3.24 Accès aux objets (p.84)
      • 3.241 Accès aux étiquettes du segment-procédure (p.85)
      • 3.242 Accès aux objets rémanents (p.86)
      • 3.243 Accès aux objets externes (p.88)
      • 3.245 Accès aux paramètres (p.90)
      • 3.246 Illustrations des mécanismes d'accès (p.92)
      • 3.25 Appel et retour de procédure (p.92)
      • 3.251 Calcul de l'adresse segmentée des paramètres effectifs (p.94)
      • 3.252 Appel de procédure et changement de contexte (p.94)
      • 3.253 Retour à la procédure appelante (p.96)
      • 3.26 Liaisons dynamiques (p.97)
      • 3.261 Remplacement de l'identificateur par un nom de segment : édition de liens (p.98)
      • 3.262 Référence à un segment-procédure (p.99)
      • 3.263 Catalogue des segments connus et catalogue général (p.101)
      • 3.264 Gestion du descriptif (p.101)
      • 3.3 Gestion des noms dans le système BURROUGHS B 6700 (p.102)
      • 3.31 Introduction (p.102)
      • 3.32 Le matériel (p.102)
      • 3.321 Notion de préfixe (p.102)
      • 3.322 Les segments (p.103)
      • 3.323 Les Processus physiques (p.103)
      • 3.33 Représentation des objets du langage (p.104)
      • 3.331 Objets simples (p.104)
      • 3.332 Tableaux (p.105)
      • 3.333 Objets-procédures (p.105)
      • 3.34 Accès aux objets (p.105)
      • 3.341 Aspects lexicographiques (p.105)
      • 3.342 L'espace adressable (p.106)
      • 3.343 Environnement : accès par désignation (p.106)
      • 3.344 Accès aux paramètres effectifs : noms dynamiques (p.109)
      • 3.35 Procédures (p.109)
      • 3.36 Variations d'environnement aux appels et retours de procédures (p.111)
      • 3.361 Appel de procédure (p.111)
      • 3.362 Retour de procédure (p.113)
      • 3.363 Chaîne statique (p.114)
      • 3.364 Zone de liaison (p.114)
      • 3.365 Détail de l'appel de procédure (p.114)
      • 3.37 Partage des objets entre un processeur et ses processus fils (p.116)
      • 3.371 Création de processus (p.116)
      • 3.372 Existence d'objets communs aux processus père et fils (p.117)
      • 3.373 Incidence sur les noms (p.118)
      • 3.374 Synchronisation (p.119)
      • 3.38 Inclusion du moniteur dans l'arborescence de piles (p.120)
      • 3.381 Partage des objets par une collection de processus (p.120)
      • 3.382 Partage des objets communs à tous les processus (p.120)
      • 3.383 Partage des procédures communes à plusieurs processus (p.121)
      • 3.4 Gestion de l'information dans le système ESOPE (p.122)
      • 3.41 Le matériel (p.124)
      • 3.411 La mémoire physique (p.124)
      • 3.412 L'adressage topographique (p.124)
      • 3.42 La mémoire adressable (p.125)
      • 3.421 L'espace des segments (p.125)
      • 3.422 La mémoire virtuelle (p.125)
      • 3.43 Désignation des segments (p.125)
      • 3.44 Accès à l'information : le couplage (p.127)
      • 3.441 Principe du couplage (p.127)
      • 3.442 Réalisation du couplage (p.128)
      • 3.443 Contraintes (p.130)
      • 3.45 Partage des segments (p.130)
      • 3.46 Utilisation des mécanismes de gestion de l'information (p.131)
      • 3.5 Représentation et gestion des objets (p.131)
      • 3.51 Représentation des objets (p.131)
      • 3.511 Généralités (p.132)
      • 3.512 Décomposition de la représentation d'un objet (p.133)
      • 3.513 Partage d'un objet (p.133)
      • 3.52 Accès aux objets (p.135)
      • 3.521 Nom d'un objet (p.135)
      • 3.522 La mémoire fictive (p.137)
      • 3.523 Espace adressable d'un processus (p.137)
      • 3.524 L'environnement d'un processus (p.137)
    • EXERCICES (p.138)
    • CHAPITRE 4. Gestion des ressources (p.141)
      • 4.1 Notions générales (p.141)
      • 4.11 Exemples de ressources (p.142)
      • 4.12 Représentation des ressources (p.143)
      • 4.13 Origine et forme des demandes d'allocation (p.144)
      • 4.14 Fonctions de l'allocateur (p.145)
      • 4.141 Généralités (p.145)
      • 4.142 Traitement d'une demande (p.147)
      • 4.15 Présentation du chapitre (p.148)
      • 4.2 Caractéristiques de la charge d'un système (p.148)
      • 4.21 Introduction (p.148)
      • 4.22 Caractéristiques globales de la charge (p.149)
      • 4.23 Comportement dynamique des programmes. Propriété de localité (p.154)
      • 4.3 Allocation de processeur réel (p.158)
      • 4.31 Classification des stratégies (p.158)
      • 4.32 Stratégies sans recyclage des travaux (p.159)
      • 4.33 Stratégies avec recyclage des travaux (p.160)
      • 4.34 Stratégies fondées sur la notion de priorité (p.162)
      • 4.35 Stratégies fondées sur la notion d'échéance (p.162)
      • 4.4 Gestion de la mémoire principale (p.163)
      • 4.41 Introduction (p.163)
      • 4.42 Incidence de mécanismes d'adressage (p.164)
      • 4.43 Stratégies d'allocation de la mémoire aux travaux (p.165)
      • 4.431 Allocation en mémoire hiérarchisée (p.167)
      • 4.44 Gestion de la mémoire par zones (p.168)
      • 4.441 Réimplantation dynamique par registres de base (p.168)
      • 4.442 Algorithmes de gestion de la mémoire par zones (p.169)
      • 4.45 Gestion de la mémoire par pages (p.172)
      • 4.451 Mécanismes de pagination (p.172)
      • 4.452 Représentation des espaces virtuels dans le système (p.178)
      • 4.454 Algorithmes de remplacement (p.180)
      • 4.455 Conclusions (p.182)
      • 4.5 Gestion de la mémoire secondaire (p.182)
      • 4.51 Introduction (p.182)
      • 4.52 Caractéristiques physiques des unités (p.183)
      • 4.53 Gestion de la mémoire auxiliaire (p.184)
      • 4.531 Allocation d'espace (p.184)
      • 4.532 Gestion des transferts pour un tambour (p.187)
      • 4.54 Gestion de la mémoire externe (p.193)
      • 4.6 Stratégies globales (p.193)
      • 4.61 Phénomène d'écroulement du système (p.193)
      • 4.62 Régulation de la charge (p.196)
      • 4.63 Stratégies fondées sur l'espace de travail (p.198)
      • 4.631 Notion d'espace de travail (p.198)
      • 4.632 Mise en oeuvre de stratégies fondées sur l'espace de travail (p.199)
      • 4.633 Détermination pratique de l'espace de travail (p.199)
      • 4.634 Tentatives d'adaptation du comportement des programmes (p.200)
      • 4.7 Interblocage (p.201)
      • 4.71 Introduction (p.201)
      • 4.72 Description informelle (p.202)
      • 4.73 Formalisation et définitions (p.203)
      • 4.731 Système. Etat d'un système (p.203)
      • 4.732 Interblocage (p.206)
      • 4.74 Remèdes à l'interblocage (p.208)
      • 4.741 Détection. Guérison (p.208)
      • 4.7411 Détection (p.208)
      • 4.7412 Guérison (p.212)
      • 4.742 Prévention (p.212)
      • 4.7421 Prévention statique (p.213)
      • 4.7422 Prévention dynamique (p.214)
      • 4.75 Conclusions (p.217)
    • EXERCICES (p.217)
    • CHAPITRE 5.Protection (p.223)
      • Présentation du problème (p.223)
      • 5.11 Introduction (p.223)
      • 5.12 Position du problème (p.224)
      • 5.121 Définitions (p.224)
      • 5.122 limites du système de protection (p.225)
      • 5.123 Variation du pouvoir d'un utilisateur : nécessité et limites (p.226)
      • 5.124 Problème à résoudre (p.227)
      • 5.13 Exemples d'implantation de la matrice des droits (p.227)
      • 5.131 Liste d'accès (p.227)
      • 5.132 Liste des droits (p.228)
      • 5.133 Clés et verrous (p.228)
      • 5.134 Mode maître, mode esclave (p.228)
      • 5.2 Mécanismes de protection dans le système ESOPE (p.229)
      • 5.221 Utilisation des segments (p.230)
      • 5.222 Protection de la mémoire virtuelle d'un usager (p.230)
      • 5.223 Pouvoir des processus (p.231)
      • 5.224 Changement du pouvoir d'un processus de l'usager (p.232)
      • 5.3 Mécanisme de protection dans le système MULTICS (p.234)
      • 5.31 Introduction (p.234)
      • 5.32 Définition et portée des anneaux (p.234)
      • 5.33 Changement du pouvoir d'un processus. Nécessité du guichet (p.236)
      • 5.331 Augmentation du pouvoir (p.236)
      • 5.332 Conservation du pouvoir (p.237)
      • 5.333 Diminution de pouvoir (p.238)
      • 5.34 Implantation câblée des anneaux de protection (p.239)
      • 5.341 Le descripteur de segment (p.239)
      • 5.343 Appel et retour de procédure (p.243)
      • 5.3431 Instruction CALL. Passation des paramètres (p.244)
      • 5.3432 Instruction RETURN. Détermination de l'anneau de retour (p.246)
      • 5.35 Conclusions (p.249)
      • EXERCICES (p.249)
      • Mesures et modèles de systèmes (p.251)
      • 6.1 Introduction (p.251)
      • 6.11 Intérêt et importance des études quantitatives (p.251)
      • 6.12 Méthodes de mesure et d'évaluation (p.253)
      • 6.2 Les modèles de système (p.253)
      • 6.21 Les objectifs des modèles (p.253)
      • 6.22 Exemples de modèles analytiques (p.254)
      • 6.221 Echange de pages avec un disque à têtes fixes (p.254)
      • 6.222 Un modèle d'allocation de processeur (p.257)
      • 6.223 Un modèle de système conversationnel (p.262)
      • 6.23 Exemples de simulation (p.265)
      • 6.3 Mesures sur les systèmes réels (p.269)
      • 6.31 Nature des mesures (p.269)
      • 6.32 Méthodologie des mesures (p.269)
      • 6.33 Mécanismes de mesure (p.270)
      • 6.331 Généralités (p.270)
      • 6.332 Appareillage de mesure externe (p.270)
      • 6.333 Mécanismes câblés internes au système (p.272)
      • 6.334 Mesures programmées (p.273)
      • 6.34 Utilisation des mesures (p.274)
      • 6.341 Evaluation des systèmes (p.274)
      • 6.342 Amélioration des performances (p.275)
    • EXERCICES (p.276)
    • CHAPITRE 7. Méthodologie de conception et de réalisation (p.279)
      • 7.1 Introduction (p.279)
      • 7.2 Validité des programmes (p.281)
      • 7.3 Programmation structurée (p.284)
      • 7.31 Programmes séquentiels (p.285)
      • 7.311 Modules (p.285)
      • 7.312 Niveaux (p.287)
      • 7.32 Programmes parallèles (p.289)
      • 7.4 Outils d'écriture et de mise au point (p.290)
      • 7.41 Langages d'écriture de systèmes (p.290)
      • 7.411 Caractéristiques des langages (p.291)
      • 7.412 Classification des langages (p.292)
      • 7.42 Outils de mise au point (p.293)
      • 7.43 Technologie de la programmation (p.295)
      • 7.5 Exemple : réalisation d'un système d'entrée-sortie (p.296)
      • 7.51 Spécification du module d'entrée-sortie (p.296)
      • 7.511 La machine de base (p.297)
      • 7.512 Conséquence de l'extension souhaitée (p.297)
      • 7.513 L'interface du module d'entrée-sortie (p.298)
      • 7.514 Choix laissés au réalisateur du module d'entrée-sortie (p.299)
      • 7.52 Conception du module d'entrée-sortie (p.300)
      • 7.521 Décomposition (p.300)
      • 7.522 Interfaces (p.301)
      • 7.523 Conception des différents modules (p.302)
      • 7.524 Récapitulation (p.306)
    • EXERCICES (p.308)
    • SOLUTION DES EXERCICES (p.309)
    • BIBLIOGRAPHIE (p.349)
    • INDEX (p.357)
  • Dernière image
Méthodologie de conception et de réalisation 289

Exemple. Un programmeur désirant construire un programme d'analyse syntaxique utilisant des piles pourra commencer par étendre son langage en définissant des instructions de gestion de pile comme dans l’exemple du 7.311. Il devra réaliser ces instructions avec les outils dont il dispose.

7.32 PROGRAMMES PARALLÈLES

Une des difficultés des méthodes exposées ci-dessus réside dans la part d’arbitraire de la décomposition en modules. Lorsqu’on admet la possibilité d’exécution parallèle de certaines phases de travail, on introduit un degré de liberté supplémentaire car la décomposition en processus est elle aussi, Hans une certaine mesure, arbitraire. La conception et la réalisation sont donc beaucoup plus complexes. Il semble que l’on puisse procéder de la façon suivante : au départ, on fixe la décomposition en processus du système global, ainsi que les primitives de synchronisation que l’on va implanter. On emploie pour cela une approche par niveaux : les niveaux inférieurs doivent fournir des outils adéquats pour la programmation des autres niveaux. On commence ainsi par programmer le niveau le plus bas où l’on implante la gestion des processus et des sémaphores ; puis on ajoute à chaque niveau un ou plusieurs processus de gestion de nouvelles ressources réelles ou virtuelles. On retrouve ainsi les systèmes à « noyau extensible » [Brinch Hansen, 70], dans lesquels le réalisateur du système ne fournit qu’un certain nombre d’outils (synchronisation, gestion des fichiers, ...) qui correspondent aux niveaux inférieurs d’un système complet. L’utilisateur peut compléter le système de façon adaptée à ses besoins propres.

Exemple. Donnons pour terminer un exemple de décomposition en niveaux d'un système réel : le système THE [Dijkstra, 68] ; on rappelle qu’il s’agit d’un système multiprogrammé à nombre fixe de processus, utilisant le sémaphore comme mécanisme de synchronisation.

Niveau 0. On désire tout d’abord multiprogrammer l'unité centrale entre plusieurs processus ; on implante donc au niveau le plus bas les primitives P et V qui réalisent l’allocation de l’unité centrale. Pour assurer une répartition équitable du temps d'unité centrale, on ajoute la programmation d’une horloge permettant de changer périodiquement le processus élu. A partir du niveau 1, le nombre de processeurs réels est sans importance. Corrélativement, si on change le nombre de processeurs, on n’aura à modifier que le niveau 0.

Niveau 1. Au niveau I, on introduit le processus de gestion du tambour, qui transfère des pages du tambour vers la mémoire centrale à la demande des processus de niveau supérieur. Ce processus est un processus cyclique ; pendant l’exécution d’une entrée-sortie, il est bloqué derrière un sémaphore (le système d’interruption de la machine ELX8 sur laquelle est implanté le THE est très proche du sémaphore). Au-dessus du niveau 1, on dispose donc d’une mémoire virtuelle.

Niveau 2. Au niveau 2 se trouve le processus de gestion de la console de 1 opérateur (cf. 7.5). Ce processus, chargé de gérer les conversations entre l’opérateur et les divers processus de niveaux supérieurs, est placé au niveau 2 pour qu il puisse utiliser la




Le texte affiché peut comporter un certain nombre d'erreurs. En effet, le mode texte de ce document a été généré de façon automatique par un programme de reconnaissance optique de caractères (OCR). Le taux de reconnaissance estimé pour cette page est de 99,32 %.

La langue de reconnaissance de l'OCR est le Français.