Intro Realtime Chapter1

77
REAL TIME CONCEPTS Real time systems are those in which timely is as important as the correctness of the outputs. Real time systems do not have to be fast systems Or Any system where a timely response by the computer to external stimuli is vital is a real time system. Timely means the real time system runs tasks that have deadlines. Deadline – Time constraint Example : Controlling an aircraft ( Hard real time) Missile Guidance (Hard real time) Air traffic control systems ( Hard real time) Multimedia ( Soft real time ) Real Time Definitions

Transcript of Intro Realtime Chapter1

Page 1: Intro Realtime Chapter1

REAL TIME CONCEPTS

• Real time systems are those in which timely is as important as the correctness of the outputs.

• Real time systems do not have to be fast systems

Or

• Any system where a timely response by the computer to external stimuli is vital is a real time system.

• Timely means the real time system runs tasks that have deadlines.

• Deadline – Time constraint

Example : Controlling an aircraft ( Hard real time)

Missile Guidance (Hard real time)

Air traffic control systems ( Hard real time)

Multimedia ( Soft real time )

Real Time Definitions

Page 2: Intro Realtime Chapter1

REAL TIME CONCEPTS

• Example : Data Recording System

Receive Data Store Data Storage

Receive Data Buff Store Data Storage

Page 3: Intro Realtime Chapter1

REAL TIME CONCEPTS

• All practical systems are said to be real time systems, if they meet deadlines.

• A word processor which gives response within certain time (eg:1sec) is considered acceptable.

When is a system Real Time ?

Soft Real Time

The systems whose performance degrades but not destroyed because of not meeting deadlines.

Example: Multimedia Streams

Hard Real Time

The system fails because of not meeting deadlines.

Example: Controlling an aircraft

Page 4: Intro Realtime Chapter1

REAL TIME CONCEPTS

• Definition

Any occurrence that causes the program counter to change non-sequentiality is considered a change of flow-of-control, and thus an event.

Events

receive process

Void *Receive(void*)

{ recvfrom();

pthread_signal();

}

Void *Process(void*)

{ pthread_wait();

process data;

}

Page 5: Intro Realtime Chapter1

REAL TIME CONCEPTS

•Definition

A system is said to be deterministic if, for each possible state and each set of inputs, a unique set of outputs and next state of the system can be determined.

Determinism

idle takeoff Set course

Page 6: Intro Realtime Chapter1

REAL TIME CONCEPTS

• For any physical system certain states exist under which the system is considered to be out of control.

• The software controlling such a system must avoid these states.

Example:

In certain guidance systems for robots or aircraft, rapid rotation through a 180’ pitch angle can cause a physical loss of gyro control.

• The software ability to predict next state of the system given the current state and a set of inputs.

Determinism

Page 7: Intro Realtime Chapter1

REAL TIME CONCEPTS

• Time-Loading, or the utilization factor, is a measure of the percentage of useful processing the computer is doing.

Time Loading

Page 8: Intro Realtime Chapter1

REAL TIME CONCEPTS

• The selection of hardware and software, and the appropriate mix needed for cost effective solution.

• Decide upon existing commercial RTOS or to design a special OS.

• Selection of an software language for system development.

• Maximize fault tolerance and reliability thru design and rigorous testing.

• selection of test and development equipment.

Real Time Design Issues

Page 9: Intro Realtime Chapter1

REAL TIME CONCEPTS

1. Aircraft Navigation System

Examples of Real Time Systems

• Receive x,y,z accelerometer pulses at 5 millisecond rate.

• Receive roll, pitch and yaw angles from a special equipment every 40 millisecond rate.

• Receive temperature at 1 second rate.

• Determine the velocity vector at a 40 millisecond rate.

• Output the true velocity every 1 second to the pilots display.

Page 10: Intro Realtime Chapter1

REAL TIME CONCEPTS

2. Nuclear Plant Monitoring System

Examples of Real Time Systems

• Security event trigger must be responded within a second.

• An event trigger indicates that the nuclear core has reached an over-temperature and this signal must be dealt within a 1 millisecond.

Page 11: Intro Realtime Chapter1

