Candidato: Marco Nanni

Slides:



Advertisements
Presentazioni simili
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Advertisements

1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
Interfacce Java.
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
Cenni di Real-Time JAVA E.Mumolo, DEEI
// PROTOTIPI void costruisciLista(Pnodo &, string &); void stampaLista(Pnodo ); void creaNodo (int, Pnodo&); Pnodo inserisciNodoTesta (int,Pnodo &); Pnodo.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Citrix Metaframe. Metaframe è la soluzione client-server prodotta dalla Citrix in grado di rendere disponibili applicazioni e desktop a qualsiasi dispositivo.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
CAPITOLO 6 LA GESTIONE DELLE ECCEZIONI IN JAVA. ECCEZIONI E catch/throw Consentono di realizzare goto non locali void GrowZebra(Zebra mz) { try { for.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Sistemi Operativi GESTIONE DEI PROCESSI.
Programmazione distribuita in Java
Compito desame del Svolgimento della Sezione 5: CONTROLLORI Esempio preparato da Michele MICCIO.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
University of Pisa Computer Science Department System Administration Processi, task periodici, stampa Stefano Bistarelli University of Pisa Computer Science.
UNIVERSITA DEGLI STUDI DI ROMA La Sapienza F ACOLTÀ DI S CIENZE M ATEMATICHE, F ISICHE E N ATURALI C ORSO DI L AUREA S PECIALISTICA IN I NFORMATICA F ORMAL.
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
Corso di Telecomunicazioni
Muoversi tra le finestre
1 Anagrafica 2011: G.Cataldi(40), M.R.Coluccia(30), P.Creti (30) Anagrafica 2012: G.Cataldi(30), M.R.Coluccia(30), P.Creti (40) Setup Sperimentale.
Piano gestione solventi
Lequilibrio dei mercati finanziari Istituzioni di Economia Politica II.
INNOVAZIONE NELLA SCUOLA E T.I.C.
OR5 – Rete di trasmissione
1 Target Cross Intelligence Le decisioni d'impresa, spesso, non sono né giuste né sbagliate. Le decisioni d'impresa, spesso, non sono né giuste né sbagliate.
DSS Identità oggetto Contenuto Modalità di uso Nome oggetto: numero
Modulo 1 bis Menù Incolla Esercitazione Un computer è quasi umano, a parte il fatto che non attribuisce i propri errori a un altro computer. (Anonimo)
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> eyelander tracking semplice con il tuo cellulare.
Ischia, giugno 2006Riunione Annuale GE 2006 Algoritmi ed architetture per sistemi ad alta dinamica S. Marsi, G. Ramponi and S. Carrato A.Ukovich,
Roberto Dimase Mod. 1 Inf. Base1 Modulo 1 Concetti teorici di base della tecnologia dellinformazione.
Riva del Garda Fierecongressi Richiesta di parere per impianto destinzione automatico a pioggia. Si tratta dellampliamento di un impianto esistente, inferiore.
GAUDI Carpi 01 aprile Panoramica Visitatori On-line nuovo sito Visite medie quotidiane: 398 Visite medie quotidiane:
Implementazione della modalità SplitMAC del protocollo CAPWAP
PROGETTO DI STRUMENTI PER LA CONFIGURAZIONE DI APPLICAZIONI JAVA ENTERPRISE Anno Accademico 2006 / 2007 Sessione III FACOLTÀ DI INGEGNERIA CORSO DI LAUREA.
Giancarlo Colferai - CEPAS
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
(1) Sistemi Operativi Prof. P. Cattaneo ufficio: L Ricevimento: Martedì14.00 –
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Collection & Generics in Java
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Gestione dei thread in Java
7. Strutture di controllo Ing. Simona Colucci
Scheduling in Linux (Kernel 2.4 e 2.6)
Transcript della presentazione:

Candidato: Marco Nanni JAVA REAL-TIME: ANALISI DELL’ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 RELATORE: Chiar.mo Prof. Eugenio Faldella CORRELATORI Chiar.mo Prof. Marco Prandini Dott. Ing. Primiano Tucci Candidato: Marco Nanni

sommario I sistemi in tempo reale I limiti di Java come piattaforma in tempo reale La specifica Java Real – Time (RTSJ) Primi esperimenti con Java RealTime Realizzazione di scheduler EDF per Java Real-Time Analisi della politica di default di gestione dei deadline miss e delle sue criticità Realizzazione della politica SKIP in java Real-Time Realizzazione della politica SKIPSTOP in java Real-Time

I sistemi in tempo reale Una tipica applicazione in tempo reale N processi periodici M cpu Ogni processo caratterizzato da Periodo Deadline Tempo di esecuzione Possibile accesso a risorse condivise Necessità di coordinare l’esecuzione dei vari thread P1 P2 P3 Real-Time Support CPU1 CPU2 job1 job2 job3

Java ed i sistemi in tempo reale Java piattaforma diffusa, ma con caratteristiche che ne limitano fortemente l’uso nei sistemi in tempo reale Nessuna possibilità di caratterizzare temporalmente i thread Scheduling non strettamente priority-driven. Sistema soggetto ad inversioni incontrollate di priorità Tempo di esecuzione variabile ed influenzato da attività interne alla VM Lazy initialization JIT complitation Garbage collecion

La specifica Java real-time La specifica Java real-time (2002-2006) prevede: Possibilità di caratterizzare temporalmente un thread real-time; th1 = new RealtimeThread(…,new PeriodicParameters(period,deadline,deadlineMissHandler,…),… );

La specifica Java real-time La specifica Java real-time (2002-2006) prevede: Possibilità di caratterizzare temporalmente un thread real-time; Uno scheduling strettamente priority – driven; th1 = new RealtimeThread(…,new PriorityParameters(priority),… );

La specifica Java real-time La specifica Java real-time (2002-2006) prevede: Possibilità di caratterizzare temporalmente un thread real-time; Uno scheduling strettamente priority – driven; I protocolli priorityInheritance e priorityCeiling per l’accesso a risorse condivise; MonitorControl.setMonitorControl(object, monitorControlPolicy,…);

La specifica Java real-time La specifica Java real-time (2002-2006) prevede Possibilità di caratterizzare temporalmente un thread real-time; Uno scheduling strettamente priority – driven; I protocolli priorityInheritance e priorityCeiling per l’accesso a risorse condivise; Modifiche alla VM per ridurre la variabilità del tempo di esecuzione : Preinizializzazione Precompilazione Real-Time Garbage Collection

La piattaforma utilizzata Real-Time Java System (RTJS) versione 2.2 academic (2009) per SO Solaris 10.9, sviluppato da Sun-Oracle. Implementa l’ultima versione (1.02) della specifica RTSJ Versione gratuita per uso accademico. Esecuzione monocore.

Prime sperimentazioni Proc t. Esec periodo T1 3 10 T2 4 14 T3 1 12 Verifica dell’esecuzione di un’applicazione composta da thread periodici dal comportamento noto Politica di scheduling RMPO Necessità di modellare un’esecuzione di durata desiderata: BusyWait Necessità di monitorare l’attività del sistema: logging 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public void run(){ … for (numberOfIterations) log.writeStartJob(); bw.busyWait(excecutionTime); log.writeEndJob; waitForNextPeriod(); }

Limiti di RMPO – Verso EDF RMPO non riesce a garantire la schedulabilità se il carico computazionale cresce L’applicazione sarebbe schedulabile secondo una strategia a priorità dinamica come EDF

Uno scheduler EDF per java Real-Time EDF: in esecuzione job con deadline più imminente Tre livelli di priorità: Alta Media Bassa Coda dei processi pronti ordinati secondo la prossima deadline a bassa priorità Il processo a deadline più imminente esegue a priorità media Thread eseguono prologo ed epilogo a priorità massima

Uno scheduler EDF per java Real-Time Il prologo: Inserisce il thread nella coda o in esecuzione ponendolo alla priorità più adatta L’epilogo: Estrae, se presente, il primo thread dalla coda e lo pone in esecuzione. Thread uscente lasciato a priorità max per non subire preemption in prossima release.

Confronto performance tra EDF e RMPO Scheduler robusto anche in caso di accessi a risorse condivise.

La politica di default di Java real-time in caso di deadline miss Se non si specifica un handler, chiamata a waitForNextPeriod() non bloccante qualora sia già passato l’istante di release del prossimo Job. L’esecuzione del job non viene interrotta Il comportamento è conforme alla politica ASAP ASAP cerca di preservare la frequenza dell’esecuzione dei job. Job1 job2 job3 job4

Limiti della politica ASAP Non aiuta ad alleggerire situazioni di sovraccarico del sistema L’esecuzione del job può durare una quantità indefinita di tempo bloccando il sistema La poltica SKIP allevia il sovraccarico del sistema non schedulando altri job nel periodo successivo.

La politica di Java real-time in presenza di un handler In caso di deadline miss, se è presente un deadlineMissHandler nei Release Parameters chiamata di WaitForNextPeriod() bloccante finchè non viene chiamato il metodo schedulePeriodic() sul thread. Se handler effettua schedulePeriodic() comportamento ASAP Se il thread sfora più deadline consecutivamente l’handler viene chiamato ad ogni violazione

L’implementazione della politica Skip public void run(){ … for (numberOfIterations){ if (normalMode){ log.writeStartJob(); bw.busyWait(excexutionTime); logger.writeEndJob();} else handler.managePendingRelease(); waitForNextPeriod(); } Flag che permette al thread di differenziare release normali da quelle “di recupero”. Codice da eseguire in release di recupero contenuto nell’handler SkipHandler contiene contatore delle deadline violate onDeadlineMiss(){ thread.setNormalMode(false); deadlineMissCount++; managedThread.schedulePeriodic(); } managePendigRelease(){ deadlineMissCount--; If(deadlineMissCount==0) managedThread.setNormalMode(true)

Chiamata handler ed interruzione thread La politica SKIPSTOP Occorre evitare che un job possa eseguire per un tempo di lunghezza indefinita Tollerato un numero di violazioni consecutive pari ad un valore specificato Se si raggiunge la soglia l’esecuzione viene interrotta in modo sicuro I job persi non vengono recuperati Job1 Job2 Deadline / periodo1 Deadline / periodo2 Deadline / periodo3 Deadline / periodo4 Chiamata handler ed interruzione thread

Il trasferimento asincrono di controllo La specifica RTSJ prevede di poter dichiarare un metodo interrompibile inserendo una AsyncronouslyInterruptedException nella throw-List del metodo Se si chiama il metodo interrupt() di un thread real-time mentre sta eseguendo un metodo interrompibile la AsyncronouslyInterruptedException viene lanciata e si può gestire l’interruzione nel blocco catch

Implementazione della politica SKIPSTOP public void run(){ … for (numberOfIterations){ if (normalMode){ log.writeStartJob(); Try{ bw.interrumpiblebusyWait(excexutionTime);} catch(AsynchronouslyInterruptedException e){ log.writeInterruptedThread(); } logger.writeEndJob();} else handler.managePendingRelease(); waitForNextPeriod(); onDeadlineMiss(){ … thread.setNormalMode(false); deadlineMissCount++; if (deadlineMissCount>=threshlod) managedThread.interrupt(); managedThread.schedulePeriodic(); } managePendigRelease(){ deadlineMissCount--; if(deadlineMissCount==0) managedThread.setNormalMode(true);

Risultati – confronto delle tre politiche Proc Periodo (ms) t. Esec (ms) Priorità Th 1 20 15 (67) max Th 2 70 16 min ASAP SKIP ATC SKIP STOP (soglia=2)

Sviluppi futuri Estensione grafica del modulo di logging. Estensione a sistemi multiprocessore Estensione a insiemi di processi sporadici Analisi di schedulabilità Politiche di gestione della gestione della parte non real-time dell’applicazione.