Communication between different platforms is necessary for every embedded system, since they use different OS for their project developments. It is used to control and coordinate the hardware among peripheral devices. Even though there are different kinds of operating systems,but the is very famous to execute a task with precise timings. The commonly found in industrial robotics, cameras, and communications.
Real-time Operating System RTOS in Vxworks
The Vxworks is real time operating systems make with collection of software’s that manages hardware resources and provide the precise timing services to the user. The special feature of this operating system is to manage tasks efficiently and easily obtained interrupts. The Vxworks real time kernel provides the multitasking environment which creates the multiple threads (process) of execution running concurrently. The Vxworks operating system software is originally developed by, Wind River system. The latest version of Vxworks 6.9 fully supports both 32-bit and 64-bit processing on Intel architecture.
Architecture of (Vxworks)
The heart of the Vxworks real time operating system is wind microkernel. The kernel is a part of the software is acting like a bridge among shell and hardware. The responsibility of the kernel is to run the labview programs and providing the secure access to the machine hardware. It maintains a schedule time table for all process.
The Vxworks Perform the Following Functions
Task management is an instance of a program that is being executed. The task consists of a number of elements, such as memory pointer, identifier, program counter, and context data, and so on. The task is actually an execution of those instructions.
There are two types of tasks: single tasking method and multitasking method. The single task method deals with the single process running at a time. The multitasking method consents multiple processes at a time. The Vxworks kernel provides a multitasking method therefore we can executes the multiple tasks at a time.
The memory management is very important for the operating system, that manages the computer memory. A CPU consists of two types of memory modules such as physical memory and virtual memory. The virtual memory defined as a RAM memory, and the hard disk is defined as physical memory. An operating system manages the RAM memory address spaces, and the allocation of real memory is followed by the virtual memory address.
In vxworks embedded real time operating system, all application tasks share the same address space means that defective applications could accidentally access system resources and compromise the stability of the entire system. In Vxworks system has consisted one optional tool named VxVMI that can be used to allow each task to have its own address space. The Vxworks doesn’t offer privilege protection. The privilege level of Vxworks is always zero.
The scheduling is the backbone of the real time operating system is used to maintain the constant amount of work for the processor and balances the work load. Thus, each process is completed within a specified time frame. Vxworks has two major scheduling algorithms such as priority scheduling and round round-robin scheduling.
In priority scheduling gives a priority to each process (thread). The highest priority thread is to be executed first and so on. The same priority processes are executed on a first come first serve basis. Priority can be decided based on time requirement, memory requirement or any other resource requirement.
Round-Robin is the scheduling algorithm used by the CPU during execution of the process. It is specially designed for time sharing systems. In round-robin scheduling assigned a fixed time to each process. Mean once a process is executed in a given time period then other process is permitted to execute for a given time period. The round robin scheduling is better in real time operating system.
To achieve the fastest possible response to external interrupts, interrupt service routines in Vx works run in a special context outside of any process context, so that there is no process context switches involved. The ISR address is stored in the interrupt vector table and is called directly from the hardware. The ISR initially performs some work (eg. Saving registers and setting up stack) and then calls the C functions that was attached by the user.
Real time operating system comparison with General purpose operating system
The basic difference of using an RTOS or GPOS creations in the nature of the system that is whether the system is “time critical” or not! A system can be for a single purpose or multiple purposes. For example of a “time critical system” is ‘Automated Teller Machines’ (ATM). Suppose here the user to get his money using an ATM card from the teller machine within 4 or 5 seconds from the moment he presses the confirmation button. The card user will not wait much time (5 minutes) at the ATM center, after pressing the button for confirmation. So an ATM is a time critical system.
The personal computer (PC) is not a time critical system. The purpose of a computer is to access multiple applications. A user can run many applications at the same time by the computer. Suppose we prepare documentation, after pressing the SAVE button of a finished document, there is no specific time limit that the doc should be saved within 5 seconds. It may take some time (in some cases) depending upon the number of tasks and processes running in parallel.
Main differences of RTOS and GPOS
- Task Scheduling: In GPIOs task scheduling not based on priority. The RTOS task scheduling always a priority.
- Hardware and economical factors: The efficient to port an RTOS to an embedded system of limited expectations and functionalities Ex ATM) so inside more logical to use RTOS and with limited hardware in ATMs. The personal computers use work stations, service system etc.
- Latency Issue: GPOS is unbounded dispatch latency that means the process and thread executed without a specific time limit. The RTOS is bounded dispatch latency means all processes are executed within a specific time limit.
- Pre-emptible Kernal: The RTOS kernel is pre-emptible where as a GPOS kernel is not pre-emptible. If the kernel is not pre-emptible, then calls/requests from the kernel will override with all other process and threads.
Thus, this is all about real time operating system, architecture of RTOS and differences between RTOS and GPOS. Furthermore, any doubts regarding this operating system or electronics and electrical engineering projetcs, please give your valuable suggestions by commenting in the comment section below.