References
en.wikipedia.org/wiki/Real-time
en.wikipedia.org/wiki/Real_time
en.wikipedia.org/wiki/Real-time_operating_system
en.wikipedia.org/wiki/Real-time_computing
* computer-controlled braking system in a car
* medical systems such as pacemakers and industrial process controllers
* software that maintains and updates the flight plans for commercial airliners
- combined reaction and operation time is shorter than the maximum allowed delay
- can be slow
- suffer a critical failure if time constraints are violated (hard or immediate real-time), and those which will not (soft real-time)
- It is a fallacy to believe that this type of operating system is "efficient" in the sense of having high throughput.
The specialized scheduling algorithm and a high clock-interrupt rate can both interfere with throughput.
- design issues
- task scheduling -
- running, ready, blocked
- minimise ready time
- sharing data and hardware - semaphores(locking) or messages
- both have problem with priority inversion and deadlocks
- memory allocation
- search for free memory has indeterminate allocation time -> not suitable for real time
- fragmentation of 'in use' memory builds up. Not acceptable for long running embedded devices
Questions
- why might real time operating systems be less efficient than normal operating systems ?
References
en.wikipedia.org/wiki/Embedded_system
* automatic teller machines (ATMs)
* cellular telephones and telephone switches
* computer network equipment, including routers, timeservers and firewalls
* computer printers
* disk drives (floppy as well as hard)
* engine controllers and antilock brake controllers for automobiles
* home automation products, like thermostats, air conditioners, sprinklers, and security monitoring systems
* handheld calculators
* household appliances, including microwave ovens, washing machines, television sets, DVD players/recorders
* inertial guidance systems, flight control hardware/software and other integrated systems in aircraft and missiles
* medical equipment
* measurement equipment such as digital storage oscilloscopes, logic analyzers, and spectrum analyzers
* multifunction wristwatches
* personal digital assistants (PDAs), i.e. small handheld computers with PIMs and other applications)
* programmable logic controllers (PLCs) for industrial automation and monitoring
* stationary videogame consoles and handheld game consoles
- typically slower CPU, less memory, slower comms
- often real time contraints
- embedded software
- developed in C or other high level language with common tools
- quick boot
- architectures
- Control loop
- no time guarantees -> not real time
- Nonpreemtive multitasking
- Preemptive timers
- timer interupt => time guarantees
- Preemptive tasks
- data blocking
- Office-style operating systems
- libraries get in the way
- Exotic custom operating systems
- rate monotonic analysis
- harmonic optimisation
- dual priority and monitors
- user interfaces
- simple
- feedback
- colors
Question
- what is a relationship between realtime systems and embedded systems?
- what tradeoffs might you make as the designer of an embedded system?
The most common tradeoff would be that an embedded system would use specialised and less costly (and less powerful/efficient) hardware and software in order to mass produce a device/system.
- what was the first recognizably embedded system?
-
The first modern embedded system was used in the Apollo missions. The Apollo Guidance Computer was developed by Charles Draper and the MIT Instrumentation Lab. Every flight to the moon had 2.
-
The first mass-produced embedded system was designed for the guidance computer in the Minuteman missile. For more information please see the History section of:
http://en.wikipedia.org/wiki/Embedded_system
|