Personal tools
You are here: Home Research Trends & Opportunities Advanced Software Engineering and Web Technology Virtual Machines and Real-time OS (RTOS)

Virtual Machines and Real-time OS (RTOS)

Princeton_University_IMG_3078-DA.jpg
(Photo: Princeton University, Office of Communications)
 
 

- Virtual Machine: A Virtual Computer Within A Computer

A virtual machine, often referred to simply as a VM, is no different from any other physical computer such as a laptop, smartphone, or server. It has a CPU, memory, disks to store files, and can connect to the Internet when needed. 
 
While the components that make up a computer (called hardware) are physical and tangible, a VM is often thought of as a virtual or software-defined computer in a physical server that exists only as code.
Virtualization is the process of creating a software-based or "virtual" version of a computer with data from a physical host (such as your personal computer) and/or a remote server - such as a server in a cloud provider's data center. 

A virtual machine is a computer file, often called an image, that behaves like an actual computer. It can run in a window as a separate computing environment, often running a different operating system - or even as a user's entire computer experience - which is common on many people's work computers. The virtual machine is separate from the rest of the system, which means that the software inside the virtual machine cannot interfere with the host's main operating system.
 

- RTOS Definition and Main Responsibility

A real-time operating system (RTOS) must be fast and responsive, schedule tasks and manage limited resources, and ensure functions are isolated and free of interference from other functions.

The main responsibility of an operating system is to manage hardware resources and activities in the system: scheduling application programs, writing files to disk, sending data across a network, and so on. When the OS must handle multiple events concurrently and ensure that the system responds to those events within predictable time limits

A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time applications that process data as it comes in, typically without buffer delays. Processing time requirements (including any OS delay) are measured in tenths of seconds or shorter increments of time. A real-time system is a time-bound system which has well-defined, fixed time constraints. Processing must be done within the defined constraints or the system will fail. They either are event-driven or time-sharing. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock interrupts. Most RTOSs use a pre-emptive scheduling algorithm. 

 

- Jitter and Scheduling for an RTOS

A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is 'jitter'.  

A 'hard' real-time operating system (Hard RTOS) has less jitter than a 'soft' real-time operating system (Soft RTOS). The late answer is a wrong answer in a hard RTOS while a late answer is acceptable in a soft RTOS. The chief design goal is not high throughput, but rather a guarantee of a soft or hard performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS. 

An RTOS has an advanced algorithm for scheduling. Scheduler flexibility enables a wider, computer-system orchestration of process priorities, but a real-time OS is more frequently dedicated to a narrow set of applications. Key factors in a real-time OS are minimal interrupt latency and minimal thread switching latency; a real-time OS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time. 

 

- The Role of an RTOS in an Embedded System

Many embedded systems require real-time behavior, and due to hardware resource constraints, performance and efficiency are top priorities. An embedded system is a special computer system that is designed to perform dedicated functions with real-time computing constraints. 

An RTOS provides the rigorous resource management and scheduling required to meet the demands of applications - with multitasking, threads, priority-driven preemptive scheduling, and fast context-switching - all essential features of an embedded real-time system. 

An RTOS typically has a small footprint and is optimized for performance, however each RTOS must be customized with capabilities needed for the hardware and system it supports. From a bare-bones kernel configuration managing a small number of tasks, to a full-functionality RTOS managing hundreds of tasks and subsystems including graphics, networking, filesystem, audio and more - an RTOS should flexibly scale to address system requirements and resources.

 

 

[More to come ...]


 

 

Document Actions