2017-04-08 5 views
0

Bonjour, je suis étudiant de premier cycle de programmation informatiqueQu'est-ce qui est prioritaire sur MLFQ?

Je prends fonctionnement classe système et j'ai question sur MLFQ ordonnancement

Supposons que MLFQ a deux files d'attente prêtes, et ils utilisent à la fois la méthode de programmation ronde qui de temps quantique est de 3 secondes et 5 secondes chacun

Bien sûr, la priorité de Q1 est plus élevée. Supposons ensuite qu'il n'y a pas de processus prêt dans Q1, donc le processus dans Q2 peut être alloué sur CPU.

Cependant, un processus qui a terminé IO lié au rendement Q1 éclatement et processus CPU appartenant à Q2 ne se fait pas (seulement 3 secondes Déplacé)

Dans cette situation, Qu'arrive t-il?

Est-ce que le processus dans Q1 préempte le CPU en ce moment?

Ou processus maintenant dans la CPU (qui vient de Q2) est alloué sur CPU jusqu'à ce que le temps de celui-ci (encore 2 secondes nécessaires) est atteint?

Merci d'avoir lu.

Répondre

0

Le processus qui arrive après avoir terminé I/O burst dans Q1, préempte le processus dans Q2. Je cite les principes Systèmes d'exploitation par Galvin, Gagne et Silberchatz:

Un processus qui arrive au 1er trimestre, va préempter un processus au T2. Un processus dans Q1 sera à son tour préempté par un processus arrivant dans Q0 (si Q0 existe).

SO, Tout processus qui arrive dans un higher priority Q, va préempter le processus d'une priorité inférieure Q, même si le quantum du processus inférieur n'est pas atteint. Un processus obtient le CPU tant que le ready Q de priorité supérieure est vide.