REAL TIME CONCEPTS

3. Airline Reservation System

Examples of Real Time Systems

• Transaction turn-around time must be less than 15 seconds.

• At any time several agents must access the database and book the ticket.

Page 12: Intro Realtime Chapter1

Language Issues

Parameter Passing

• Parameters that are passed by value are typically copied onto stack at run-time, at considerable execution time cost.

• Pascal , C and Ada support this feature.

Pass by Value

Page 13: Intro Realtime Chapter1

Language Issues

Parameter Passing

• Indirect instructions are needed for manipulating variables that are passed by reference.

• takes more time for the execution

• Pascal , C and Ada support this feature.

Pass by Reference

Page 14: Intro Realtime Chapter1

Language Issues

Parameter Passing

• The relative advantages and disadvantages depend upon compiler, coding style, target hardware, type of application code, and size of parameters.

Pass by Reference vs Value

Page 15: Intro Realtime Chapter1

Language Issues

Parameter Passing

• The relative advantages and disadvantages depend upon compiler, coding style, target hardware, type of application code, and size of parameters.

Pass by Reference vs Value

Page 16: Intro Realtime Chapter1

Language Issues

Recursion

• procedure is self referential.

• procedure calls require allocation of storage for parameters, local variables, etc.,

•allocation and deallocation consumes time.

• we need to determine run time memory.

• re-entrant code must be protected by semaphores.

Page 17: Intro Realtime Chapter1

Language Issues

Dynamic Allocation

• Dynamic allocation is important for the construction and maintenance of the stacks needed by the real time operating systems.

• although it is time consuming – it is necessary

Page 18: Intro Realtime Chapter1

Language Issues

Typing

• Each variable and constant be of specific type eg:int, real

• Strongly typed languages prohibit mixing of different types in operations and assignments.

Advantages:

- Avoid the truncation of data.

Page 19: Intro Realtime Chapter1

Language Issues

Exception Handling

• Certain languages provide facilities for dealing with errors or other conditions that arise during program execution.

• During run time when an exception occurs certain code is executed to handle it ( exception handler).

Page 20: Intro Realtime Chapter1

Language Issues

Abstract Data Typing

• Abstract representation of entities.

• Program design easier and clearer.

• Example:- structures and records, enumerated data types

• Does not improve the real-time performance.

Page 21: Intro Realtime Chapter1

Language Issues

Object Oriented Languages

Features: Abstraction

Inheritence

Polymorphism

• poly and inheritence – delay factors

• program written in C++ is 43% slower than C.

• delays result from automatic storage management.

• clearer design and better maintainability.

Page 22: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Polled Loop Systems

• Polled Loop Systems are the simplest real-time kernel.

• Polled loops allow for fast response to single devices.

• A single repetitive test instruction is used to test a flag.

• If the event has not occurred then the polling continues.

• No Intertask Communication is required because only single task exists.

• Polled loop schemes work well when a single processor is dedicated to handling I/O.

Page 23: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Polled Loop with Interrupts

• A variation on the polled loop uses a fixed clock interrupt to wait a period of time between when the flag is TRUE and when the flag is set to FALSE.

• Waiting avoids interpreting settling oscillations as events.

• A delay period can be realized with a programmable timer that issues an interrupt after a countdown period.

• while TRUE do

•Begin

•if FLAG = TRUE then begin

•counter = 0;

Page 24: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Polled Loop with Interrupts

•while TRUE do

•Begin

•if FLAG = TRUE then begin

•counter = 0;

While counter < 3

FLAG = FALSE;

process event;

End

End

Page 25: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Polled Loop with Interrupts

•Polled loop systems are excellent for high speed data channels.

• The processor is dedicated to handling the data channel.

•Dis:

• waste cpu incase of infrequent event.

Page 26: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

PHASE/STATE DRIVEN CODE

•The processing of the function is broken into discrete segments.

• uses nested is then else statements or finite automata.

• ex: complier- lexical, syntax, code generation etc.,

•Case 1: perform part1;

•Case 2:perform part2;

Page 27: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Co-routines

•These types of kernels are employed in conjunction with code driven by finite state automata.

