Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe...

20
Gruppo 11: Ausili Andrea 1037940 Giovanni Belelli xxxxxxxx Polenta Marco xxxxxxxx Giuseppe Prencipe xxxxxxxx Marco Trinastich xxxxxxxx Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi” Kernel Memory Simulator

Transcript of Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe...

Page 1: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 2: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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.

Page 3: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 4: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 5: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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.

Page 6: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 7: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”

2.Memoria centrale

Diagramma di flusso memoria centrale

Page 8: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”

2.Memoria centrale

Diagramma delle sequenze - Paginazione

Page 9: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”

2.Memoria centrale

Diagramma delle sequenze - Segmentazione

Page 10: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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).

Page 11: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 12: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”

2.Memoria secondaria

Diagramma di flusso memoria secondaria

Page 13: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

Università Politecnica delle Marche – Facoltà di IngegneriaCorso di Laurea Specialistica in Ingegneria – Corso di “Sistemi Operativi”

2.Memoria secondaria

Diagramma delle sequenze – Memoria secondaria

Page 14: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 15: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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).

Page 16: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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

Page 17: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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);

Page 18: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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”).

Page 19: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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)

Page 20: Gruppo 11: Ausili Andrea1037940 Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.

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.