2016-05-04 15:46:43 +00:00
|
|
|
<!DOCTYPE HTML>
|
|
|
|
<html lang="it">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="author" content="Claudio Maggioni, Fabio Brambilla, Pamela Dardano, Federico Mainetti, Ionel Mihali"/>
|
|
|
|
<meta name="description" content="Simulazione di uno scheduler in HTML, Javascript e (purtroppo) CSS."/>
|
|
|
|
</head>
|
2016-05-05 10:47:36 +00:00
|
|
|
<script>
|
|
|
|
var lungIstante=2000 //in millis
|
|
|
|
var risorse = {
|
|
|
|
file: new Array(5),
|
|
|
|
stampante: 0,
|
|
|
|
io: new Array(6),
|
|
|
|
memoria: new Array(100),
|
|
|
|
}
|
|
|
|
var processo = {
|
|
|
|
//template
|
|
|
|
pid: 1,
|
|
|
|
tempoDiCompletamento: 0,
|
|
|
|
quantitaMemoria: 0
|
|
|
|
}
|
|
|
|
function generaProcesso(){
|
|
|
|
var nuovo=processo;
|
|
|
|
processo.tempoDiCompletamento=Math.floor(Math.random()*10)+3;
|
|
|
|
processo.quantitaMemoria=Math.floor(Math.random()*10)+3;
|
|
|
|
processo.pid++;
|
|
|
|
return nuovo;
|
|
|
|
}
|
|
|
|
function lanciaProcesso(){
|
|
|
|
var nuovo=generaProcesso();
|
|
|
|
var j=0;
|
|
|
|
var inizioMemoriaLibera=-1;
|
|
|
|
|
|
|
|
//ricerca memoria libera tramite first-fit
|
|
|
|
for(var i=0; i<100; i++){
|
|
|
|
if(risorse.memoria[i]!=0){
|
|
|
|
j=0;
|
|
|
|
inizioMemoriaLibera=-1;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
j++;
|
|
|
|
if(inizioMemoriaLibera==-1){
|
|
|
|
inizioMemoriaLibera=i;
|
|
|
|
}
|
|
|
|
if(j==nuovo.quantitaMemoria){
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//scrivo su memoria il processo
|
|
|
|
for(var i=j; i<j+nuovo.quantitaMemoria; i++){
|
|
|
|
risorse.memoria[i]=nuovo.pid;
|
|
|
|
}
|
|
|
|
|
|
|
|
window.setTimeout(function(){
|
|
|
|
//libero il processo dalla memoria
|
|
|
|
for
|
|
|
|
},)
|
|
|
|
}
|
|
|
|
function main(){
|
|
|
|
//inizializzazione memoria
|
|
|
|
for(var i=0; i<100; i++){
|
|
|
|
processo.memoria[i]=0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
2016-05-05 10:49:50 +00:00
|
|
|
<style type="text/css">
|
|
|
|
|
|
|
|
</style>
|
2016-05-04 15:46:43 +00:00
|
|
|
<body>
|
2016-05-05 10:49:50 +00:00
|
|
|
<div style="background-color:yellow; color:black; padding:20px;">
|
|
|
|
<h2>Scheduler</h2>
|
|
|
|
<p>In informatica lo scheduler (da to schedule letteralmente "mettere in lista", ovvero "pianificare") è un componente
|
|
|
|
di un sistema operativo ovvero un programma che implementa un algoritmo di scheduling il quale, dato un insieme di richieste
|
|
|
|
di accesso ad una risorsa (tipicamente l'accesso al processore da parte di un processo da eseguire), stabilisce un ordinamento
|
|
|
|
temporale per l'esecuzione di tali richieste, privilegiando quelle che rispettano determinati parametri secondo una certa politica
|
|
|
|
di scheduling, in modo da ottimizzare l'accesso a tale risorsa e consentire così l'espletamento del servizio/istruzione o processo desiderato.</p>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<ul>
|
|
|
|
<li>Processo 1</li>
|
|
|
|
<li>Processo 2</li>
|
|
|
|
<li>Processo 3</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
2016-05-04 15:46:43 +00:00
|
|
|
<h1>Prima modifica</h1>
|
|
|
|
</body>
|
|
|
|
</html>
|