Presentation is loading. Please wait.

Presentation is loading. Please wait.

Realtime System Fundamentals

Similar presentations


Presentation on theme: "Realtime System Fundamentals"— Presentation transcript:

1 Realtime System Fundamentals
B. Ramamurthy 2/28/2019

2 Review of Project Plans
Hardware modifications (proof of concept done) Software to generate xinu.boot Cross compiler (host system to MIPS) gcc is now available at /projects/bina/NEXOS/CSE321 We will have it installed on Linux machines at 206 Franzack And on a Linux laptop You can use this to compile the software you write for shell and drivers and anything else you add to exinu. Uploading xinu.boot to test your shell and drivers: You can do it from any system with a serial port , hyperterminal and tftp installed. Such a setup will be available in the Franzack lab and is currently available during recitation/lecture on Tuesdays at 340 Bell. 2/28/2019

3 Realtime scheduling We discussed realtime system scheduling:
Earliest deadline scheduling (EDS) Starting deadline Completion deadline Dynamic priority scheduling Rate monotonic scheduling (RMS) Periodic tasks are prioritized by the frequency of repetition (high priority to tasks with shorter periods) Preemptive scheduling Fixed priority scheduling See table 3.3 Schedulability according to RMS Σ(Ci/Ti) <= n(21/n-1) Cyclic executives (pre-scheduled) Concepts of hyper-period and frame Hyper-period is a the repeated loop Pages 92-93 Exercises: 3.13 – 3.17 2/28/2019

4 Intertask communication and synchronization
Buffering data: For inter-task communication For sending data To handle incompatibilities between tasks typically a buffer is introduced Classical buffer (fig. 2.11) Double buffer (fig. 2.12) Ring buffer (fig. 2.13) Mail boxes 2/28/2019

5 Mailboxes Mailboxes are intertask communication device available in many commercial operating systems. A mailbox is a memory location that one or more tasks can use to pass data or for synchronization. post and pend are used for mailbox write and read 2/28/2019

6 Mailbox implementation
List of tasks and needed resources (mailboxes, printers etc.) is kept along with a second table of list of resources and their state (tables 3.6, and 3.7) taskID Resource Status 100 printer Has it 102 Mailbox 1 104 Mailbox 2 pending resource status owner printer busy 100 Mailbox 1 102 Mailbox 2 empty none 2/28/2019

7 Mailbox implementation (contd)
Task 104 requests mailbox 2 “pend” or “read”; It blocks waiting for read. Operating system checks task table, if “key” is full or available for mailbox 2, then it unblocks Task 104 and lets it read from mailbox 2; Task 104 reads from mailbox 2 and set it “key” back to empty. Accept is another function for mailbox; it is a non-blocking call; it reads data if available or it fails 2/28/2019

8 Task states Ready, running and blocked Critical regions
Semaphores for protection of critical regions Identify the critical region and enclose it with p() and v() operators of the semaphore Lets look at an example of implementation of mailboxes using semaphores 2/28/2019

9 Mailboxes using semaphores
Semaphore mutex, proc_sem; Bool full, empty; void post(int mailbox, int message) { wait(mutex); if (empty_slots){ insert(mailbox, message); update; signal(mutex); signal(proc_sem); } else {// no empty slots; wait for empty slots wait(proc_sem); wait(mutex); insert(mailbox,message); update(); signal(proc_sem); } 2/28/2019

10 Mailboxes using semaphores
void pend(int *mailbox, int *message) { wait(mutex); if (full_slots) { extract(mailbox, message); update(); signal(mutex); } else { .. signal(mutex); wait(proc_sem); extract(mailbox,message); } 2/28/2019

11 Priority Inversion When we allow concurrent task to execute and with semaphore and mailboxes and other synchronization primitives, it is possible that a low priority task may come to block a high priority task. This situation is known as priority inversion. See fig.3.16 2/28/2019

12 Priority inversion (Priority: t1>t2>t3)
Critical section task1 time blocked task2 task3 2/28/2019

13 Priority Ceiling Protocol
CS Used by Priority Ceiling S1 t1,t2 P(t1) S2 t1,t2,t3 S3 t3 P(t3) Acquire S1 Release S1 task1 Attempt to Acquire S1 Acquire S1 Acquire S2 No way task2 Acquire S2 Release S2 Critical section task3 time 2/28/2019

14 Exercise 3.18 We will work out exercise 3.18 to illustrate priority inheritance and priority ceiling protocol. 2/28/2019

15 Midterm Exam Chapter 3, project 1 and 2, handouts Open book and notes
Earliest deadline scheduling Rate monotonic scheduling Design cyclic executive schedule given a table of task characteristics Priority inversion and solutions in priority inheritance and priority ceiling protocols. Projects: buffer overflow, kernel coding 2/28/2019


Download ppt "Realtime System Fundamentals"

Similar presentations


Ads by Google