2016-12-06 1 views
0

J'ai fait des recherches sur la planification des processus dans le cadre de mes études. Pour ce faire, je me suis référé à l'information suivante:Quand un processus acquiert-il les ressources nécessaires?

Selon Abraham Silberschatz, Greg Gagne, et Peter Baer Galvin dans; "Operating System Concepts, Ninth Edition ", Chapter 3;

un processus est dans un état prêt lorsque:

Le processus a toutes les ressources disponibles dont il a besoin pour fonctionner, mais le processeur ne fonctionne pas actuellement sur les instructions de ce processus.

Cependant, j'ai été informé de conférence note que:

Lorsque le planificateur à court terme sélectionne le processus suivant [de l'état prêt et avant d'utiliser le CPU], le Dispatcher de routine donne il contrôle de la CPU. Avant que le processus puisse réellement être expédié, il doit passer par une phase de conflit. (Jusqu'ici tout va bien, cependant ça continue ...)

"Un aspect de cette phase de conflit est l'acquisition des ressources nécessaires au nouveau processus à exécuter".

Si le processus est sélectionné à partir d'un état prêt par la routine répartiteur et la définition de l'état prêt est que « Le processus a toutes les ressources disponibles dont il a besoin pour exécuter », puis:

pourquoi est-il nécessaire pour « Un aspect de la phase de conflits comme l'acquisition des ressources »?

À quel moment exactement un processus acquiert-il les ressources nécessaires?

Répondre

0

Tout ceci dépend du système. Tout d'abord, pour comprendre la procédure, il y a un SCHEDULER. Certains livres d'OS parlent des ordonnanceurs à long, moyen et court terme, mais cette division est spécifique au système.

Du point de vue général, un procédé ne comporte que trois états: (1) en marche; (2) prêt à courir et (3) pas prêt à courir. Chaque système d'exploitation sur la planète va avoir plus d'états que j'ai confondus aveC# 3. Cependant, ces états supplémentaires sont entièrement spécifiques au système.

Je trouve cette définition confusion:

un processus est dans un état prêt lorsque:

Le processus a toutes les ressources disponibles dont il a besoin pour fonctionner, mais le processeur ne fonctionne pas actuellement les instructions de ce processus.

La ressource principale qu'un processus doit exécuter est la CPU. Ainsi, si un processus a toutes les ressources dont il a besoin pour fonctionner, il est en cours d'exécution. Je trouve également confondant l'utilisation du terme «ressources» pour décrire un processus d'attente.Du point de vue du système, les seules ressources qu'un processus doit exécuter sont (1) l'unité centrale et (2) la mémoire physique nécessaire pour exécuter les instructions en cours. En dehors de cela, les processus sont normalement dans un état "non prêt à être exécuté" car ils attendent que les événements se produisent; pas de ressources pour devenir disponible. Cela ne veut pas dire que certains systèmes peuvent avoir d'autres ressources nécessaires pour fonctionner, mais cela est spécifique au système. Le problème que vous rencontrez est que la description que vous donnez (ou que vous donnez) est une description grossière de la théorie et de la mise en œuvre. Un système d'exploitation peut ne pas avoir de phase de conflit du tout que vous décrivez. D'un autre côté, un système d'exploitation spécifique peut être implémenté comme vous le décrivez. En bref, les gens semblent rendre la théorie de haut niveau plus compliquée pour vous que nécessaire et vous obtenez une dose déroutante de spécificités du système d'exploitation sans égard à un système d'exploitation spécifique.