« Les systèmes d'exploitation/La multiprogrammation » : différence entre les versions
Contenu supprimé Contenu ajouté
que j'aie / qu'il/elle/on ait , accents |
|||
Ligne 1 :
Les tout premiers OS datent des années 1950, et ceux-ci ont commencé à devenir de plus en plus utilisés à partir des années 60-70. Évidemment, ces OS étaient relativement simples. Notamment, ceux-ci ne pouvaient pas exécuter plusieurs programmes en même temps. Il était ainsi impossible de démarrer à la fois un navigateur internet, tout en écoutant de la musique. Dit autrement, ces systèmes d'exploitation ne permettaient de ne démarrer qu'un seul programme à la fois. On appelait ces OS des OS '''mono-programmés''' ou '''mono-tâche'''.
Mais cette solution avait un problème. Lors de l'accès à un périphérique, le processeur doit attendre que le transfert avec le périphérique
Les OS actuels vont plus loin et permettent d’exécuter plusieurs programmes "simultanément", même si aucun programme n'accède aux périphériques. Les OS de ce genre sont des '''OS multi-tâche'''. L'apparition de la multiprogrammation a posé de nombreux problèmes, notamment au niveau du partage de la mémoire et du processeur. Dans ce qui va suivre, nous allons voir comment ces OS gèrent la mémoire et les commutations entre programmes (appelés processus sur ces OS). Pour manipuler plusieurs processus, l'OS doit mémoriser des informations sur eux. Ces informations sont stockées dans ce qu'on appelle un Process Control Block, une portion de la mémoire.
Ligne 21 :
[[File:Etats d'un processus.png|centre|vignette|upright=2.0|États d'un processus]]
Suivant le système d'exploitation, d'autres états sont possibles, comme un état terminé (le programme a fini de
Les processus en état prêt sont placés dans une '''file d'attente''', le nombre de programme dans cette liste a une limite fixée par le système d'exploitation. Lorsque l'OS décide de switcher de processus, il doit choisir un processus dans la file d'attente et le lancer sur le processeur. Pour comprendre comment faire, il faut se souvenir qu'un processus manipule un ensemble de registres processeur, aussi appelé '''contexte d'exécution du processus'''. Pour qu'un processus puisse reprendre où il en était, il faut que son contexte d’exécution redevienne ce qu'il était. Pour cela, ce contexte d’exécution est sauvegardé quand il est interrompu et restauré lors de l’ordonnancement. On appelle cela une '''commutation de contexte'''. Avec cette méthode de sauvegarde du contexte, le système d'exploitation doit fatalement mémoriser tous les contextes des processus dans une liste appelée '''table des processus''', elle-même très liée à la file d'attente.
Ligne 29 :
===Ordonnancement collaboratif===
Tout d'abord, on va commencer par un
* Avec l'algorithme First Input First Output, les programmes à exécuter sont ajoutés dans la file d'attente quand on les démarre. Ceux-ci sont alors stockés dans la file d'attente dans l'ordre dans lesquels on les a fait démarrer. L'ordonnanceur décide alors d’exécuter le programme entré dans la file d'attente avant tous les autres en premier. En clair, les programmes sont exécutés dans l'ordre dans lequel ils sont rentrés dans la file d'attente.
|