Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.

Similar presentations


Presentation on theme: "Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types."— Presentation transcript:

1 Real-Time Kernels and Operating Systems

2 Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types of task activities: data exchange / sharing synchronization scheduling resource sharing Real-time OS (RTOS): one or more tasks must execute within specified time constraints

3 fig_11_00 Example: tasks in meal preparation cannot all be completed in a strict sequence

4 Single process/task: required resources: Process stack Memory address space Registers (in CPU) PC I/O ports and network connections File descriptors … Process state: PC value, register contents, etc. at a given time Which must be shared with other processes? How can this sharing be managed efficiently?

5 fig_11_01 In embedded systems we can think of the CPU as a resource for the current task: CPU is a shared resource Multitasking: more than one task needs to execute, in a seamless manner CPU, other resources must be shared

6 fig_11_02 Multiple processes, typically running concurrently Q: what are some typical processes?

7 fig_11_03 Tasks switch from “running” to “ready/waiting” and back according to a schedule Q: what should be length of turn? Who gets priority?

8 Common sharing strategies: Multiprogramming: task runs until it needs to wait on an external event (e.g., I/O) Real-time: certain tasks have deadlines that must be met Time-sharing: each process gets a time slice; processes are preempted when time slice is up, must wait for next turn

9 fig_11_04 Task context: what is the state of task—e.g., register contents; when tasks are swapped, contexts must also be swapped and task that is not running must have its information saved Task states In simple system

10 Thread: smallest set of resources a task needs (PC and stack, e.g.—if not running, must have copy of register contents) Terminology: Process= “heavyweight thread” Smallest set of resources = “lightweight thread”

11 fig_11_05 Single-thread design: one process

12 fig_11_05 Multiple threads

13 fig_11_07 Process privilege levels affect operations it can carry out without assistance from other processes: Child process: shares code space, has own data space, data, status, stack Multiple threads: each has its own stack, status information Process: separate address space Reentrant code: child process can use same code, needs different local variables

14 fig_11_07 Foreground tasks: initiated by interrupt or real-time constraint—higher priority levels Background tasks—not interrupt-driven—lower priority levels—e.g. monitoring tasks, intensive processing tasks

15 fig_11_07 Operating system: Kernel—portion of OS providing basic functions: Scheduler: Schedule tasks for execution Dispatcher: Choose (“dispatch”) task to run Intertask and interprocess communication: Ensure tasks can communicate as needed and are synchronized as needed

16 fig_11_07 Necessary services to carry out these jobs: Manage processes and tasks, deal with “deadlocks” Manage memory, I/O system, file system RTOS: make sure deadlines are met; make sure behavior is DETERMINISTIC (not necessarily “fast”) Hard real-time; system delays are known or at least bounded Soft real-time: critical tasks have priority and are allowed to run to completion

17 fig_11_08 OS architecture: Virtual machine model: Very modular but may not match real machine

18 fig_11_09 OS architecture: Typical architecture

19 fig_11_10 TCB: task control block—required for each task or process to be executed Task states: Ready Execute dormant

20 fig_11_11 Code for a task control block:

21 fig_11_12 Example: simple system, 3 asynchronous tasks sharing a common data buffer --get data --perform computation --display data Task queue implemented as array Will run “forever” No preemption (each task runs to completion)

22 fig_11_13b Kernel example

23 fig_11_14a Same tasks—using task control blocks

24 fig_11_12 Some problems with this system; Can get stuck in one task Ex: user does not input data so we are stuck in the “get” task Solution: use interrupts, break task into prompt and task to get data when it is available Shared data buffer In this example, only 1 task is active at a time so there is no conflict

25 fig_11_15 Typical function to set address to correct interrupt:

26 fig_11_17a Modification to allow interrupts Part 1 of 3):

27 fig_11_17b Modification to allow interrupts Part 2 of 3):

28 fig_11_17c Modification to allow interrupts Part 3 of 3):

29 fig_11_18 Registers: Can organize as multiple contexts

30 fig_11_19 Registers: Can organize as overlapping contexts—saves overhead on variable passing

31 fig_11_20 Stack: typical stack frame organization

32 fig_11_21 Runtime stack: multiple task information must be stored


Download ppt "Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types."

Similar presentations


Ads by Google