• In this scheme two or more processes are coded in the state driven fashion.

• After each phase a call is made to the central dispatcher.

• The dispatcher selects next process to execute. This process continues until the next phase is complete and the central dispatcher is called again.

• processes communicate via global variables.

•Dis: communication via global variables

Page 28: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

INTERRUPT DRIVEN SYSTEMS

• The tasks are scheduled via hardware or software interrupts.

• Dispatching is performed by interrupt handling routines.

• The interrupts may occur at fixed rate – periodically or aperiodically.

•Sporadic tasks - interrupts occur aperiodically.

• fixed rate systems – interrupts occur at fixed frequencies.

• when hardware scheduling is used a clock or external device issues signals.

Page 29: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

CONTEXT SWITCHING

• Context switching is the process of saving and restoring sufficient information for a real time task so that it can be resumed after being interrupted.

• The context is saved to a stack data structure.

Context saving rule:

• Context switching is a major contribution to response times.

• is a factor that we strive to minimize.

• save minimum information necessary to restore

Page 30: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

CONTEXT SWITCHING

• Contents of registers

• pc

• Coprocessor registers

• Memory page registers

•Special variables

• memory mapped I/O location mirror images

• Interrupts are disabled during the critical context switching period.

Page 31: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Stack Model

• The stack model for context switching is used mostly in embedded systems.

• The context is saved by the interrupt controller.

Page 32: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Round-Robin Systems

• Several processes are executed sequentially to completion.

• Each task is assigned a time quantum.

• A fixed rate clock is used to initiate an interrupt at a rate corresponding to the time slice.

• The task switches its context after the time quantum.

• The context of the next task is resumed for the execution.

Page 33: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Preemptive Priority Systems

• A high priority task is said to preempt a lower priority task.

• The systems that use preemption schemes instead of round robin or first come first serve scheduling are called preemptive priority systems.

• The priorities assigned to each interrupt are based on the urgency of the task associated with that interrupt.

• Prioritized interrupts can be either fixed priority or dynamic priority.

• Fixed priority systems are less flexible in that the task priorities cannot be changed.

• Dynamic priority systems can allow the priorities of tasks to change. This feature is particularly important in certain types of threat management systems.

Page 34: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Preemptive Priority Systems

• Preemptive priority schemes can lead to the hogging of resources by higher priority tasks. This can lead to a lack of available resources for lower priority tasks.

• The lower priority tasks are said to be facing a problem called starvation.

Page 35: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Rate Monotonic systems

• The priorities are assigned so that the higher the execution frequency , the higher the priority.

• This scheme is common in embedded applications, particularly avionics systems, and has been studied extensively.

• In rate-monotic systems priority inversion may necessarily occur.

Where priority inversion is required

• A low priority process with high frequency of execution is assigned a high priority.

• A high priority task with low frequency of execution is assigned a low priority.

Page 36: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Rate Monotonic systems

Where priority inversion is required

• A lower priority routine holds a resource using a semaphore that a high priority routine needs.

Process1

semlock();

for I = 0 to 100

a [I] = a[I] + 1*I;

semunlock();

Process2

semlock();

for I = 0 to 100

a [I] = a[I] + 2*I;

semunlock();

Page 37: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

Hybrid systems

• Include interrupts that occur at fixed rates and sporadically.

• Sporadic systems are used to handle critical errors that requires immediate attention, and thus have highest priority.

• Another type of hybrid system found in commercial operating systems is combination of round-robin and preemptive systems.

• In these systems tasks of highest priority can always those of lower priority.

• However, tasks of same priority are ready to run simultaneously, then they run in round-robin fashion.

Page 38: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.5 FOREGROUND / BACKGROUND SYSTEMS

• These systems are the most common solution for embedded applications.

• They involve set of real time processes called the foreground and a collection of noninterrupt driven processes called background.

• The foreground tasks run in round-robin, preemptive priority, or combination fashion.

• The background task is fully preemtable by any foreground task and, in sense, represents the lowest priority task in the system.

• All real time systems are special cases of foreground/background systems.

Page 39: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.5.1 BACKGROUND Processing

