ID?th> | TME | TT | ";
+ document.getElementById('current-batch').innerHTML = "ID | SIZE | TME | TT |
";
+
- console.log("inicio");
+ // PAGINACION SIMPLE - ASIGNACION Y ACUMULACION DE MARCOS DE MEMORIA--------------------------
+ memoria = 0; //cuantos marcos estan ocupados
+ procesosMemoria = 0; //cuantos procesos estan en memoria
+ let limitePag = 1;
+
+ //Acumulacion de marcos proceso actual
+ if((memoria + Math.ceil(aux_process.tamano/5)) <= 40){
+ memoria += Math.ceil(aux_process.tamano/5);
+ for (limitePag; limitePag <= memoria; limitePag++) {
+ //console.log("cuadro pag-" + limitePag);
+
+ // Obtén todos los elementos con la clase especificada
+ let elementos = document.getElementsByClassName("cuadro pag-" + limitePag);
+
+ // Itera sobre la colección y aplica el estilo a cada elemento
+ for (let i = 0; i < elementos.length; i++) {
+ elementos[i].style.backgroundColor = "red";
+ elementos[i].innerHTML = aux_process.id;
+ }
+ }
+ procesosMemoria++;
+ //console.log(aux_process.id + " " + Math.ceil(aux_process.tamano/5))
+ }
+
+ //Acumulacion de marcos procesos bloqueados
for(let i = 0; i < blockedBatch.length; i++){
- let paginas = 0;
- paginas = blockedBatch[i].tamano/5;
- console.log(paginas);
+ if((memoria + Math.ceil(blockedBatch[i].tamano/5)) <= 40){
+ memoria += Math.ceil(blockedBatch[i].tamano/5);
+ for (limitePag; limitePag <= memoria; limitePag++) {
+ //console.log("cuadro pag-" + limitePag);
+
+ // Obtén todos los elementos con la clase especificada
+ let elementos = document.getElementsByClassName("cuadro pag-" + limitePag);
+
+ // Itera sobre la colección y aplica el estilo a cada elemento
+ for (let j = 0; j < elementos.length; j++) {
+ elementos[j].style.backgroundColor = "#4B0082";
+ elementos[j].innerHTML = blockedBatch[i].id;
+ }
+ }
+ procesosMemoria++;
+ //console.log(blockedBatch[i].id + " " + Math.ceil(blockedBatch[i].tamano/5))
+ }
+ else{
+ break;
+ }
+ }
+
+ for(let i = 0; i < processCopy.length; i++){
+ if((memoria + Math.ceil(processCopy[i].tamano/5)) <= 40){
+ memoria += Math.ceil(processCopy[i].tamano/5);
+ for (limitePag; limitePag <= memoria; limitePag++) {
+ //console.log("cuadro pag-" + limitePag);
+
+ // Obtén todos los elementos con la clase especificada
+ let elementos = document.getElementsByClassName("cuadro pag-" + limitePag);
+
+ // Itera sobre la colección y aplica el estilo a cada elemento
+ for (let j = 0; j < elementos.length; j++) {
+ elementos[j].style.backgroundColor = "blue";
+ elementos[j].innerHTML = processCopy[i].id;
+ }
+ }
+ procesosMemoria++;
+ //console.log(processCopy[i].id + " " + Math.ceil(processCopy[i].tamano/5))
+ }
+ else{
+ break;
+ }
}
- console.log("fin");
- limit = processCopy.length > 5 ? 5-1-blockedBatch.length : processCopy.length+1+blockedBatch.length <=5 ? processCopy.length : 5-1-blockedBatch.length;
+ console.log("PROCESOS EN MEMORIA: " + procesosMemoria + ", MARCOS USADOS: " + memoria)
+ //----------------------------
- //console.log(limit)
- //console.log(processCopy)
+ limit = processCopy.length > procesosMemoria ? procesosMemoria-1-blockedBatch.length : processCopy.length+1+blockedBatch.length <=procesosMemoria ? processCopy.length : procesosMemoria-1-blockedBatch.length;
for (let j = 0; j < limit; j++) {
// TIEMPO DE LLEGADA
if(processCopy[j].tl == -1){
processCopy[j].tl = globalTime;
}
- document.getElementById('current-batch').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
+ document.getElementById('current-batch').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tamano + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
}
//actualiza procesos nuevos
- document.getElementById('new-process').innerHTML = "ID | TME | TT |
";
+ document.getElementById('new-process').innerHTML = "ID | SIZE | TME | TT |
";
for (let j = limit; j < processCopy.length; j++) {
- document.getElementById('new-process').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
+ document.getElementById('new-process').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tamano + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
}
// funcion de espera de tecla cada que entra un proceso a ejecutarse
await delayWithKeyPress(tiempo_restante * 1000, currentProcess, aux_process).then(newCurrentProcess => {
currentProcess = newCurrentProcess; // Actualizar currentProcess
});
+
+ //LIEMPIEZA DE CUADRICULA
+ for (let i = 1; i <= 40; i++) { //mandarlo al inicio de la funcio
+ let elementos = document.getElementsByClassName("cuadro pag-" + i);
+
+ // Itera sobre la colección y aplica el estilo a cada elemento
+ for (let i = 0; i < elementos.length; i++) {
+ elementos[i].style.backgroundColor = "#080303";
+ elementos[i].innerHTML = "";
+ }
+ }
+
+ console.log("LIMPIEZA")
}
//termina contador global
@@ -270,21 +345,21 @@ function Tiempos() {
}
//actualiza los procesos listos
- document.getElementById('current-batch').innerHTML = "ID | TME | TT |
";
- limit = processCopy.length > 5 ? 5-1-blockedBatch.length : processCopy.length+1+blockedBatch.length <=5 ? processCopy.length : 5-1-blockedBatch.length;
+ document.getElementById('current-batch').innerHTML = "ID | SIZE | TME | TT |
";
+ limit = processCopy.length > procesosMemoria ? procesosMemoria-1-blockedBatch.length : processCopy.length+1+blockedBatch.length <=procesosMemoria ? processCopy.length : procesosMemoria-1-blockedBatch.length;
for (let j = 0; j < limit; j++) {
// TIEMPO DE LLEGADA
if(processCopy[j].tl == -1){
processCopy[j].tl = globalTime;
}
- document.getElementById('current-batch').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
+ document.getElementById('current-batch').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tamano + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
}
//actualiza procesos nuevos
- document.getElementById('new-process').innerHTML = "ID | TME | TT |
"
+ document.getElementById('new-process').innerHTML = "ID | SIZE | TME | TT |
"
for (let j = limit; j < processCopy.length; j++) {
- document.getElementById('new-process').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
+ document.getElementById('new-process').innerHTML += " " + processCopy[j].id + " | " + processCopy[j].tamano + " | " + processCopy[j].tme + " | " + processCopy[j].tt + " |
";
}
}
}