di Antonio Balloni
1. Introduzione 2. Scopo del programma 3. Installazione 4. Funzioni 5. Risultati |
Questo programma rappresenta il mio lavoro di tesi. Realizza un simulatore di uno scheduler real time in grado di utilizzare i principali algoritmi presentati nel corso di sistemi operativi avanzati. E' stato realizzato basandolo sul testo "Hard Real-Time Computing Systems" di Giorgio C.Buttazzo e sui lucidi del professor G.Pravadelli che accompagnano il suddetto corso di sistemi operativi. Mi ha impegnato per tre lunghi mesi soprattutto a causa del linguaggio di programmazione da me scelto: il C++. Proprio per questo motivo vorrei avvisare tutti coloro che intendono impiegare questo linguaggio per i loro progetti. Pensateci Bene. Solo se avete molto tempo, molta pazienza e sapete come si programma in modo ordinato e ben strutturato potete permettervi di usare C++. Personamlente apprezzo il linguaggio, ma lo ritengo molto complesso.
Lo scopo del programma e' quello di fornire all'utente uno strumento in grado di simulare i principali algoritmi di scheduling per sistemi real time che operano su ipotetici processi scelti dall'utente stesso. Il risultato dello scheduling e' mostrato tramite un semplice ma efficace grafico a barre.
Per installare questo programma e' sufficiente scompattare il file rtss.zip in una qualsiasi cartella assicurandosi che venga mantenuta la struttura delle sotocartelle.
Questo e' possibilie con un comando come questo:
unzip source_folder/rtss.zip -d destination_folder
dove source_folder e destination_folder sono le cartelle sorgenti e destinazione.
Avviare poi l'applicazione rtss in questo modo:
./rtss
Questo menu ospita due funzioni:
New Schedule: permette di scegliere un nuovo schedule basato su uno degli algoritmi indicati. Vengono completamente cancellati i dati riguardanti un eventuale schedule precedente
Quit: permette di uscire dal programma
Questo menu ospita 3 funzioni:
Add Process:
Permette di creare un nuovo processo le cui proprieta' dipendono dal tipo di algoritmo scelto.Il processo verra' aggiunto all'elenco dei processi correnti, visibile al centro della finestra.
I dati richiesti sono:
tempo di rilascio: l'istante in cui il processo viene rilasciato
deadline ( relativa o assoluta ): l'istatnte entro cui il processo deve terminare la sua computazione
tempo di computaizone: intervalli di tempo necessari al processo per eseguire il proprio lavoro
periodo: il periodo com cui viene rilasciato il processo
Modify Process: Permette di modificare il primo (dall'alto) processo selezionato tramite le apposite caselle di spunta a fianco di ogni processo
Delete Processes: Permette di eliminare tutti i processi selezionati
Questo menu offre una sola scelta. Permette di impostare le dipendenze tra i processi. Ossia permette di indicare, definita una coppia di processi (A,B) che A deve essere eseguito prima di B. Queste relazioni sono esprimibili tramite una tabella tipo "battaglia navale". Spuntando la casella di coordinate (I,J) si indica che il processo I verra' eseguito prima del processo J. In caso le relazioni impostate creassero un ciclo, il problema verra' evidenziato al momento della simulazione con un opportumo messaggio
Sono possibili due scelte:
"Simulate" permette all'utente di dare il via alla simulazione dello scheduling, i cui risultati saranno visibili in un'apposita finestra.
"Change Algorithm..." permette invece di applicare ai processi attuali un diverso algoritmo di scheduling. La scelta e' limitata ai soli algoritmi compatibili con i dati. A questo proposito certe scelte richiedono una modifica del tempo di rilascio dei processi o delle relazioni di dipendenza, situazione indicata all'utente da un apposito messaggio.
In ogni caso non sara' mai possibile applicare un algoritmo periodico a processi aperiodici e viceversa.
Esempio:
Algoritmo di partenza EDF
Algoritmo di arrivo EDD
Ai processi viene assegnato il tempo di rilascio t = 0, mantenendo la stessa deadline relativa.
All'utente viene chiesto di confermare il cambio algoritmo a causa delle suddette operazioni sui dati.
Questo menu permette 2 scelte:
help: mostra questo documento
about: apre una finestra che contiene alcune informazioni su questo software