• Any thing that is not time critical.

• Background process is the process with the lowest priority.

• The rate at which the background process runs is ver low and depends upon the time-loading factor.

• if “ p” time loading factor for all foreground processes.

• if “ e” is the execution time of background process.

• then background process execution period “ t” is given by

t = e / (1-p)

Examples: Self testing in the background.

display updates.

Page 40: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.5.2 Initialization

• Disable Interrupts

• Set up Interrupt vectors and stacks

• perform self test

• perform system initialization

• Enable Interrupts

Page 41: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.5.3 Real Time Operation

• Foreground/Background systems represent a superset of all rael time solutions.

• They have good response times , since they rely on hardware to perform scheduling.

Drawback

• Interfaces to complicated devices and networks must be written.

• this procedure can be tedious and prone to error.

Page 42: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.6 FULL FEATURED REAL TIME OPERATING SYSTEMS

• Foreground/Background systems can be extended into an real time OS by adding additional functions such as network interfaces, complicated device drivers, and complex debugging tools.

• such systems rely on RR-preemptive scheduling

• OS – is a high priority task

Page 43: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.6.1 Task Control Block Model

• This is the most popular method for implementing commercial, full featured, real time OS.

• It is useful in interactive on line systems where tasks come and go.

• it is used in RR-preemptive systems

6.6.1.1 The Model

• Each task is associated with a context ( pc and regs), an ID, status flag anf priority. These are stored in a structure called TCB. And the collection is stored in list.

6.6.1.2 Task States

• A task can take one of the following states

Executing, Ready, Suspended, Dormant

Page 44: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.6.1.3 Task Control Block Model

Executing – After creation

Ready – After time slice

Suspended – After an event

Dormant – After deletion

Page 45: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.6.1.3 Task Management

• It is the highest priority task

• Every hardware interrupt and every system level call invokes the real time OS.

•TCB – Linked list

• Suspended States – Linked List

• Table of resources

• Table of resource requests.

•When OS is invoked it checks ready list – if next task is ready for execution

•If eligible – then the TCB of currently executing task moves to the end of the list

• Eligible list is removed from the ready list and added to exec list

Page 46: Intro Realtime Chapter1

Chapter 3

Real Time Kernel

6.6.1.3 Task Management

• It also checks status of resources in suspended list.

• if a task is suspended on a resource it enters ready state.

Page 47: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7.1 Buffering Data

• Several mechanisms can be employed to pass data between tasks in a multicasting system.

• The simplest and the fastest mechanism among these is the use of global variables.

• Global variables are contrary to good software engineering practices.

• One of the problems with global variables is that tasks of highest priority can preempt lower-priority routines, corrupting global data.

• The producer can produce the data in buffer and Consumer can read the data from the buffer.

• The buffer can be stack or some other data structure, including an unorganized mass of variables.

Page 48: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7.1.1 Time Relative Buffering

• Double buffering or ping–pong, this technique can be used when time-relative data need to be transferred between cycles of different rates.

•Examples:

- Disk controllers

- Graphical Interfaces

- robot controls

Producer Buffer1 Buffer2 Consumer

Page 49: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7.1.2 Ring Buffers

• A special data structure called a circular queue or ring buffer is used in the same way as a first in first out.

• Ring buffers are easy to manage.

• In the ring buffer, simultaneous I/O are achieved by keeping head and tail pointers.

• Data are loaded at the tail and read from the head.

• An implementation of ring buffer is given below;

Page 50: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7.1.2 Ring Buffers

• procedure read

if head = tail

underflow

else

data = S[head]

head = (head+1) mod N

end

end

Procedure write

if (tail + 1)mod N = head then

overflow

else

s[tail] = data

tail = (tail + 1) mod N

end

End

Page 51: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 2 Mail Boxes

• A mail box is a mutually agreed upon memory location that two or more tasks can use to pass data.

• The tasks rely on central scheduler, to write to the location via post operation and read via pend operation.

• The data can be single piece of data or pointer to a larger data structure such as a list or an array.

• In most implementations when the key is taken from the mailbox, the mailbox is emptied.

