Cenni di Real-Time JAVA E.Mumolo, DEEI

Slides:



Advertisements
Presentazioni simili
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Advertisements

Stefano Cacciaguerra Ph.D in Computer Science 1 Second Life in pillole a cura di Nome Cognome rivisto da Stefano Cacciaguerra.
Interfacce Java.
ASP.NET – Web Forms Davide Vernole.NET MVP. Di cosa parleremo Introduzione ad ASP.NET ASP.NET, dietro le quinte Componenti principali di una applicazione.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
E.Mumolo, DEEI Player Stage E.Mumolo, DEEI
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
Seam.
Un DataBase Management System (DBMS) relazionale client/server.
JDK Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
EJB Enterprise Java Beans B. Pernici. Approccio Java.
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.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
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.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Java Database Connection (dal corso dei Servizi Web)
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 2: Microsoft.NET.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
© CEFRIEL Cenni su XML in Java Docente: Gabriele Lombardi
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Callbacks. Scelta delle classi di un progetto Criteri di coesione e accoppiamento Interfacce e subtype polimorfismo Tipi, sottotipi e conversioni di tipo.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
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.
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
Introduzione al linguaggio C++ Costruzione di tipi di dati del programmatore.
PROGETTO “NASTRO FERMI”
Il Booking Engine Html di HermesHotels è studiato per permettere I-Frame sui siti degli Hotels. Disponibile anche in modalità Pop- Up https, simile.
POINT BREAKBREAK EVENTEVENT Prof. Pietro Samarelli.
Presenta Progetto Web Marketing 3.0. Hyper-code Via Domenico Mercante 6, Verona (VR) – Tel Cell mail.
Analisi del video: Come può essere così difficile? Dopo aver visto il documentario, sul sito
Sviluppo di una Xlet per la TV digitale terrestre Vademecum della regione marche 2006 Ventura Luca.
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)
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI.
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.
14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.
(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,
L4 Tecniche di Background Subtraction
VB.NET Sviluppo Applicazioni Desktop
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Candidato: Marco Nanni
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
Collection & Generics in Java
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
TIPI PRIMITIVI TIPI STRUTTURATI
Transcript della presentazione:

Cenni di Real-Time JAVA E.Mumolo, DEEI

Real Time Specifications for Java (RTSJ) RTSJ: specifiche ottenute dalle prime specifiche lanciate nella comunità Java, JSR-1 (Inverno 1998) Approvate nel Gennaio Prima implementazione commerciale: estate 2003 Seconda versione di RTSJ: Giugno 2005 Versione IBM: estate 2006 Caratteristiche generali: applicazioni hard e soft real-time Schedulazione real time Task periodici e sporadici, gestione delle deadlines, possibilità data ai task di ridurre il ritardo nella garbage collection La Java Community Process JCP ha accettato una Java Specification Requests (JSR) per RTSJ: lista di miglioramenti e modifche di RTSJJCP

Real Time Specifications for Java (RTSJ) Package javax.realtime scaricabile da (gratuito per l'utilizzo con scopi non commerciali). Home page: Le specifiche dettagliano le richieste in 7 aree scheduling, memory management, synchronization, asynchronous event handling, asynchronous transfer of control, asynchronous thread termination, physical memory access

Real Time Specifications for Java (RTSJ) Scheduling Funzioni: schedulare secondo la priorità, Aumentare il numero dei livelli di priorità a 28. rendere schedulabili non solo i thread ma tutti gli oggetti che implementano linterfaccia Schedulable e che diventano schedulable object Gli oggetti schedulabili, secondo le specifiche, sono di tre tipi: RealtimeThread, NoHeapRealtimeThread, AsyncEventHandler Ogni schedulable object ha bisogno di tre parametri fondamentali per la sua schedulazione: release parameter: condizioni di inizio esecuzione memory parameter: tipo di memoria scheduling parameter: come ordinare i processi in coda

Real Time Specifications for Java (RTSJ) Scheduling Release parameter. Parametri: thread periodico aperiodico Costo computazionale Deadline handler che gestirà i casi in cui le deadline o i costi siano superati. memory parameter: il tipo e quantità di memoria scheduling parameter : Attualmente si consente solo l'assegnazione di 28 livelli diversi di priorità per gli oggetti schedulabili.

Real Time Specifications for Java (RTSJ) Scheduling

Real Time Specifications for Java (RTSJ) Memory management Classe ScopedMemory: sottoclassi: VTMemory (allocazioni fornite in un tempo variabile) e LTMemory (allocazioni fornite in un tempo lineare proporzionale alla grandezza dell'oggetto)

Real Time Specifications for Java (RTSJ) Memory management RTSJ introduce due nuove aree di memoria nelle quali il Garbage Collector agisce in modo predicibile immortal memory: condivisa tra i thread di un'applicazione. Rilascio solo al termine. Scoped memory. Definisce limiti di vita di un oggetto; numero dei riferimenti a quell'area. Se == 0 la memoria viene rilasciata (metodi finalize() di quegli oggetti) public void run() { LTMemory myMem = new LTMemory(1000, 5000); // LTMemory (initialSize, maxSize in byte) myMem.enter(new Runnable() { public void run() { //all'interno di una Scoped Memory prima istanziata! } }; ImmortalMemory.instance().enter(new Runnable() { public void run() { // ogni allocazione di memoria eseguita qua dentro // avverrà nella Immortal memory } };

Real Time Specifications for Java (RTSJ) Orologi e tempo RTSJ introduce un realtime clock monotonico (classe Clock, metodo getRealtimeClock() ), Una classe astratta, HighResolutionTime, in grado di salvare e fare operazioni su tempi con risoluzioni fino al nanosecondo. Classi derivate: AbsoluteTime e RelativeTime (intervallo temporale). Esempio di misura di intervallo temporale { AbsoluteTime oldTime, newTime; RelativeTime interval; Clock myclock = Clock.getRealtimeClock(); oldTime = myclock.getTime(); // other computations newTime = myclock.getTime(); interval = newTime.subtract(oldTime); }

Real Time Specifications for Java (RTSJ) Eventi asincroni e loro handler Classi eventi: gestiti nel metodo fire() AsyncEvent : rappresenta segnali, interrupt, eventi, Metodo handleAsyncEvent() AsyncEventHandler: oggetti molto simili ai thread. E uno schedulable object Ogni evento è gestito da un handler diverso Un handler può anche gestire più eventi Particolare tipo di AsyncEvent: timer. Lancia un evento (metodo fire()) a tempi stabiliti OneShotTimer PeriodicTimer

Real Time Specifications for Java (RTSJ) Eventi asincroni e loro handler

Real Time Specifications for Java (RTSJ) Real Time Thread

Due nuovi thread: RealtimeThread estende la classe java.lang.Thread. E un oggetto schedulabile NoHeapRealtimeThread estende RealtimeThread. Non può allocare o anche solo creare riferimenti nello heap (GC) In caso di sforamento di una deadline, viene chiamato il deadline miss handler specificato. Metodo waitForNextPeriod() di RealtimeThread: utilizzabile solo con i thread periodici. Mette in wait il thread fino al prossimo periodo Gestione sovraccarichi: handler per gestire un overrun rispetto al costo computazionale prefissato. Sincronizzazione e condivisione risorse Algoritmi introdotti: simple priority inheritance e priority ceiling emulation inheritance