Thank you for your donation.
| Designed by: |
| | Stampa | |
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 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/). |