• Thus several tasks can pend on the mailbox, only one task can receive the key, since key represents the access to a critical resource.

Page 52: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 2 Mail Boxes

Procedure post

mailbox gets data

End

Procedure pend

Task reads content of mailbox in data, otherwise suspend the task

End

Task #100 Mail Box Printer

Page 53: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 2.3 Ring buffer and queues to control pool of devices

Ring bufferserver server

requestsTo device

Page 54: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 3 Critical Regions

• Critical region is a part of code that operates on shared resource.

• Two tasks should not be allowed to enter critical region.

• Simultaneous use of reusable resources is called collision.

• Hence, collision must be prevented.

Page 55: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4 Semaphore

• Semaphore is mechanism used to protect critical region.

• It consists of a variable which acts as a lock to protect resources.

• Two operations wait and signal are used to set or reset the semaphore.

• The primitive operations are defined by the code below;

Procedure wait(S)

while S = TRUE do;

S = TRUE;

End

Page 56: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.1 mailboxes and Semaphores

•Mail boxes can be used to implement semaphores if semaphore primitives are not provided by the operating system.

• In this, there is an advantage that the pend instruction suspends the waiting process rather than actually waiting on the semaphore.

•Proc wait(T)

pend(temp,T)

End

Proc signal(T)

post(Key,T)

End

Page 57: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.2 Counting Semaphores

•Used to protect pools of resources.

• Semaphore must be initialized to number of resources.

• Proc Wait(Cs)

•Cs = Cs – 1

•While Cs < 0 do {wait}

End

Proc Signal(Cs)

Cs = Cs + 1

End

Page 58: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.3 Problems with Semaphores

•LOAD R1,S

•TEST R1,1

•JEQ @1 S = = TRUE ????????

•STORE S,1 S = TRUE

Page 59: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.4 The Test-and-Set Instruction

• To solve the problem of atomic operation between testing a memory location and storing a specific value in it, some instruction sets provide a test-and-instruction.

• The main idea is to combine testing and storing functions into a single atomic operation.

• The test and set instruction fetches a word from the memory and tests the high order bit, if the bit is zero, it is set to 1 and a condition code of zero is returned. If the bit is 1, a condition code of 1 is returned.

Page 60: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.4 The Test-and-Set Instruction

Procedure wait(S)

while test-and-set(S) = TRUE do { wait }

S = TRUE;

End

Procedure Signal(S)

begin

S = FALSE;

End

Page 61: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 4.4 The Test-and-Set Instruction

The procedure wait would generate the assembly language code that may look like;

loop:

TANDS S

JNE loop

Page 62: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 5 Event Flags and Signals

• Certain Languages provide for synchronization mechanisms called event flags.

• These constructs allow for the specification of an event that causes the setting of some flag.

• A second process is designed to react to this flag.

• Event flags in essence represent simulated interrupts, created by the programmer.

• Raising the event transfers flow-of-control to the operating system, which can then invoke the appropriate handler.

• Tasks that are waiting for the occurrence of an event are said to be blocked.

Page 63: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 5 Event Flags and Signals

• For Example:

In ANSI-C, the raise and signal facilities are provided.

Signal is a type of s/w interrupt handler, that is used to react to an exception indicated by raise operation.

Page 64: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

• When tasks are competing for the same set of two or more serially reusable resources, then a deadlock situation may ensue.

• The notion of deadlock is illustrated by an example below;

Procedure Task_A; Procedure Task_B

Wait(S); Wait( R);

Update database file; update Array;

Wait( R); Wait(S);

Update Array; Update database file

Signal(R); Signal( S);

Signal(S) ; Signal( R);

End End

Page 65: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

• Deadlock is a serious problem because it cannot always be detected through testing.

• Starvation – At least one process satisfies its requirements.

• Deadlock – No processes can satisfy their requirements because all are blocked.

Four Conditions necessary for deadlock situation;

- Mutual Exclusion.

- Circular Wait.

- Hold and Wait.

- No Preemption.

Page 66: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

Mutual Exclusion : -

• Mutual exclusion applies to those resources that are not sharable.

• Example:- printers, disk devices and output channels.

