Gruppo 11: Ausili Andrea Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 linput è rappresentato da una lista di processi o file, a seconda della tipologia di simulazione selezionata. Configurazione del sistema da impostare tramite lutilizzo di uninterfaccia 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 Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi InterfacciaEclipsekernelAlgoritmi Realizzazione del kernel come plug-in dellinterfaccia. 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 delloutput del kernel tramite un sistema ad eventi che cattura le attività principali in fase di simulazione e visualizza attraverso luso dellinterfaccia la struttura di memorizzazione di tali eventi
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Schema a blocchi della memoria centrale
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Diagramma di flusso memoria centrale
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Diagramma delle sequenze - Paginazione
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Diagramma delle sequenze - Segmentazione
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Schema a blocchi della memoria secondaria
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Diagramma di flusso memoria secondaria
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Diagramma delle sequenze – Memoria secondaria
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 Ingegneria Corso 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).
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 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 lExtensionPoint del kernel (it.univpm.diiga.kernel.algorithm); 4.Definizione della tipologia di algoritmo : selezione dellinterfaccia da implementare(IAlgorithmMemory o IAlgorithmHDD);
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi 5.Selezione della classe che implementa linterfaccia messa a disposizione dal kernel e selezionata in precedenza; 6.Completamento della definizione dellExtension dellExtensionPoint (classi del plug-in kernel rese disponibili al plug-in Algoritmo).
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Possibilità di apportare diverse migliorie al software, attraverso alcune funzionalità offerte dal kernel e non sviluppate dallinterfaccia grafica. Disponibilità a livello kernel di unimpostazione relativa alla situazione iniziale della memoria centrale e secondaria Richieste dei singoli processi ulteriormente dettagliate rispetto ai parametri passati dallinterfaccia (controllo dellultima 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 delloutput nella simulazione della memoria secondaria (realizzazione della connessione interfaccia-kernel)
Università Politecnica delle Marche – Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria – Corso di Sistemi Operativi Mancanza nellinterfaccia di una possibilità di settaggio relativo alla dimensione nelloperazione 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 dellinterfaccia grafica sulloutput della segmentazione attraverso una visualizzazione differente relativa alla grandezza dei segmenti.