Nous pouvons envisager l'évolution des systèmes d'exploitation sous deux aspects :
Possibilités de modification d'un programme en cours d'exécution.
Un système transactionnel est capable de gérer un vaste ensemble d'informations structurées en base de données.
Un grand nombre de points d'accès, terminaux ou micro-ordinateurs ont accès simultanément à la consultation, et à la modification des données.
L'exécution d'un ordre ou transaction doit préserver la cohérence de la base, ce qui entraine d'énormes contraintes d'intégrité pour gérer les accès simultanés.
Dans le cas d'un time-sharing, le temps du processeur est partagé entre les différentes applications.
Les systèmes multi-utilisateurs permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des applications différentes ou bien similaires.
Un programme gestionnaire (dispatcher) partage le temps disponible entre les différents utilisateurs.
Nous devons savoir que 90% du temps passé face à un terminal est alloué aux réflexion indispensable entre les différentes interventions, ce qui nous laisse seulement 10% d'utilisateurs réellement actifs en même temps.
Le travail du dispatcher serait l'allocation des tranches de temps de 50 ms à chacun, notre temps d'attente moyen serait de 0,5s environ pour ces dix utilisateurs actifs sur la centaine d'utilisateurs connectés sur le système.
La notion de système multitàche dépend aussi de ce partage du temps du processeur entre les différentes applications, rotation tellement rapide entre les processus que nous avons l'impression que les différentes applications sont exécutées en même temps (car le processeur ne peut en réalité exécuter qu'une et une seule instruction à la fois).
Dans un système multitàche coopératif, le temps est réparti de manière identique entre les différents processus.
Un système multitàche préemptif attribue les tranches de temps du processeur selon un système de priorités des processus.
Dans le cas d'un système d'exploitation monolithique, nous sommes face à un seul programme divisé en une multitude de procédures. Tout est visible, et il est impossible par exemple de cacher à l'utilisateur les procédures dont il n'a pas besoin.
Le système est organisé autour d'une table qui contient des pointeurs vers les différentes procédures. N'importe qui ou n'importe quelle procédure peut faire appel à une procédure.
Nous pouvons quand-même rencontrer une légère structure, divisant les programmes de la mémoire principale (main memory) en deux grandes catégories :
Dans ce système, nous pouvons constater une hiérarchie entre les différentes couches : chaque couche n'accède qu'à la couche directement inférieure.
THE (Technische Hogeschool Eindhoven, aux Pays-Bas), développé par E.W. Dijkstra et ses élèves en 1968, est le premier système à couches. Il s'agissait d'un système de traitements par lots (batch) destinné à un ordinateur allemand, l'Electrologica x8 piloté depuis une console composée d'interrupteurs.
| Structure du système THE | |
|---|---|
| 5 | Opérateur |
| 4 | Programmes utilisateur |
| 3 | Gestion I/O (entrées/sorties) |
| 2 | Communications entre opérateur et process |
| 1 | Gestion de la mémoire |
| 0 | Allocation du processeur et multiprogrammation |
Malgré cette structure en couches, THE ne permettait pas de dissocier le programme, l'exemple suivant (MULTIX) permet la création de sous-systèmes pour les utilisateurs.
Une autre évolution du système en couches fut MULTIX. Le principe reste basé sur une hiérarchie, mais en anneaux concentriques et non plus en couches. Plus on se rapprochait de l'anneau du centre, plus de droits étaient accordés. Quand une procédure d'un anneau extérieur demandait une procédure située dans l'anneau intérieur, il le demandait aussi via une sorte d'appel système, une instruction TRAP. Une programme peut donc résider dans une couche n, et être exécuté avec des droits restreints dans la couche n+1.
Les machines virtuelles peuvent être considérées comme des évolutions des systèmes à couches : chaque couche représente une machine virtuelle qui utilise les services de la couche directement inférieure, et fournit des services à la couche directement supérieure.
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
12 mots clés dont 0 définis manuellement (plus d'information...).
Avertissement
Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Historique des versions(version 29/01/10)
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)