This document discusses real-time operating systems (RTOS), focusing on principles and a case study of EMERALDS, an RTOS designed for small memory embedded systems. It describes the requirements and classifications of RTOSs, approaches to minimizing code size and execution overhead in EMERALDS, and how EMERALDS implements efficient real-time scheduling, semaphores, message passing and memory protection for constrained embedded devices. The document also discusses how EMERALDS was adapted to the OSEK standard for automotive systems.
This presentation talks about Real Time Operating Systems (RTOS). Starting with fundamental concepts of OS, this presentation deep dives into Embedded, Real Time and related aspects of an OS. Appropriate examples are referred with Linux as a case-study. Ideal for a beginner to build understanding about RTOS.
Coming up with optimized C program for Embedded Systems consist of multiple challenges. This presentation talks about various methods about optimizing C programs in Embedded environment. It also has some interesting tips, Do's and Dont's that will offer practical help for an Embedded programmer.
Presentació a càrrec d'Ismael Fernández i Cristian
Gomollón (tècnics d'Aplicacions al CSUC) duta a terme a la jornada de formació "Com usar el servei de càlcul del CSUC" celebrada el 8 d'octubre de 2019 al CSUC.
This presentation talks about Real Time Operating Systems (RTOS). Starting with fundamental concepts of OS, this presentation deep dives into Embedded, Real Time and related aspects of an OS. Appropriate examples are referred with Linux as a case-study. Ideal for a beginner to build understanding about RTOS.
Coming up with optimized C program for Embedded Systems consist of multiple challenges. This presentation talks about various methods about optimizing C programs in Embedded environment. It also has some interesting tips, Do's and Dont's that will offer practical help for an Embedded programmer.
Presentació a càrrec d'Ismael Fernández i Cristian
Gomollón (tècnics d'Aplicacions al CSUC) duta a terme a la jornada de formació "Com usar el servei de càlcul del CSUC" celebrada el 8 d'octubre de 2019 al CSUC.
Join this video course on Udemy. Click the below link
https://www.udemy.com/embedded-system-programming-on-arm-cortex-m3m4/?couponCode=SLIDESHARE
This presentation course covers full architectural and internal details of one of the most famous processor ARM Cortex M3 and M4. Processor core, NVIC, Register set, Bus interfaces, AHB,APB,SYS BUS,Interrupts,memory fully explained.
Embedded Systems are basically Single Board Computers (SBCs) with limited and specific functional capabilities. All the components that make up a computer like the Microprocessor, Memory Unit, I/O Unit etc. are hosted on a single board. Their functionality is subject to constraints, and is embedded as a part of the complete device including the hardware, in contrast to the Desktop and Laptop computers which are essentially general purpose (Read more about what is embedded system). The software part of embedded systems used to be vendor specific instruction sets built in as firmware. However, drastic changes have been brought about in the last decade driven by the spurt in technology, and thankfully, the Moore’s Law. New, smaller, smarter, elegant but more powerful and resource hungry devices like Smart-phones, PDAs and cell-phones have forced the vendors to make a decision between hosting System Firmware or full-featured Operating Systems embedded with devices. The choice is often crucial and is decided by parameters like scope, future expansion plans, molecularity, scalability, cost etc. Most of these features being inbuilt into Operating Systems, hosting operating systems more than compensates the slightly higher cost overhead associated with them. Among various Embedded System Operating Systems like VxWorks, pSOS, QNX, Integrity, VRTX, Symbian OS, Windows CE and many other commercial and open-source varieties, Linux has exploded into the computing scene. Owing to its popularity and open source nature, Linux is evolving as an architecturally neutral OS, with reliable support for popular standards and features
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
This ppt explains in brief what actually is arm processor and it covers the first 3 chapters of book "ARM SYSTEM DEVELOPERS GUIDE". The 3 chapters include the history,architecture,instruction set etc.
The accompanying demo (slide 15) can be found at https://vimeo.com/90534015
The presentation will cover Xen vs Xen Automotive gaps and analysis. We will elaborate technical solutions for the identified gaps:
* ARM architecture - support HW virtualization extensions for embedded systems
* Stability requirements
* RT Scheduler
* Rich virtualized peripheral support (WiFi, Gfx, MM, USB, etc.)
* Performance benchmarking
* Security
The audience is anyone interesting in building OSS based IVI systems. Attendees can expect the OSS stack detailed architecture, current status of the project, the challenges seen, road map and much more.
Join this video course on Udemy. Click the below link
https://www.udemy.com/embedded-system-programming-on-arm-cortex-m3m4/?couponCode=SLIDESHARE
This presentation course covers full architectural and internal details of one of the most famous processor ARM Cortex M3 and M4. Processor core, NVIC, Register set, Bus interfaces, AHB,APB,SYS BUS,Interrupts,memory fully explained.
Embedded Systems are basically Single Board Computers (SBCs) with limited and specific functional capabilities. All the components that make up a computer like the Microprocessor, Memory Unit, I/O Unit etc. are hosted on a single board. Their functionality is subject to constraints, and is embedded as a part of the complete device including the hardware, in contrast to the Desktop and Laptop computers which are essentially general purpose (Read more about what is embedded system). The software part of embedded systems used to be vendor specific instruction sets built in as firmware. However, drastic changes have been brought about in the last decade driven by the spurt in technology, and thankfully, the Moore’s Law. New, smaller, smarter, elegant but more powerful and resource hungry devices like Smart-phones, PDAs and cell-phones have forced the vendors to make a decision between hosting System Firmware or full-featured Operating Systems embedded with devices. The choice is often crucial and is decided by parameters like scope, future expansion plans, molecularity, scalability, cost etc. Most of these features being inbuilt into Operating Systems, hosting operating systems more than compensates the slightly higher cost overhead associated with them. Among various Embedded System Operating Systems like VxWorks, pSOS, QNX, Integrity, VRTX, Symbian OS, Windows CE and many other commercial and open-source varieties, Linux has exploded into the computing scene. Owing to its popularity and open source nature, Linux is evolving as an architecturally neutral OS, with reliable support for popular standards and features
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
This ppt explains in brief what actually is arm processor and it covers the first 3 chapters of book "ARM SYSTEM DEVELOPERS GUIDE". The 3 chapters include the history,architecture,instruction set etc.
The accompanying demo (slide 15) can be found at https://vimeo.com/90534015
The presentation will cover Xen vs Xen Automotive gaps and analysis. We will elaborate technical solutions for the identified gaps:
* ARM architecture - support HW virtualization extensions for embedded systems
* Stability requirements
* RT Scheduler
* Rich virtualized peripheral support (WiFi, Gfx, MM, USB, etc.)
* Performance benchmarking
* Security
The audience is anyone interesting in building OSS based IVI systems. Attendees can expect the OSS stack detailed architecture, current status of the project, the challenges seen, road map and much more.
There are a set of new real-time scheduling algorithms being developed for the Linux kernel, which provide temporal isolation among tasks.
These include an implementation of the POSIX sporadic server (SS) and a deadline-based scheduler. These are based on the specification of
the scheduling guarantees needed by the kernel in terms of a budget and a period.
This presentation aims to tackle the issues related to how to design a proper kernel-space / user-space interface for accessing such new
functionality. For the SS, a POSIX compliant implementation would break binary compatibility. However, the currently implemented API seems to be lacking some important features, like a sufficient level of extensibility. This would be required for example for adding further parameters in the future, e.g., deadlines different from periods, or soft (i.e., work-conserving) reservations, or how to mix power management in the looop (if ever).
Bill Aulet's keynote speech at 2016 Global Entrepreneurship Conference in Medellin Colombia. Focus on the past, present and future of entrepreneurship educaiton and what needs to be done.
How to Make Awesome SlideShares: Tips & TricksSlideShare
Turbocharge your online presence with SlideShare. We provide the best tips and tricks for succeeding on SlideShare. Get ideas for what to upload, tips for designing your deck and more.
For System-on-Chip (SOC) at sub-0.25um nodes, In-System-Programmability (ISP) is a must. A novel ISP solution is discussed to resolve the CMOS logic vs. NVM (non-volatile-memory) compatibility challenges, so that they can co-exist on the same chip without too much impact on the CMOS logic baseline (including device model and process flow).
Slides of a talk given at ERTS2008 in Toulouse. Abstract: with the increasing amount of electronics, making best usage of the bandwidth becomes of primary importance in automotive networks. One
solution that is being investigated by car manufacturers is to schedule the messages with offsets, which leads to a desynchronization of the message streams. As it will be shown, this “traffic shaping” strategy is very beneficial in terms of worst-case response times. In this slides, the problem of choosing the best offsets is addressed in the case of Controller Area Network, which is a de-facto standard in the automotive world. Comprehensive experiments shown give insight into the fundamental reasons why offsets are efficient, and demonstrate that offsets actually provide a major performance boost in terms of response times. These experimental results suggest that sound offset strategies may extend the lifespan of CAN further, and may defer the introduction of FlexRay and additional CAN networks.
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...EUDAT
Giuseppe will present the differences between high-performance and high-throughput applications. High-throughput computing (HTC) refers to computations where individual tasks do not need to interact while running. It differs from High-performance (HPC) where frequent and rapid exchanges of intermediate results is required to perform the computations. HPC codes are based on tightly coupled MPI, OpenMP, GPGPU, and hybrid programs and require low latency interconnected nodes. HTC makes use of unreliable components distributing the work out to every node and collecting results at the end of all parallel tasks.
Visit: https://www.eudat.eu/eudat-summer-school
1. Real-Time Operating Systems:Real-Time Operating Systems:
Principles and a Case StudyPrinciples and a Case Study
Kang G. Shin
Real-Time Computing Laboratory
EECS Department
University of Michigan
URL: http://www.eecs.umich.edu/~kgshin
2. 17/08/2001 2
OutlineOutline
! Generic Aspects of RTOSs
– Requirements
– Classification
– Approaches
! Case Study: a Small Memory RTOS, EMERALDS
– Motivation
– Overview of EMERALDS
– Minimizing Code Size
– Minimizing Execution Overheads
! Conclusions
3. 17/08/2001 3
Real-Time Operating SystemsReal-Time Operating Systems
! Four main functions
– Process management and synchronization
– Memory management
– IPC
– I/O
! Must also support predictability and real-
time constraints
5. 17/08/2001 5
Proprietary KernelsProprietary Kernels
Small and fast commercial RTOSs: QNX, pSOS,
VxWorks, Nucleus, ERCOS, EMERALDS,
Windows CE,...
! Fast context switch and interrupt response
! Small in size
! No virtual memory and can lock code & data in
memory
! Multitasking and IPC via mailboxes, events,
signals, and semaphores
6. 17/08/2001 6
Proprietary Kernels (cont’d)Proprietary Kernels (cont’d)
! How to support real-time constraints
– Bounded primitive exec time
– real-time clock
– priority scheduling
– special alarms and timeouts
! Standardization via POSIX RT extensions
7. 17/08/2001 7
RT ExtensionsRT Extensions
RT-UNIX,RT-LINUX, RT-MACH, RT-POSIX
! Slower, less predictable, but more functions and
better development envs.
! RT-POSIX: timers, priority scheduling, rt files,
semaphores, IPC, async event notification, process
! mem locking, threads, async and sync I/O.
! Problems: coarse timers, system interface and
implementation,long interrupt latency, FIFO
queues,no locking pages in memory, no
predictable IPC
8. 17/08/2001 8
ResearchResearch RTOSsRTOSs
! Support rt sched algorithms and timing
analysis
! RT sync primitives, e.g., priority ceiling.
! Predictability over avg perf
! Support for fault-tolerance and I/O
! Examples: Spring, Mars, HARTOS,
MARUTI, ARTS, CHAOS, EMERALDS
9. 17/08/2001 9
Small memories, slow processorsSmall memories, slow processors
! Small-memory embedded systems used everywhere:
– automobiles
– factory automation and avionics
– home appliances
– telecommunication devices, PDAs,…
! Massive volumes (10K-10M units) ⇒ Saving even a
few dollars per unit important:
– cheap, low-end processors (Motorola 68K, Hitachi SH-2)
– max. 32-64 KB SRAM, often on-chip
– low-cost networks, e.g., Controller Area Network (CAN)
10. 17/08/2001 10
RTOS for Small-Memory EmbeddedRTOS for Small-Memory Embedded
SystemsSystems
! Despite restrictions, must perform increasingly
complex functions
! General-purpose RTOSs (VxWorks, pSOS, QNX) too
large or inefficient
! Some vendors provide smaller RTOSs (pSOS Select,
RTXC, Nucleus) by carefully handcrafting code to get
efficiency
11. 17/08/2001 11
RTOS Requirements for Small-MemoryRTOS Requirements for Small-Memory
Embedded SystemsEmbedded Systems
! Code size ~ 10 kB
! Must provide all basic OS services: IPC, task
synchronization, scheduling, I/O
! All aspects must be re-engineered to suit small-
memory embedded systems:
– API
– IPC, synchronization, and other OS mechanisms
– Task scheduling
– Networking
13. 17/08/2001 13
Minimizing Kernel SizeMinimizing Kernel Size
! Location of resources known
– allocation of threads on nodes
– compile-time allocation of mailboxes, etc., so no naming
services
! Memory-resident applications:
– no disks or file systems
! Simple messages
– e.g., sensor readings, actuator commands
– often can directly interact with network device driver
14. 17/08/2001 14
Reducing Kernel Execution OverheadReducing Kernel Execution Overhead
! Task Scheduling: EDF, RM can consume 10-15% of
CPU
! Task Synchronization: semaphore operations incur
context switch overheads
! Intertask Communication: often exchange 1000’s of
short messages, especially if OO is used
15. 17/08/2001 15
Real-Time SchedulingReal-Time Scheduling
! Problems with cyclic time-slice schedulers
– Poor aperiodic response time
– Long schedules
! Problems with common priority-driven schedulers
– EDF: High run-time overheads
– RM: High schedulability overheads
16. 17/08/2001 16
Scheduler OverheadsScheduler Overheads
! Run-time Overheads: Execution time of scheduler
– RM: static priorities, low overheads
– EDF: high run-time overheads
! Schedulability Overhead: 1 - U*
– U* is ideal utilization attainable, assuming no run-time
overheads
– EDF has U* = 1 (no schedulability overhead)
– RM has U* > 0.7, avg. 0.88
! Total Overhead: Sum of these overheads
– Combined static/dynamic (CSD) scheduler finds a balance
between RM and EDF
17. 17/08/2001 17
SchedulabilitySchedulability Overhead IllustrationOverhead Illustration
! Example of RM schedulability issue
! U = 0.88; EDF schedulable, but not under RM
Task 1 2 3 4 5 6 7 8 9 10
P (ms) 4 5 6 7 8 20 30 50 100 130
c (ms) 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5
0 1 2 3 4 5 6 7 8
T1 T2 T3 T4 T1 T2 T3 T4
T5 misses deadline
time
18. 17/08/2001 18
Combined Static and DynamicCombined Static and Dynamic
SchedulingScheduling
! CSD maintains two task queues:
– Dynamic Priority (DP) scheduled by EDF
– Fixed Priority (FP) scheduled by RM
! Given workload { Ti : i = 1,2,...,n } sorted by RM-
priority
– Let r be smallest index such that Tr +1 - Tn are RM-
schedulable
– T1 - Tr are in DP queue
– Tr +1 - Tn are in FP queue
– DP has priority over FP queue
19. 17/08/2001 19
CSD OverheadCSD Overhead
! CSD has near zero schedulability overhead
– Most EDF schedulable task sets can work under CSD
! Run-time overheads lower than EDF
– r-long vs. n-long DP queue
– FP tasks incur only RM-like overhead
! Reducing CSD overhead further
– split DP queue into multiple queues
– shorter queues for dynamic scheduling
– need careful allocation, since schedulability overhead
incurred between DP queues
20. 17/08/2001 20
CSD PerformanceCSD Performance
! Comparison of CSD-x, EDF, and RM
– 20-40% lower overhead than EDF for 20-30 tasks
– CSD-x improves performance, but diminishing returns
21. 17/08/2001 21
Efficient SemaphoresEfficient Semaphores
! Concurrency control among tasks
! May cause large number of context switches
! Typical scenario: T2 > Tx > T1 & T1 is holding lock
unblock T2
context switch C1
T2 calls acquire_sem()
priority inheritance
(bump-up T1)
block T2
context switch C2
T1 calls release_sem()
undo T1 priority
inheritance
unblock T2
context switch C3
22. 17/08/2001 22
Eliminating Context SwitchEliminating Context Switch
! For each acquire_sem(S) call:
– pass S as extra parameter to blocking call
– if S unavailable at end of call, stay blocked
– unblock when S is released
– acquire_sem(S) succeeds without blocking
23. 17/08/2001 23
Optimize Priority Inheritance StepsOptimize Priority Inheritance Steps
! For DP tasks, change one variable, since they are in
unsorted queue
! For FP tasks, must remove T1 from queue and
reinsert according to priority
– Solution: switch positions of T1 and T2
– Avoids parsing queue
– Since T2 is blocked, can be put anywhere as position holder
to remember T1’s original position
25. 17/08/2001 25
Message PassingMessage Passing
! Tasks in embedded systems may need to exchange
thousands of short messages per second
! Traditional IPC mechanisms (e.g., mailbox-based
IPC) do not work well
– high overheads
– no “broadcast” to send to multiple receivers
! For efficiency, application writers forced to use global
variables to exchange information
– Not safe if access to global variable unregulated
26. 17/08/2001 26
State MessagesState Messages
! Uses single-writer, multiple-reader paradigm
! Writer-associated state message “mailbox”
(SMmailbox)
– A new message overwrites previous message
– Reads do not consume messages
– Reads and writes are non-blocking, synchronization-free
! Read and write operations through user-level macros
– Much less overhead than traditional mailboxes
– A tool generates customized macros for each state message
27. 17/08/2001 27
State MessagesState Messages
! Problem with global variables: a reader may
read a half-written message as there is no
synchronization
! Solution: N-deep circular message buffer for
each state message
– Pointer is updated atomically after write
– if writer has period 1 ms and reader 5 ms, then
N=6 suffices
! New Problem: N may need to be in the 100’s
28. 17/08/2001 28
State Messages in EMERALDSState Messages in EMERALDS
! Writers and “normal” readers use user-level macros
! Slow readers use atomic read system call
! N depends only on faster readers (saves memory)
State Messages Mailboxes
send (8 bytes) 2.4 us 16.0 us
receive (8 bytes) 2.0 us 7.6 us
receive_slow (8 bytes) 4.4 us
29. 17/08/2001 29
Memory ProtectionMemory Protection
! Needed for fault-tolerance, isolating bugs
! Embedded tasks have small memory footprints
– can use just 1 or 2 page tables from lowest level of hierarchy
– use common upper-level tables to conserve kernel memory
! Map kernel into all task address spaces
– Minimize user-kernel copying as task data and pointers
accessible to kernel
– Reduce system call overheads to little more than for function
calls
30. 17/08/2001 30
EMERALDS-OSEKEMERALDS-OSEK
! OSEK OS standard consists of
– API: system call interface
– Internal OS algorithms: scheduling and
semaphores
! OSEK Communication standard (COMM) is
based on CAN
! Developed an OSEK-compliant version of
EMERALDS for Hitachi SH-2 microprocessor
31. 17/08/2001 31
EMERALDS-OSEKEMERALDS-OSEK(cont’d)(cont’d)
! Features
– Optimized context switching for basic and
extended tasks
– Optimized RAM usage
! Developed OSEK-COMM over CAN for
EMEMRALDS-OSEK
! Hitachi’s application development and
evaluation: collision-avoidance and adaptive
cruise control systems
32. 17/08/2001 32
ConclusionsConclusions
! Small, low-cost embedded systems place great
constraints on operating system efficiency and size
! EMERALDS achieves good performance by re-
designing basic services for such embedded systems
– Scheduling overhead reduced 20-40%
– Semaphore overheads reduced 15-25%
– Messaging passing overheads 1/4 to 1/5 that of
mailboxes
– complete code ~ 13 kB
33. 17/08/2001 33
Current State and Future DirectionsCurrent State and Future Directions
! Implemented on Motorola 68040
! Partial ports to 68332, PPC, and x86
! Investigating networking issues: devicenet, real-time
Ethernet, UDP/IP
! OS-dependent and independent development tools
! Energy-Aware EMERALDS
– extend to support energy saving hardware (DVS, sprint &
halt)
– Energy-aware Quality of Service (EQoS)
– Applications to info appliances and home networks
34. 17/08/2001 34
Related PublicationsRelated Publications
! RTAS ‘96 - original EMERALDS
! RTAS ‘97 - semaphore optimizations
! NOSSDAV ‘98 - protocol processing optimizations
! SAE ’99 - EMERALDS-OSEK
! SOSP ‘99 - EMERALDS with re-designed services
! RTSS’00 – Energy-aware CSD
! IEEE-TSE’00 –complete version with schedulability
analysis
! SOSP’01 (to appear) – Exploitation of DVS
URL: http://kabru.eecs.umich.edu/rtos