1 / 32

Real-Time Kernels and Operating Systems

Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types of task activities: data exchange / sharing synchronization scheduling resource sharing

hhazel
Download Presentation

Real-Time Kernels and Operating Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 fig_11_00

  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 fig_11_01

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

  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? fig_11_03

  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 fig_11_04

  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 fig_11_05

  12. fig_11_05 Multiple threads fig_11_05

  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 fig_11_07

  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 fig_11_07

  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 fig_11_07

  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 fig_11_07

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

  18. fig_11_09 OS architecture: Typical architecture fig_11_09

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

  20. fig_11_11 Code for a task control block: fig_11_11

  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) fig_11_12

  22. fig_11_13b Kernel example fig_11_13b

  23. fig_11_14a Same tasks—using task control blocks fig_11_14a

  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 fig_11_12

  25. fig_11_15 Typical function to set address to correct interrupt: fig_11_15

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

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

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

  29. fig_11_18 Registers: Can organize as multiple contexts fig_11_18

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

  31. fig_11_20 Stack: typical stack frame organization fig_11_20

  32. Runtime stack: multiple task information must be stored fig_11_21 fig_11_21

More Related