• Mutual exclusion can be removed by making them sharable to an application task.

Circular Wait : -

• Circular wait condition occurs, when several processes exist that hold resources needed by other processes further down the chain.

• One way to impose an ordering on resources and to force all processes to request resources in increasing order of enumeration.

Page 67: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

Device Number

Disk 1

Printer 2

Motor Control 3

Monitor 4

Page 68: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

Hold and Wait: -

• The hold and wait condition occurs when processes request resource and then lock that resource until subsequent resource requests are filled.

• One solution to this problem is to allocate to a process all potentially required resources at the same time.

• This leads to starvation.

• Never allow a process to lock more than one resource at a time.

Page 69: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6 Deadlock

No Preemption: -

• No Preemption can lead to a deadlock.

• If a low priority process holds a resource protected by semaphore S, and if a high priority task interrupts and then waits on semaphore S, the priority inversion will cause the high priority task to wait forever, since the low-priority task can never run to release the resource and signal the semaphore.

• If we allow the higher priority task to preempt the lower one, then the deadlock can be eliminated.

Page 70: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6.1 Deadlock Avoidance

• Several Techniques for avoiding deadlock are available;

- If the semaphores protecting critical regions are implemented by mailboxes with timeouts, then deadlock cannot occur. But starvation occurs.

- Allow preemption- High priority tasks should preempt low priority tasks.

- Eliminate Hold and Wait Condition.

- Another technique uses bankers algorithm. This a slow technique for real time systems.

Page 71: Intro Realtime Chapter1

Chapter 4

Inter task Communication

7. 6.2 Detect and Recover

• One algorithm called ostrich algorithm, advises that the problem must be ignored, if it occurs infrequently.

• Another method says to restart the system completely, this may not be acceptable for some critical systems.

• If a deadlock is detected rollback to a pre-deadlock state.

Page 72: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

Key Points of the Chapter

• Noninterrupt driven systems can be analyzed for real time behavior.

• It is impossible predict the performance of interrupt driven systems.

• The performance is studied based on following parameters;

- Response Time:- time between receipt of an interrupt and completion of processing.

- Time Loading :- Percentage of time CPU is doing useful processing

- Memory Loading:- Percentage of memory that is being used.

Page 73: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

9.1 Response Time Calculation

• Depends upon the type of the system.

Polled Loops:-

• The response time delay consists of three components

- Hardware delay required to set the software flag by some external device.

- The time required to test the flag.

- The time needed to process the event.

RT = Set flag (nanosecs) + Check flag (micro) + Process Event (milliseconds)

Overlapping events are not allowed.

Page 74: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

9.1 Response Time Calculation

Coroutines / Phase Driven code:-

• The response time is calculated by tracing the execution path.

•Proc A

•While TRUE do

•Case phase1:

•Case pahse2:

•Case phase3:

•End

Page 75: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

9.1 Response Time Calculation

Interrupt Systems:-

• The response time is calculated by considering following factors;

RT = Interrupt Latency + Context Switch Time +

Schedule Time + Process Interrupt Time.

RT = Li + Cs + Si + Ai

Interrupt Latency: -

•It is the delay when an Interrupt occurs and when the CPU begins reacting to it.

Page 76: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

9.1 Response Time Calculation

Interrupt Latency: -

•There are two cases;

• Case 1: When high priority interrupt occurs;

Li = Lp + max { Lm,Ld};

Lp = Propagation delay of the interrupt signal.

- Time when an Ext-device initiates a signal and when it actually latches to Interrupt Controller.

- Depends upon of transit time of electrons across wires.

- and switching speed of Interrupt Controller.

Lm = is the longest completion time of an instruction in the interrupted process.

Page 77: Intro Realtime Chapter1

Chapter 5

System Performance Analysis And Optimization

9.1 Response Time Calculation

Interrupt Latency: -

•There are two cases;

• Case 1: When high priority interrupt occurs;

Li = Lp + max { Lm,Ld};

Ld = Max Time the interrupts are disabled by lower priority tasks.

• Case 2: When low priority interrupt occurs;

Li = Lh

Lh = Time needed to complete high priority routines.

= Impossible to determine.