Thread Scheduling and Dispatching Maung Aung Han Marc E. Loy Jihua Zhong CIS 642: Seminar in Real-time Systems Instructor: Professor Insup Lee.

Slides:



Advertisements
Similar presentations
Chapter 7 - Resource Access Protocols (Critical Sections) Protocols: No Preemptions During Critical Sections Once a job enters a critical section, it cannot.
Advertisements

Real-Time Systems and Programming Languages © Alan Burns and Andy Wellings Chapter 12: Programming Schedulable Systems.
1 EE5900 Advanced Embedded System For Smart Infrastructure RMS and EDF Scheduling.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
 Both System.out and System.err are streams—a sequence of bytes.  System.out (the standard output stream) displays output  System.err (the standard.
Scheduling Goal Topics
Java How to Program, 9/e CET 3640 Professor: Dr. José M. Reyes Álamo © Copyright by Pearson Education, Inc. All Rights Reserved.
Scheduling Theory ITV Real-Time Systems Anders P. Ravn Aalborg University March 2007.
Programming R-T Abstractions TSW November 2009 Anders P. Ravn Aalborg University.
Real-Time Systems Specification and Analysis ITV Mutiprogramming and Real-Time Programs Anders P. Ravn Aalborg University May 2009.
Real-Time Java Real-Time Systems Anders P. Ravn Aalborg University March 2008.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
Scheduling Theory ITV Multiprogramming and Real-Time Programs Anders P. Ravn Aalborg University May 2009.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
© Andy Wellings, 2003 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
Chapter 11 Operating Systems
By Group: Ghassan Abdo Rayyashi Anas to’meh Supervised by Dr. Lo’ai Tawalbeh.
Spring 2002Real-Time Systems (Shin) Rate Monotonic Analysis Assumptions – A1. No nonpreemptible parts in a task, and negligible preemption cost –
Real-Time Systems Specification and Analysis ITV Real-Time Systems Anders P. Ravn Aalborg University February 2009.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
The Real-Time Java Profile ITV Real-Time Systems Anders P. Ravn Aalborg University February 2006.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
Java How to Program, 9/e CET 3640 Professor: Dr. Reyes Álamo © Copyright by Pearson Education, Inc. All Rights Reserved.
Parallel Processing (CS526) Spring 2012(Week 8).  Thread Status.  Synchronization in Shared Memory Programming(Java threads ) ◦ Locks ◦ Barriars.
Real-Time Java Martin Schöberl. Real Time Java2 Overview What are real-time systems Real-time specification for Java RTSJ issues, subset Real-time profile.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Threading and Concurrency Issues ● Creating Threads ● In Java ● Subclassing Thread ● Implementing Runnable ● Synchronization ● Immutable ● Synchronized.
Lecture 5 : JAVA Thread Programming Courtesy : MIT Prof. Amarasinghe and Dr. Rabbah’s course note.
Today’s Agenda  Quick Review  Finish Java Threads  The CS Problem Advanced Topics in Software Engineering 1.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
111 © 2002, Cisco Systems, Inc. All rights reserved.
Java Threads. What is a Thread? A thread can be loosely defined as a separate stream of execution that takes place simultaneously with and independently.
CS 346 – Chapter 4 Threads –How they differ from processes –Definition, purpose Threads of the same process share: code, data, open files –Types –Support.
Real-Time Scheduling CS4730 Fall 2010 Dr. José M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
Prepare by : Ihab shahtout.  Overview  To give an overview of fixed priority schedule  Scheduling and Fixed Priority Scheduling.
EEL The Real-Time Specification for Java (1)
11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
EEL Real-time Java part 2. EEL Acknowledgements All the lecture slides were adopted from the slides of Andy Wellings.
Multithreading in JAVA
Java Thread and Memory Model
Threads Doing Several Things at Once. Threads n What are Threads? n Two Ways to Obtain a New Thread n The Lifecycle of a Thread n Four Kinds of Thread.
15.1 Threads and Multi- threading Understanding threads and multi-threading In general, modern computers perform one task at a time It is often.
111 G53SRP: RTSJ Memory Areas Chris Greenhalgh School of Computer Science.
Introduction to Embedded Systems Rabie A. Ramadan 5.
Multithreading. Multithreaded Programming A multithreaded program contains two or more parts that can run concurrently. Each part of such a program is.
Threads in Java Threads Introduction: After completing this chapter, you will be able to code your own thread, control them efficiently without.
Thread A thread represents an independent module of an application that can be concurrently execution With other modules of the application. MULTITHREADING.
Multithreading. Multitasking The multitasking is the ability of single processor to perform more than one operation at the same time Once systems allowed.
11 G53SRP: Feasibility analysis Chris Greenhalgh School of Computer Science.
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
Undergraduate course on Real-time Systems Linköping University TDDD07 Real-time Systems Lecture 2: Scheduling II Simin Nadjm-Tehrani Real-time Systems.
1 Threads in Java Jingdi Wang. 2 Introduction A thread is a single sequence of execution within a program Multithreading involves multiple threads of.
Concurrent Programming in Java Based on Notes by J. Johns (based on Java in a Nutshell, Learning Java) Also Java Tutorial, Concurrent Programming in Java.
Multithreading / Concurrency
Multithreading Lec 23.
Multi Threading.
Multithreaded Programming in Java
G53SRP: Real Time Threads in RTSJ (part I)
Multithreading in Java
G53SRP: Asynchronous Events in RTSJ
G53SRP: Resource Sharing Issues
Multithreading.
Multithreading.
Multithreaded Programming
Real Time Java : Synchronization
Computer Science 2 06A-Java Multithreading
Threads and Multithreading
Presentation transcript:

Thread Scheduling and Dispatching Maung Aung Han Marc E. Loy Jihua Zhong CIS 642: Seminar in Real-time Systems Instructor: Professor Insup Lee

Direction Allow an underlying scheduling mechanism to be used by real- time Java threads but not specify in advance the exact nature of all possible scheduling mechanisms Allow implementations to provide unanticipated scheduling algorithms Programmatic assignment of parameters appropriate for underlying scheduling mechanism as well as providing any necessary for creation, management, and termination of threads Provide enough flexibility in thread scheduling framework to allow future versions of the specification to build on this release and allow the dynamic loading of scheduling policy modules

Outline Issues Definitions API –Scheduler –Schedulable Objects / Real-time Threads –Parameters

Issues

Issues: Threads Multi-threading is useful to decouple different activities –Active objects, request queues, synch/asynch However, work in different threads competes for CPU time and memory resources Must ensure resource usage by non-critical activities does not interfere with needs of critical activities

Issues: Release Characteristics To know whether threads will interfere, need to characterize their temporal behavior Need descriptors with key temporal attributes –E.g., execution cost, deadline Can abstract out separate descriptors for canonical behavioral classes –I.e., periodic, aperiodic, sporadic Time execution cost period minimum inter-arrival spacing deadline

Issues: Release Failures Release characteristics advertise how threads are projected to behave However, differences between projected and actual behavior can lead to unexpected failures Need to be able to detect (and if possible handle) release failures –Cost overruns –Deadline misses Time actual execution cost deadline execution finished (late) projected execution cost

Issues: Scheduling Priorities –Need sufficient unique priority levels Preemptive scheduling –Need well defined and appropriate semantics Fairness among threads is not usually a Real-Time concern (FIFO vs. RR) –But may be useful Feasibility –Admission control, certification/testing scheduler blocked runnable executing

Issues: Priority Inversion Problem Consider a low priority process L and a high priority process H that both have access to a common shared resource that they can only access mutual exclusively Picture a scenario in which a high-priority thread needs a lock in order to execute, but the lock is being held by a lower-priority thread The lower-priority thread is preventing a higher-priority thread from executing

Issues: Priority Inversion Solution Priority Inheritance Protocol –If thread t 1 attempts to acquire a lock that is held by a lower-priority thread t 2, then t 2 ’s priority is raised to that of t 1 as long as t 2 holds the lock Priority Ceiling Emulation Protocol (Highest locker protocol) –A monitor is given a priority ceiling when it is created, which is the highest priority of any thread that could attempt to enter the monitor –As soon as a thread enters synchronized code, its priority is raised to the monitor’s ceiling priority, thus ensuring mutually exclusive access to the code since it will not be preempted by any thread that could possibly attempt to enter the same monitor –If, through a programming error, a thread has a higher priority than the ceiling of the monitor it is attempting to enter, then an exception is thrown

Definitions

Schedulable Object –Scheduling scheme analogous to threads, tasks, modules, and blocks Schedule –Sequence or ordering of a set of threads Scheduling/Scheduling Algorithm –Production of a sequence or ordering for the execution of a schedule Feasibility Analysis –Determines if a schedule has an acceptable value for the metric

Definitions Timely Execution of Threads –Programmer can determine by analysis of program, testing program on particular implementations, or both whether particular threads will always complete execution before a given timeliness constraint –Expressed in relative or absolute terms

Definitions Priority –Integer associated with a thread that conveys to the system the order in which the threads should execute –Execution Eligibility Dispatching –Portion of the system which selects the thread with the highest execution eligibility from the pool of threads that are ready to run

Threads and Scheduling API

Scheduler Schedulable / RealtimeThread Parameters –SchedulingParameters –ReleaseParameters –ProcessingGroupParameters –MemoryParameters

Threads and Scheduling API scheduler blocked runnable executing parameters (cost, deadline, etc) parameters (cost, deadline, etc) parameters (cost, deadline, etc)

Class Hierarchy Thread RealtimeThread ScheduingParametersReleaseParameters MemoryParameters PriorityParameters ImportanceParameters PeriodicParametersAperiodicParameters SporadicParameters ProcessingGroupParameters NoHeapRealtimeThread

Scheduler

Abstract class Manages the execution of schedulable objects Feasibility algorithm –May determine if the known set of schedulable objects, given their particular execution ordering or priority assignment, is a feasible schedule –Optional Subclasses of Scheduler are used for alternate scheduling policies and should define an instance() class method to return the default instance of the subclass scheduler blocked runnable executing

PriorityScheduler Class that extends Scheduler Implementation for priority- based scheduling Called the base scheduler Default instance is the required priority scheduler Fixed priority, preemptive scheduling with 28 unique priority levels abstract Scheduler PriorityScheduler

Threads / Schedulable Objects

Schedulable Interface that extends java.lang.Runnable Objects of this type are analogous to threads, tasks, modules, and blocks Objects of this type are managed by Scheduler Three implementations of Schedulable –RealTimeThread –NoHeapRealTimeThread –AsyncEventHandler interface java.lang.Runnable interface Schedulable

Schedulable Each object is assigned priority resources according to their release characteristics, execution eligibility, and processing group variables –SchedulingParameters –ReleaseParameters –ProcessingGroupParameters –MemoryParameters

RealtimeThread Class that extends java.lang.Thread and implements Scheduable Includes classes and methods to get and set parameter objects (mentioned in Schedulable ) Must be placed in a memory area such that Java methods on java.lang.Thread complete normally except where such execution would cause access violations Instances may have an execution eligibility logically lower than the garbage collector interface Schedulable java.lang.Thread RealtimeThread interface Runnable

NoHeapRealtimeThread Class that extends RealtimeThread Instances have an implicit execution eligibility logically higher than the garbage collector –Provided in order to allow time- critical threads to execute in preference to the garbage collector –Memory access and assignment semantics are designed to guarantee that the execution does not lead to an inconsistent heap state –Never allowed to allocate or reference any object allocated in the heap nor manipulate the reference of any object in the heap interface Schedulable java.lang.Thread RealtimeThread NoHeapRealtimeThread interface Runnable

Parameters

SchedulingParameters ReleaseParameters ProcessingGroupParameters MemoryParameters

SchedulingParameters Abstract class Provides the parameters used in Scheduler Changes to the values in this object affects the scheduling behavior of all the Scheduable objects to which it is bound Implementations: –PriorityParameters –ImportanceParameters

PriorityParameters Class that extends SchedulingParameters Instances of this class should be assigned to threads that are managed by schedulers which use a singer integer to determine execution order. –Base scheduler PriorityScheduler is such a scheduler abstract SchedulingParameters PriorityParameters

Class that extends SchedulingParameters Instances of this class should be assigned to threads that are managed by schedulers which use a singer integer to determine execution order. –Base scheduler PriorityScheduler is such a scheduler scheduler blocked runnable executing

ImportanceParameters Class that extends PriorityParameters Additional scheduling metric that may be used by some priority-based scheduling algorithms during overload conditions to differentiate execution order among threads of the same priority abstract SchedulingParameters ImportanceParameters PriorityParameters

ReleaseParameters Abstract class Gives release characteristics for a thread –cost: processing time units per interval –deadline: latest permissible completion time measured from the release time of the associated invocation of the schedulable object –overrunHandler: invoked if an invocation of the schedulable object exceeds cost –missHandler: invoked if the run() method of the schedulable object is still executing after the deadline has passed Changes to the values in this object affects the scheduling behavior of all the Scheduable objects to which it is bound Time deadline cost

ReleaseParameters Abstract class Gives release characteristics for a thread –cost: processing time units per interval –deadline: latest permissible completion time measured from the release time of the associated invocation of the schedulable object –overrunHandler: invoked if an invocation of the schedulable object exceeds cost –missHandler: invoked if the run() method of the schedulable object is still executing after the deadline has passed Changes to the values in this object affects the scheduling behavior of all the Scheduable objects to which it is bound Time actual execution cost deadline execution finished (late) projected execution cost

PeriodicParameters Class that extends ReleaseParameters Indicates that the waitForNextPeriod() method in the associated Schedulable object will be unblocked at the start of each period –start: time at which the first period begins –period: interval between successive unblocks Inherits cost, deadline, overrunHandler, and missHandler from parent abstract ReleaseParameters PeriodicParameters

Class that extends ReleaseParameters Indicates that the waitForNextPeriod() method in the associated Schedulable object will be unblocked at the start of each period –start: time at which the first period begins –period: interval between successive unblocks Inherits cost, deadline, overrunHandler, and missHandler from parent Time deadline cost period start

AperiodicParameters Class that extends ReleaseParameters Characterizes a schedulable object that may become active at any time Inherits cost, deadline, overrunHandler, and missHandler from parent abstract ReleaseParameters AperiodicParameters

SporadicParameters Class that extends AperidiocParameters Notice to the scheduler that the associated schedulable object’s run method will be released aperiodically but with a minimum time between releases –minInterarrival: release times of the schedulable object will occur no less than this interval Inherits cost, deadline, overrunHandler, and missHandler from parent abstract ReleaseParameters SporaticParameters AperiodicParameters

SporadicParameters Class that extends AperidiocParameters Notice to the scheduler that the associated schedulable object’s run method will be released aperiodically but with a minimum time between releases –minInterarrival: release times of the schedulable object will occur no less than this interval Inherits cost, deadline, overrunHandler, and missHandler from parent Time deadline cost minInterarrival

ProcessingGroupParameters Class Associated with one or more schedulable objects for which the system guarantees that the associated objects will not be given more time per period than indicated by cost actual execution cost projected execution cost period

ProcessingGroupParameters start: time at which the first period begins period: interval between successive unblocks of waitForNextPeriod() cost: processing time per period deadline: latest permissible completion time measured from the start of the current period overrunHandler: invoked if the run() method of the schedulable object of the previous period is still executing at the start of the current period missHandler: invoked if the run() method of the schedulable object is still executing after the deadline has passed actual execution cost projected execution cost

Example

Realtime Thread Example public class ReceiveThread extends RealtimeThread { public void run() { /* logic for receive thread */ } RealtimeThread rt = new ReceiveThread(); if (!rt.getScheduler().isFeasable) throw new Exception(“Whatever…”); rt.start();

Realtime Thread Example RealtimeThread rt2 = new RealtimeThread() { public void run() { /* logic for receive thread */ } SchedulingParameters sp = new PriorityParameters(PriorityScheduler.getNormPriority(null)); RealtimeThread t2 = new RealtimeThread(sp) { public void run() { /* thread logic */ }

Scheduler Example pubic static Scheduler findScheduler(String policy) { String className = System.getProperty(“javax.realtime.scheduler” + policy); Class clazz; try { if (className != null && (clazz = Class.forName(className)) != null) { return (Scheduler) clazz.getMethod(“instance”, null).invoke(null, null); } } catch (ClassNotFoundException notFound) { } catch (NoSuchMethodException noSuch) { } catch (SecurityException security) { } catch (IllegalAccessException access) { } catch (IllegalArgumentException arg) { } catch (InvocationTargetException target) { } return null; }

Scheduler Example Scheduler scheduler = findScheduler(“EDF”); if (scheduler != null) { RealtimeThread t1 = new RealtimeTread( null,// scheduling param new PeriodicParameters(// release param null,// start new RelativeTime(100, 0),// period new RealativeTime(5, 0),// cost new RelativeTime(50, 0),// deadline null,// overrunHandler null),// missHandler null,// memory param null,// memory area null) {// group param public void run() {// runnable logic /* thread processing */ }

Scheduler Example try { Scheduler.setDefaultScheduler(scheduler); } catch (SecurityException security) { } boolean useEDF = false; try { if (Scheduler.getDefaultScheduler().getPolicyName().equals(“EDF”)) { useEDF = true; }

ProcessingGroup Example SchedulingParameters pp = new PriorityParameters(PriorityScheduler.getNormPriority()); ProcessingGroupParameters group = new ProcessingGroupParameters( null,// start new RelativeTime(100, 0),// period new RelativeTime(10, 0),// cost null,// deadline null,// cost overrun handler null);// deadline miss handler

ProcessingGroup Example RealtimeThread t1 = new RealtimeThread( pp,// priority parameters new AperiodicParameters(// periodic parameters new RelativeTime(10, 0),// cost new RelativeTime(300, 0),// deadline null,// cost overrun handler null),// deadline miss handler null,// memory parameters null,// memory group) {// group paramters public void run() { /* do thread task */ }

ProcessingGroup Example RealtimeThread t2 = new RealtimeThread( pp,// priority parameters new AperiodicParameters(// periodic parameters new RelativeTime(5, 0),// cost new RelativeTime(200, 0),// deadline null,// cost overrun handler null),// deadline miss handler null,// memory parameters null,// memory group) {// group paramters public void run() { /* do thread task */ }

ProcessingGroup Example sp.setPriority(GROUP_PRIORITY); t1.start(); t2.start();

Takeaways Specification, not an implementation Extensibility Benefits of Java

API Reference

API Summary interface Schedulable extends java.lang.Runnable class RealtimeThread extends java.lang.Thread implements Schedulable class NoHeapRealtimeThread extends RealtimeThread abstract class Scheduler class PriorityScheduler extends Scheduler abstract class SchedulingParameters class PriorityParameters extends SchedulingParameters class ImportanceParameters extends PriorityParameters abstract class ReleaseParameters class PeriodicParameters extends ReleaseParameters class AperiodicParameters extends ReleaseParameters class SporadicParameters extends AperiodicParameters class ProcessingGroupParameters

Scheduler Syntax: public abstract class Scheduler Constructor: public Scheduler()

Scheduler Methods protected abstract void addToFeasibility(Schedulable scheduable) public boolean changeIfFeasible(Schedulable schedulable, ReleaseParameters release, MemoryParameters, memory) public static Scheduler getDefaultScheduler() public abstract java.lang.String getPolicyName() public abstract boolean isFeasible() protected abstract void removeFromFeasibility(Schedulable schedulable) public static void setDefaultScheduler(Scheduler scheduler)

PriorityScheduler Syntax: public class PriorityScheduler extends Scheduler Constructor: public PriorityScheduler()

PriorityScheduler Methods protected void addToFeasibility(Schedulable s) public boolean changeIfFeasible(Scheduable schedulable, ReleaseParameters release, MemoryParameters memory) public void fireSchedulable(Scheduable schedulable) public int getMaxPriority() public static int getMaxPriority() public static int getMaxPriority(java.lang.Thread thread) public int getMinPriority() public static int getMinPriority(java.lang.Thread thread) public int getNormPriority() public static int getNormPriority(java.lang.Thread thread) public java.lang.String getPolicyName() public static PrioritySchedular instance() public boolean isFeasible() protected void removeFromFeasibility(Schedulable s)

Scheduable Syntax: public interface Schedulable extends java.lang.Runnable

Scheduable Methods public void addToFeasibility() public MemoryParameters getMemoryParameters() public ReleaseParameters getReleaseParameters() public Scheduler getScheduler() public SchedulingParameters getSchedulingParameters() public void removeFromFeasibility() public void setMemoryParameters(MemoryParameters memory) public void setReleaseParameters(ReleaseParameters release) public void setScheduler(Scheduler scheduler) public void setSchedulingParameters(SchedulingParameters)

RealtimeThread Syntax: public class RealtimeThread extends java.lang.Thread implements Schedulable Constructors: public RealtimeThread() public RealtimeThread(SchedulingParameters scheduling) public RealtimeThread(SchedulingParameters scheduling, ReleaseParameters release) public RealtimeThread(SchedulingParameter scheduling, ReleaseParameters release, MemoryParameters memory, MemoryArea area, ProcessingGroupParameters group, java.lang.Runnable logic)

RealtimeThread Methods public void addToFeasibility() public static RealtimeThread currentRealtimeThread() public synchronized void deschedulePeriodic() public MemoryArea getMemoryArea() public MemoryParameters getMemoryParameters public ProcessingGroupParameters getProcessingGroupParameters() public ReleaseParameters getReleaseParameters() public Scheduler getScheduler() public SchedulingParameters getSchedulingParameters() public synchronized void interrupt()

RealtimeThread Methods public void removeFromFreasibility() public synchronized void schedulePeriodic() public void setMemoryParameters(MemoryParameters parameters) public void setProcesssingGroupParameters(ProcessingGroupParameters parameters) public void setReleaseParameters(ReleaseParameters parameters) public void setScheduler(Scheduler scheduler) public void setSchedulingParameters(SchedulingParameters scheduling) public static void sleep(Clock clock, HighResolutionTime time) public static void sleep(HighResolutionTime time) public boolean waitForNextPeriod()

NoHeapRealtimeThread Syntax: public class NoHeapRealtimeThread extends RealtimeThread Constructors: NoHeapRealtimeThread(SchedulingParameters scheduling, MemoryArea area) NoHeapRealtimeThread(schedulingParameters scheduling, ReleaseParameters release, MemoryArea area) NoHeapRealtimeThread(SchedulingParameters scheduling, ReleaseParameters release, MemoryParameters memory, MemoryArea area, ProcessingGroupParameters group, java.lang.Runnable logic)

SchedulingParameters Syntax: public abstract class SchedulingParameters Contructor: public SchedulingParameters()

PriorityParameters Syntax: public class PriorityParameters extends SchedulingParameters Constructor: public PriorityParameters(int priority) Methods: public int getPriority() public void setPriority(int priority) public java.lang.String toString()

ImportanceParameters Syntax: public class ImportanceParameters extends PriorityParameters Constructor: public ImportanceParameters(int priority, int importance) Methods: public int getImportance() public void setImportance(int importance) public java.lang.String toString()

ReleaseParameters Syntax: public abstract class ReleaseParameters Constructor: protected ReleaseParameters(RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)

ReleaseParameters Methods public RelativeTime getCost() public AsyncEventHandler getCostOverrunHander() public RelativeTime getDeadline() public AsyncEventHandler getDeadlineMissHandler() public void setCost(RelativeTime cost) public void setCostOverrunHandler(AsyncEventHandler handler) public void setDeadline(RelativeTime deadline) public void setDeadlineMissHandler(AsyncEventHandler hander)

PeriodicParameters Syntax: public class PeriodParameters extends ReleaseParameters Constructor: public PeriodicParameters(HighResolution start, RelativeTime period, RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler) Methods: public RelativeTime getPeriod() public HighResolution getStart() public void setPeriod(RelativeTime period) public void setStart(HighResolution start)

AperiodicParameters Syntax: public class AperiodicParameters extends ReleaseParameters Constructor: public AperiodicParameters(RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)

SporadicParameters Syntax: public class SporadicParameters extends AperiodicParameters Constructor: public SporadicParameters(RelativeTime minInterval, RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler) Methods: public RelativeTime getMinimumInterarrival() public void setMinimumInterarrival(RelativeTime minimum)

ProcessingGroupParameters Syntax: public class ProcessingGroupParameters Constructor: public ProcessingGroupParameters(HighResolutionTime start, RelativeTime period, RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)

ProcessingGroupParameters Methods public RelativeTime getCost() public AsyncEventHandler getCostOverrunHandler() public RelativeTime getDeadline() public AsyncEventHandler getDeadlineMissHandler() public RelativeTime getPeriod() public HighResolutionTime getStart() public void setCost(RelativeTime cost) public void setCostOverrunHandler(AsyncEventHandler handler) public void setDeadline(RelativeTime deadline) public void setDeadlineMissHandler(AsyncEventHandler handler) public void setPeriod(RelativeTime period) public void setStart(HighResolutionTime start)

Reference