A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Real-Time Specification for Java Descrição da Real-Time Specification for Java Alessandra Vargas Fernando Ataíde Marcio Oliveira Universidade Federal do.

Apresentações semelhantes


Apresentação em tema: "Real-Time Specification for Java Descrição da Real-Time Specification for Java Alessandra Vargas Fernando Ataíde Marcio Oliveira Universidade Federal do."— Transcrição da apresentação:

1 Real-Time Specification for Java Descrição da Real-Time Specification for Java Alessandra Vargas Fernando Ataíde Marcio Oliveira Universidade Federal do Rio Grande do Sul Instituto de Informática CMP158 – Sistemas de Tempo Real

2 Real-Time Specification for Java Definir uma API de tempo real para a linguagem Java; Permitir a criação, verificação, análise, execução e gerenciamento de threads tempo real; Satisfazer requisitos temporais. Objetivos

3 Real-Time Specification for Java Thread Scheduling and Dispatching Implementação permite a programação de parâmetros apropriados para o mecanismo de escalonamento escolhido provê métodos para criação, gerenciamento e terminação de real-time Java threads A RTSJ requer em todas as implementações um escalonador : –Baseado em prioridades –Preemptivo –Com o mínimo de 28 prioridades

4 Real-Time Specification for Java Thread Scheduling and Dispatching schedulable object => são os objetos que o escalonador gerencia timely execution of threads => restrições temporais. Geralmente são os deadlines, expressos em tempos relativos ou absolutos feasibility analysis => verificar se é possível obedecer às restrições temporais execution eligibility => qual thread será executada

5 Real-Time Specification for Java Memory Management Implementação de gerenciamento de memória o mais automático possível Foi definida uma área de memória: –independente de qualquer algoritmo de Garbage Collection –que permite ao programa caracterizar precisamente o efeito de um GC no tempo de execução, na preempção e no despacho de real-time threads –e que permite a alocação e utilização de objetos sem interferência alguma de GC.

6 Real-Time Specification for Java Memory Management Existem 4 tipos de áreas de memória: Scoped memory => objetos têm tempo de vida definidos por um escopo. Physical memory => regiões físicas de memória com características particulares, ex. acesso mais rápido Immortal memory => objetos podem ser referenciados sem atraso de exeções ou do GC. Heap memory => tempo de vida determinado pela visibilidade

7 Real-Time Specification for Java Synchronization and Resource Sharing Utilização de filas Prevenção à inversão de prioridade –herança de prioridades –priority ceiling

8 Real-Time Specification for Java Asynchronous Event Handling Duas classes: AsyncEvent e AsyncEventHandler AsyncEvent => um objeto representa um sinal POSIX, uma interrupção de hardware ou qualquer outro evento. AsyncEventHandler => quando ocorre um evento, as instâncias associadas de AsyncEventHandler são escalonadas e o método handleAsyncEvent() é invocado

9 Real-Time Specification for Java Physical Memory Access A RTSJ define classes para acessar a memória física RawMemoryAccess – trata uma faixa de memória como uma seqüência fixa de bytes –os conteúdos são acessados através de uma base e um offset de endereço –permite a implementação de drivers de dispositivos, I/O mapeado em memória, memória flash, etc VTPhysicalMemory, LTPhysicalMemory, and ImmortalPhysicalMemory –Permitem construir objetos nas áreas de memória

10 Real-Time Specification for Java Constitu í do por qualquer instância de classe que implemente a interface Schedulable. São três classes contendo objetos escalon á veis: RealtimeThread NoHeapRealtimeThread AsyncEventHandler Objeto Escalon á vel

11 Real-Time Specification for Java PriorityScheduler: Um escalonador padrão para objetos Schedulable das clases RealtimeThread, AsyncEventHandler e NoHeapRealtimeThread. Principais Classes : Escalonador

12 Real-Time Specification for Java Principais Classes: Parâmetros de Tempo Real Fornecem informa ç ões ú teis para o escalonador do sistema. Define parâmetros para um objeto Schedulable.

13 Real-Time Specification for Java Parâmetros ú teis na especifica ç ão das caracter í sticas de ativa ç ão do objeto escalon á vel. Principais Classes: Parâmetros de Tempo Real

14 Real-Time Specification for Java Evento cuja ocorrência é determinada por um rel ó gio RT. - OneShotTimer - PeriodicTimer Principais Classes: Timer

15 Real-Time Specification for Java Oferece controle para recursos compartilhados - processador - blocos sincronizados. Principais Classes: Recursos compartilhados

16 Real-Time Specification for Java Manter este gerenciamento de maneira autom á tica no ambiente de execu ç ão. Necess á rio modifica ç ões a fim de permitir uma caracteriza ç ão precisa dos efeitos da execu ç ão do GC no tempo de execu ç ão. Principais Classes : Gerenciamento de mem ó ria

17 Real-Time Specification for Java Thread periódica e miss-deadline import javax.realtime.*; public class appJavaRT { public static void main(String[] args) { AsyncEventHandler handlerDeadline = new AsyncEventHandler () { public void handleAsyncEvent () { System.out.println("missDeadline"); } }; PriorityParameters priortyParametersT1 = new PriorityParameters(1); PeriodicParameters periodicParametersT1 = new PeriodicParameters (new RelativeTime(3, 0 ), new RelativeTime(10, 0 ), null, new RelativeTime(10, 0), null, null); periodicParametersT1.setDeadlineMissHandler(handlerDeadline); RealtimeThread realTimeThread1 = new RealtimeThread( priortyParametersT1, periodicParametersT1 ) {public void run() { while(waitForNextPeriod()) { System.out.println("..T1...."); } }; realTimeThread1.start(); }

18 Real-Time Specification for Java Disparo de evento /*MainThread.java*/ import javax.realtime.*; import java.util.*; public class MainProcess{ public static void main(String args[]){ RelativeTime tempoEsporadico; System.out.println("Criando o Handler"); /* verifica a prioridade MAX permitida */ int priority = PriorityScheduler.instance().getMaxPriority(); ThreadEventHandler threadEventHandler = new ThreadEventHandler(priority); tempoEsporadico = new RelativeTime(1000,0); OneShotTimer evento = new OneShotTimer(tempoEsporadico, threadEventHandler); evento.start(); while(true); }

19 Real-Time Specification for Java Tratamento de evento /*ThreadEventHandler.java*/ import javax.realtime.*; public class ThreadEventHandler extends AsyncEventHandler { public ThreadEventHandler(int priority){ super(new PriorityParameters(priority), null, null, null, null, null) ; System.out.println("Handler`s constructor"); } public void handleAsyncEvent(){ System.out.println("Peguei o evento"); }


Carregar ppt "Real-Time Specification for Java Descrição da Real-Time Specification for Java Alessandra Vargas Fernando Ataíde Marcio Oliveira Universidade Federal do."

Apresentações semelhantes


Anúncios Google