Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe...
-
Upload
rosalba-rubino -
Category
Documents
-
view
214 -
download
0
Transcript of Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe...
Gruppo 11:Ausili Andrea 1037940Giovanni Belelli xxxxxxxxPolenta Marco xxxxxxxxGiuseppe Prencipe xxxxxxxxMarco Trinastich xxxxxxxx
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
KernelMemory Simulator
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
Obiettivo
•Realizzazione di un kernel come plug-in di Eclipse per simulare il
funzionamento di memoria centrale e memoria secondaria. Il kernel è il
motore centrale del simulatore in cui l’input è rappresentato da una lista di
processi o file, a seconda della tipologia di simulazione selezionata.
•Configurazione del sistema da impostare tramite l’utilizzo di un’interfaccia
utente, realizzata come plug-in di Eclipse. Parametri principali: dimensione
memoria centrale e secondaria, dimensione swap, dimensione blocchi delle
memorie.
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
Obiettivo
InterfacciaEclipse kernel Algoritmi
•Realizzazione del kernel come plug-in dell’interfaccia.
•Realizzazione degli algoritmi, usati durante la simulazione dal kernel,
come plug-in del kernel secondo specifiche modalità. Suddivisione
degli algoritmi per la memoria centrale e secondaria.
•Gestione dell’output del kernel tramite un sistema ad eventi che
cattura le attività principali in fase di simulazione e visualizza
attraverso l’uso dell’interfaccia la struttura di memorizzazione di tali
eventi
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Strumenti
• Strumenti utilizzati per la realizzazione del kernel:
Servizio Hosting GoogleCode
Ambiente di sviluppo Eclipse
Repository SVN su Eclipse (plug-in Subversive)
Linguaggio Java
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria centrale
•La simulazione relativa alla memoria centrale riguarda tutte le operazioni
legate alle richieste di processo entranti (ProcessRequest), che vengono
successivamente gestite dalla CPU e dagli altri moduli che compongono il
sistema di gestione in questione.
•Tipologie di gestione della memoria fornite dal kernel:
Paginazione
Segmentazione
•La simulazione parte esaminando una lista di ProcessRequest, ciascuna
costituita da parametri differenti a seconda della modalità
(paginazione/segmentazione) impostata in fase iniziale.
•Selezione di un algoritmo di allocazione/sostituzione.
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria centrale
Schema a blocchi della memoria centrale
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria centrale
Diagramma di flusso memoria centrale
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria centrale
Diagramma delle sequenze - Paginazione
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria centrale
Diagramma delle sequenze - Segmentazione
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria secondaria
Schema a blocchi della memoria secondaria
•La simulazione relativa alla memoria secondaria riguarda tutte le
operazioni legate alle richieste di file entranti (FileRequest), che vengono
successivamente gestite dalla CPU e dagli altri moduli che compongono il
sistema di gestione in questione.
•Selezione di un algoritmo di allocazione per la gestione della memoria
secondaria (ad es. contigua, concatenata o indicizzata).
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria secondaria
Schema a blocchi della memoria secondaria
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria secondaria
Diagramma di flusso memoria secondaria
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
2.Memoria secondaria
Diagramma delle sequenze – Memoria secondaria
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
3.Classi
Package Kernel•Main.java•CPU.java•MMU.java•AllocatorManager.java•SubstitutionManager.java•Swapper.java•IMemoryElement.java•IAlgorithmMemory.java•FSManager.java•AllocatorFileManager.java•AllocatorFile.java•IHDDElement.java•IAlgorithmHDD.java•PageFaultManage.java
Package Kernel.Shared•Parameters.java•Event.java•Process.java•ProcessRequest.java •SegPageTable.java•EmptyBlock.java • FileRequest.java•FileElement.java •FileCtrlBlock.java•HDDElementEmpty.java
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
4.Sistema ad Eventi
•Funzionalità fornita dal kernel con il compito di fornire informazioni
riguardo le operazioni effettuate relative a memoria centrale e secondaria.
•Realizzazione progressiva, in fase di simulazione, di uno storico delle due
memorie in corrispondenza del verificarsi di eventi relativi a operazioni
effettuate per processi e files.
Memorizzazione di eventi e stati delle memorie associati gestita dalla
classe Event. Utilizzo della classe differenziato a seconda della tipologia
delle operazioni effettuate dal kernel (richiesta di file o di processo).
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
•Implementazione delle interfacce IAlgorithmMemory e IAlgorithmHDD
effettuata dagli algoritmi utilizzati durante la simulazione per la gestione
della memoria centrale o secondaria.
•Tipologie di algoritmi:
algoritmi di allocazione su HDD
algoritmi di sostituzione/allocazione su memoria centrale (per
pagine/segmenti)
•Utilizzo delle classi shared per il prelievo di informazioni essenziali per il
funzionamento di tali algoritmi (info su memoria centrale e processi, e su
memoria secondaria e files).
5.Interfaccia Algoritmi
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
6.Esportazione e Pubblicazione
•Procedura per la creazione di un algoritmo plug-in:
1. Creazione di un plug-in project secondo gli standard dettati da eclipse;
2. Realizzazione di una classe che sarà implementazione di una delle due
interfacce messe a disposizione dal kernel (IAlgorithmMemory o
IAlgorithmHDD);
3. Creazione di un Extension che sarà il punto di connessione con
l’ExtensionPoint del kernel (it.univpm.diiga.kernel.algorithm);
4. Definizione della tipologia di algoritmo : selezione dell’interfaccia da
implementare(IAlgorithmMemory o IAlgorithmHDD);
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
6.Esportazione e Pubblicazione
5. Selezione della classe che implementa l’interfaccia messa a disposizione
dal kernel e selezionata in precedenza;
6. Completamento della definizione dell’Extension dell’ExtensionPoint
(classi del plug-in kernel rese disponibili al plug-in “Algoritmo”).
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
7.Sviluppi Futuri
•Possibilità di apportare diverse migliorie al software, attraverso alcune
funzionalità offerte dal kernel e non sviluppate dall’interfaccia grafica.
•Disponibilità a livello kernel di un’impostazione relativa alla situazione
iniziale della memoria centrale e secondaria
•Richieste dei singoli processi ulteriormente dettagliate rispetto ai parametri
passati dall’interfaccia (controllo dell’ultima pagina di processo richiesta nel
caso della paginazione e specifica di un tempo di esecuzione per ogni
segmento nel caso della segmentazione)
•Mancanza di una visione dinamica dell’output nella simulazione della
memoria secondaria (realizzazione della connessione interfaccia-kernel)
Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”
7.Sviluppi Futuri
•Mancanza nell’interfaccia di una possibilità di settaggio relativo alla
dimensione nell’operazione di modifica dei file
•Possibilità di integrazione (sia a livello kernel che grafico) della memoria
centrale e secondaria nel caso riguardante la simulazione ibrida
•Possibilità di miglioramento dell’interfaccia grafica sull’output della
segmentazione attraverso una visualizzazione differente relativa alla
grandezza dei segmenti.