The document provides information about real-time systems and real-time operating systems (RTOS). It defines a real-time system as one where the correctness depends not only on logical results but also the time when results are delivered. An RTOS is designed to meet the strict timing constraints of real-time applications through features like multitasking, interrupt handling, and predictable scheduling. Key considerations for selecting an RTOS include its real-time capabilities, footprint, interrupt latencies, available APIs, and development tools.
1. Concepts on Real Time Systems & RTOS By Ch. Vishwa Mohan Software Consultant & Trainer
2.
3.
4.
5. A simple fluid control system Pipe Flow meter Valve Interface Computer Time Input flow reading Processing Output valve angle
6. A Widget-Packing Station Line controller Computer Switch Assembly line Box 0 = stop 1 = run Bell Switch
7. A Typical Embedded System Algorithms for Digital Control Data Logging Data Retrieval and Display Operator Interface Interface Engineering System Remote Monitoring System Real-Time Clock Database Operator’s Console Display Devices Real-Time Computer
8.
9.
10.
11. Parallelism Between CPU and I/O Devices CPU Initiate I/O Operation Interrupt I/O Routine I/O Finished I/O Device Process I/O Request Signal Completion Continue with Outstanding Requests
Definition comes from Ben Ari Implementation of parallelism is a topic in computer systems (hardware and software) that is essentially independent of concurrent programming. The topic has been around for a long time. |Can we traced back to Conway and Dijkstra in the early 60’s. Perhaps its defining moment was the publications of Dijkstra’s paper on Co-operating Sequential Processesin 1965 First concurrent programming language Simula 66? Not under 1983 until we see the first international standard concurrent programming language - Ada. This Department via Ian Pyle and Ian Wand were involved in that development Indeed is not Universally accepted that programming languages should be concurrent
Generally speaking, RTOSs are a subset of embedded operating systems. While you can solve many application challenges with an embedded operating system, some challenges can only be solved with the determinism afforded by a hard RTOS.
VxWorks uses Micro kernel with minmal set of utilities. (In the early days OS uses Monolithic kernel , It is a big kernel putting all together) VxWorks's default scheduler comes with two possible scheduling algorithms : A preemptive prioritybased scheduler (with 256 priority levels) and a round-robin scheduler . It is also possible to use a POSIX scheduler with both a first-in first-out (FIFO) and a round-robin algorithm. eCOS is an RTOS from Redhat. RT Linux consists of LynxOS from LynxWorks and BlueHat Linux.
High-speed control applications, such as hardware-in-the-loop simulations and motion control systems, typically require ISR and IST times to be less than 10 µs.
Context switch latency is the amount of time it takes to switch control to a high-priority process in response to an event that makes it run-able
Can you assign those algorithms on a per-thread basis, or does the RTOS force you into assigning one algorithm to all threads in your system? In Rate-Monotonic scheduling sets static priorities to the periodic tasks which it's scheduling. If a task has a short period - that is, it will be executed often, the scheduler will give it a higher priority . Tasks with longer period gets a lower priority . The draw backs of this schedule algorithm is it can't always guarantee that it's possible to schedule a set of tasks, or more correctly, it can't always maximize the CPU utilization EDF (Earliest Deadline First) scheduling case tasks always have dynamic priorities. The tasks with earliest deadlines will have always high priority. POSIX 1.b Scheduler are SCHEDULE_FIFO (First in First out) and SCHEDULE_RR (Round Robin) Does the RTOS support a partitioning scheduler that provides tasks with a guaranteed percentage of CPU time, regardless of what other tasks, including higher-priority tasks, are doing? They also ensure that critical tasks can remain available and meet their deadlines, even when the system is subjected to denial of service attacks and other malicious exploits. Can you easily customize the GUI's look-and-feel? Can the GUI display and input multiple languages (Chinese, Korean, Japanese, English, Russian, etc.) simultaneously? Can 2D and 3D applications easily share the same screen? Does the RTOS support an up-to-date suite of preintegrated protocol stacks, such as IPv4, IPv6, IPsec, SCTP, and IP filtering with NAT? Does it also support an embedded Web browser? The browser should have a scalable footprint and be capable of rendering standard Web pages on very small screens. It should also support standards such as HTML 4.01, SSL 3.0, CSS 1 and 2, OMA , JavaScript, WAP, and WML. Does the RTOS lock you into a proprietary API, or does it provide full support for a standard API like POSIX, which makes it easier to port code to and from other OSs? Does the RTOS vendor provide well-documented source and customization kits to help tailor the RTOS to your specific requirements? Does the vendor also offer driver development kits,