From 9a5ecc3f5282dfc75764548ce13cde70cf7c49c0 Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Mon, 23 May 2016 21:08:48 +0200 Subject: [PATCH] Correzione dell'algoritmo di gestione delle risorse --- compiling_error.txt | 3 +++ index.html | 56 ++++++++++++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 compiling_error.txt diff --git a/compiling_error.txt b/compiling_error.txt new file mode 100644 index 0000000..98a5cd9 --- /dev/null +++ b/compiling_error.txt @@ -0,0 +1,3 @@ +/usr/bin/ld:/home/claudio/Git/html-scheduler/index.html: file format not recognized; treating as linker script +/usr/bin/ld:/home/claudio/Git/html-scheduler/index.html:1: syntax error +collect2: error: ld returned 1 exit status diff --git a/index.html b/index.html index 16b838a..7244813 100644 --- a/index.html +++ b/index.html @@ -69,7 +69,7 @@ Processo.prototype.rilasciaRisorsaDaIndice = function(index){ risorse.varie[this.risorseVarie[index].numero]=-1; this.risorseVarie.allocata=false; - this.log("rilasciata risorsa "); + this.log("rilasciata risorsa "+this.risorseVarie[index].numero+""); }; Processo.prototype.rilasciaRisorsaDaNumero = function(index){ for(var tmp=0; iallocata risorsa "); + this.log("allocata risorsa "+this.risorseVarie[j].numero+""); return true; } return false; @@ -163,16 +163,34 @@ processiPronti.push(processiDisponibili.splice(i, 1)[0]); } } - if(!processiPronti.length&&processiDisponibili.length){ //se non ci sono pronti assegna tutte le risorse necessarie al processo più vecchio - processiDisponibili[0].log("Forzatura dello stato a pronto"); - for(var j=0; jForzatura dello stato a pronto"); + var j; + for(j=0; jLa risorsa "+ + processiDisponibili[i].risorseVarie[j].numero+" è mantenuta da un processo pronto"); + break; + } + if(processi[risorse.varie[processiDisponibili[i].risorseVarie[j].numero]]==processiDisponibili[i]) + continue; + processi[risorse.varie[processiDisponibili[i].risorseVarie[j].numero]] + .rilasciaRisorsaDaNumero(processiDisponibili[i].risorseVarie[j].numero); + processiDisponibili[i].ottieniRisorsaDaIndiceOFallisci(j); + } + } + if(j==processiDisponibili[i].risorseVarie.length){ + processiDisponibili[i].cambiaStato("pronto"); + processiPronti.push(processiDisponibili.splice(i, 1)[0]); + break; } } - processiDisponibili[0].cambiaStato("pronto"); - processiPronti.push(processiDisponibili.splice(0, 1)[0]); + if(i==processiDisponibili.length){ + scriviLog("Tutti i tentativi di forzatura dello stato non sono andati a buon fine.") + } } } function allocaSegmento(proc){ @@ -596,14 +614,14 @@ - -
-

Seleziona il processo:

- -
+
+

+ Seleziona il processo: + +

@@ -637,7 +655,7 @@
PID: