Presentation is loading. Please wait.

Presentation is loading. Please wait.

RTS: Kernel Design and Cyclic Executives

Similar presentations


Presentation on theme: "RTS: Kernel Design and Cyclic Executives"— Presentation transcript:

1 RTS: Kernel Design and Cyclic Executives
Chapter 4 Amrita-UB-MSES 5/11/2013

2 Kernel & Device drivers
Servers (application ~, web ~, component ~) Shell XWin Thread lib ftp User applications System call interface Process, memory, file system, network managers. Kernel Device drivers Hardware/controller Devices Amrita-UB-MSES 5/11/2013

3 Task characteristics of real workload
Each task Ti is characterized by the following temporal parameters: Precedence constraints: specify any tasks need to precede other tasks. Release or arrival time: ri,j: jth instance of ith task Phase Φi: release time of first instant of ith task Response time: time between activation and completion Absolute deadline: instant by which task must complete Relative deadline: maximum allowable response time Period Pi: maximum length of intervals between the release times of consecutive tasks. Execution time: the maximum amount of time required to complete a instance of the task assuming all the resources are available. Amrita-UB-MSES 5/11/2013

4 Simple kernels Polled loop: Say a kernel needs to process packets that are transferred into the DMA and a flag is set after transfer: for(;;) { if (packet_here) { process_data(); packet_here=0; } Excellent for handling high-speed data channels, a processor is dedicated to handling the data channel. Disadvantage: cannot handle bursts Amrita-UB-MSES 5/11/2013

5 Simple kernels: cyclic executives
Illusion of simultaneity by taking advantage of relatively short processes in a continuous loop: for(;;) { process_1(); process_2(); process_3(); process_n(); } Different rate structures can be achieved by repeating tasks in the list: Amrita-UB-MSES 5/11/2013

6 Cyclic Executives: Example: Interactive games
Space invaders: for(;;) { check_for_keypressed(); move_aliens(); check_collision(); update_screen(); } check_keypressed() checks for three button pressings: move tank left or right and fire missiles. If the schedule is carefully constructed we could achieve a very efficient game program with a simple kernel as shown above. Amrita-UB-MSES 5/11/2013

7 Finite state automata and Co-routine based kernels
void process_a(void){ for(;;) { switch (state_a) { case 1: phase_a1(); | case 2: phase_a2(); | …. case n: phase_an();}}} void process_b(void){ switch (state_b) { case 1: phase_b1(); | case 2: phase_b2(); | case n: phase_bn();}}} state_a and state_b are state counters; Communication between coroutines thru’ global variables; Example: the famous CICS from IBM : Customer Information Control System IBM’s OS/2 uses this in Windows presentation management. Amrita-UB-MSES 5/11/2013

8 Interrupt driven systems
Main program is a simple loop. Various tasks in the system are schedules via software or hardware interrupts; Dispatching performed by interrupt handling routines. Hardware and software interrupts. Hardware: asynchronous Software: typically synchronous Executing process is suspended, state and context saved and control is transferred to ISR (interrupt service routine) Amrita-UB-MSES 5/11/2013

9 Interrupt driven systems: code example
void main() { init(); while(TRUE); } void int1(void){ save (context); task1(); retore (context);} restore (context);} Foreground/background systems is a variation of this where main does some useful task in the background; Amrita-UB-MSES 5/11/2013

10 Process scheduling (last lectures)
Scheduling is a very important function in a real-time operating system. Two types: pre-run-time and run-time Pre-run-time scheduling: create a feasible schedule offline to meet time constraints, guarantee execution order of processes, and prevents simultaneous accesses to shared resources. Run-time scheduling: allows events to interrupt processes, on demand allocation of resources , and used complex run-time mechanisms to meet time constraints. Amrita-UB-MSES 5/11/2013

11 More on Cyclic Executives
Simple loop cyclic executive Frame/slots Table-based predetermined schedule cyclic executive Periodic, aperiodic and interrupt-based task Lets design a cyclic-executive with multiple periodic tasks. 11 Amrita-UB-MSES 5/11/2013

12 The basic systems Several functions are called in a prearranged sequence Some kind of cooperative scheduling You a have a set of tasks and a scheduler that schedules these tasks Types of tasks: base tasks (background), interrupt tasks, clock tasks Frame of slots, slots of cycles, each task taking a cycle, burn tasks to fill up the left over cycles in a frame. 12 Amrita-UB-MSES 5/11/2013

13 Blind Bingo (Homework 2)
Display(); Read input(); Loop: update display(); If all done exit(); End Loop; A c b g k V n m L s E t y w f D v z x e 13 Amrita-UB-MSES 5/11/2013

14 Cyclic Executive Design 1 (pages 83-87)
Base tasks, clock tasks, interrupt tasks Base: no strict requirements, background activity Clock: periodic with fixed runtime Interrupt: event-driven preemption, rapid response but little processing Design the slots Table-driven cyclic executive Amrita-UB-MSES 5/11/2013

15 Cyclic executive Each task implemented as a function
All tasks see global data and share them Cyclic executive for three priority level The execution sequence of tasks within a cyclic executive will NOT vary in any unpredictable manner (such as in a regular fully featured Operating Systems) Clock tasks, clock sched, base tasks, base sched, interrupt tasks Each clock slot executes, clock tasks, at the end a burn task that is usually the base task Study the figures in pages of your text Amrita-UB-MSES 5/11/2013

16 RT Cyclic Executive Program
Lets examine the code: Identify the tasks Identify the cyclic schedule specified in the form of a table Observe how the functions are specified as table entry Learn how the function in the table are dispatched Amrita-UB-MSES 5/11/2013


Download ppt "RTS: Kernel Design and Cyclic Executives"

Similar presentations


Ads by Google