Search
Stats
Utenti : 1Contenuti : 11
Tot. visite contenuti : 11877
Chi è online
1 visitatore online
Introduzione...Il cuore della multiprogramazione è costituito dal sistema delle interruzioni e dallo scheduling. Nei sistemi multiprogrammati i processi sono mantenuti nella memoria principale e ognuno di essi per poter completare il proprio programma ha bisogno che gli venga assegnata una risorsa fondamentale, la cpu. Esistono tre tipi di schedulatori, a lungo a medio e a breve termine. Quello a lungo termine è eseguito poco frequentemente, lo scheduler a medio termine è eseguito con una frequenza più alta, mentre lo scheduler a breve termine è eseguito molto frequentemente Lo schedulatore a lungo termine si occupa di aggiungere nuovi processi, pronti per essere mandati in esecuzione, alla lista dei processi attualmete attivi, determinando di fatto il grado di multiprogrammazione. Una volta inserito, il programma diventa un processo e va ad aggiungersi alla coda dello scheduler a breve termine. Lo schedulatore di medio termine si occupa del trasferimento da disco a memoria centrale, e viceversa, dei processi bloccati in attesa di un evento (termine di una operazione di Input/Output). Lo schedulatore di breve termine decide quale, tra i processi ready, deve essere mandato in esecuzione. E' lo schedulatore che influenza le prestazioni del sistema, perchè decide quali processi devono attendere e quali possono procedere. Il compito dello scheduler a breve termine o dispatcher è quello di gestire le code dei processi in modo tale da minimizzare il tempo di attesa in coda ed ottimizzare le prestazioni. Le strategie di scheduling possono essere orientate all'utente o orientate al sistema. Nel primo caso si pone attenzione a come è percepito il comportamento del sistema da parte dell'utente. Un parametro importate da valutare è la responsività del sistema, cioè il tempo che trascorre da quando l'utente sottomette il programma al sistema a quando inizia ad arrivare la risposta. Se lo scheduling è orientato al sistema, saranno perseguite le prestazioni, si cercherà di massimizzare il throughput, di utilizzare in modo efficace il processore. Dispatcher è un simulatore di scheduler di breve termine. Nel seguito di questo lavoro saranno illustrate l'interfaccia grafica del simulatore, gli algoritmi implementati e le tecniche utilizzate nell'implementazione del simulatore stesso. Il simulatore è scritto in C, utilizzando tecniche di programmazione object oriented, l'interfaccia grafica è stata scritta utilizzando le librerie GTK+ (www.gtk.org) e le librerie libglade (http://developer.gnome.org/doc/tutorials/). La GUI è stata disegnata seguendo i dettami della HIG, Human Interface Guideline (http://developer.gnome.org/projects/gup/hig/2.0/). |