Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider bf36320b rédigé par E214194U's avatar E214194U
Parcourir les fichiers

f

parent 1a077e62
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
package main
import "sort"
// Ordonnanceur à temps partagé avec politique du tourniquet (Round Robin)
// le quantum vaudra 5 unités de temps
var quantum int = 0
......@@ -10,21 +8,14 @@ func rr(newTasks []task) (currentTask *task) {
for i := range newTasks {
fcfsQueue = append(fcfsQueue, &(newTasks[i]))
}
sort.Slice(fcfsQueue, func(i, j int) bool {
return fcfsQueue[i].Duration > fcfsQueue[j].Duration
})
for i := range fcfsQueue {
if fcfsQueue[i].Duration <= 0 {
fcfsQueue = fcfsQueue[:i]
}
}
// fmt.Println("---------")
// for i := range fcfsQueue {
// fmt.Println(fcfsQueue[i])
// }
if fcfsCurrentTask == nil || quantum > 4 || fcfsCurrentTask.Duration <= 0 {
if fcfsCurrentTask != nil && fcfsCurrentTask.Duration > 0 {
fcfsQueue = append(fcfsQueue, fcfsCurrentTask)
}
if len(fcfsQueue) > 0 {
fcfsCurrentTask = fcfsQueue[0]
fcfsQueue = fcfsQueue[1:]
} else {
fcfsCurrentTask = nil
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter