Gestion des processus par le systeme d'exploitation ... [Résolu] - Divers - Programmation
Marsh Posté le 01-05-2007 à 16:58:47
http://en.wikipedia.org/wiki/Sched [...] mputing%29
http://en.wikipedia.org/wiki/I/O_scheduling
Marsh Posté le 01-05-2007 à 17:10:04
Ok je vais lire ça.
Est ce qu'un système multitâche est un systeme qui marche toujours avec un temps partagé ? (multiprogrammation)
...
Marsh Posté le 01-05-2007 à 17:32:05
oui et non, le terme de "temps partagé" (time-sharing) n'est plus utilisé depuis les années 80 mais les systèmes de multitasking préemptif modernes (la majorité des unix incl. Linux et les divers BSD, OSX, Windows NT/2000/XP) fonctionnent sur les mêmes principes.
Voir computer multitasking pour le multitasking en général et preemption pour le multitasking préemptif.
Ce sont les technos les plus utilisées, mais après on a aussi des OS "temps réels", notablement plus complexes
edit: j'ai rien compris à ton edit, prière de le reformuler dans un langage compréhensible.
Marsh Posté le 01-05-2007 à 18:00:09
masklinn a écrit : edit: j'ai rien compris à ton edit, prière de le reformuler dans un langage compréhensible. |
Ok.
Dans le cadre d'un système d'exploitation multitâche;
On a ce qu'on appelle une commutation de contexte, qui pour ne pas perdre les informations sur un processus avant de mettre ce dernier en état prés pour executé un autre processus, il fait la sauvegarde de l'état de ce processus.
Ce contexte, je l'imagine comme étant une sort de structure contenant l'état des Flages du processeur, les valeurs des registres, l'état du processus, La priorité du processus....etc
(edit: PS: il appellent ça "le PCB" sur wiki)
Je veux savoir qui exactement s'occupe de sauvegarder tout ça, et où ?
Maintenant quand un certain processus qui est on cours d'exécution fait un instruction d'Enter/Sortie, le processus va passé à un état Bloqué, et pendant ce temps y a un autre processus qui s'exécute pendant un quantum de temps (par exemple)...
Est ce que quand l'entrer/sortie du 1er processus est terminer il reprend sont exécution avec la même priorité qu'il avais avant ( Vu qu'il étais en état bloqué donc n'étais pas utilisé par le CPU pendant un bon moment contrairement au autre processus ) ?
Ou bien ça n'a aucune relation avec la définition de la priorité d'un processus ?
Marsh Posté le 01-05-2007 à 18:36:17
bad___day a écrit : Je veux savoir qui exactement s'occupe de sauvegarder tout ça, et où ? |
C''est l'OS qui s'en occupe puisque c'est lui qui implémente toute la stratégie de multitasking (enfin plus précisément le scheduler de l'OS)
Et c'est stocké en ram (sauf si l'OS supporte la mémoire virtuelle, ça peut se faire swapper sur un HDD), il n'y a pas d'autre endroit "physique" où ça pourrait être stocké
(par contre en terme d'endroit logique, c'est habituellement stocké dans un endroit non accessible par l'utilisateur ou les programmes userland)
bad___day a écrit : Est ce que quand l'entrer/sortie du 1er processus est terminer il reprend sont exécution avec la même priorité qu'il avais avant ( Vu qu'il étais en état bloqué dans n'étais pas utilisé par le CPU pendant un bon moment contrairement au autre processus ) ? |
Ca dépend de la stratégie du scheduler, et de la gestion ou non des interrupts
Ca te dirait pas de lire les liens fournis dans les articles de la wikipedia? Non parce qu'en fait là tu perds ton temps, tu pourrais avoir bien plus d'infos en allant chercher de vraies sources plutôt qu'en posant ce genre de questions
Marsh Posté le 01-05-2007 à 16:34:02
Salut,
Je voudrais savoir, en bref ce qui ce passe (dans l'organisation et l'architecture interne des processus) quand on a par exemple 2 processus en cours d'exécution... (en temps partagé) ?
Comment est ce que le système d'exploitation gère les processus lorsque l'un des processus fait une entrer/sortie ?
Merci.
Message édité par bad___day le 01-05-2007 à 18:54:45