Salut tt le monde
comment le systeme d'exploitation peut connaitre le temps d'execution d'un processus donnée pour le placer dans la file d'attente selon le protocole "Short Job First".
merci.
Salut tt le monde
comment le systeme d'exploitation peut connaitre le temps d'execution d'un processus donnée pour le placer dans la file d'attente selon le protocole "Short Job First".
merci.
Bonjour,
Plusieurs possibilités.
La première est de demander à l'utilisateur. le problème est que dans ce cas, les utilisateurs ont tendances à mentir au sujet de la durée prévue de leur processus, et à grandement le sous-estimer, afin qu'il soit exécuté plus vite.
Cette solution, quoi qu'envisageable, est donc à déconseiller.
La seconde est d'utiliser des heuristiques. C'est à dire que plus un processus dure depuis longtemps, plus la probabilité qu'il s'exécute pendant encore longtemps est grande.
Attention : si on ne fait pas attention et qu'on applique ce processus à l'extrème, il y a un grand risque de famines poru les processus les plus longs.
C'est à dire que s'il arrive en continue des nouvelles tâches courtes, alors les processus les plus longs ne se verront jamais accorder de temps sur le processeur, et ne pourront donc jamais s'exécuter.
C'est pourquoi la poliotique de Short Job First est rarement appliquée toute seule, et est souvent croisée avec d'autres politiques, comme par exemple le fait d'accorder un quantum de temps à une tâche si celle-ci ne s'est pas exécutée depuis plus de X quantums.
Il me semble me souvenir qu'on peut démontrer que dans ce cas, la famine n'est plus possible, mais c'est à vérifier.
Partager