EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Running 2 RTOS in a single device/application

Started by ssubbarayan June 17, 2005
Dear all,
   I am currently working in on a consumer electronics device.We are in
the process of debugging few bugs in the software which does the work
of displaying menus and controlling the hardware of the device.I
happened to go through the architecture of the software.What makes me
wonder is there are 2 RTOS used in this device.One rtos is ucos and
another is OS20 a proprietoty RTOS to run on the processor.
I am not able to get how can 2 RTOS run in a device or processor?
When I queried my clients reply that One RTOS runs as a task of another
RTOS.
I would like to understand how does the scheduling happen between these
2 RTOS?Also running one RTOS as another task means there are 2 kernels
and 2 schedulers.This is some what puzzling me.

Have any one seen something like this?How exactly this usage of 2 RTOS
works?Whats the way of linking one RTOS to another?How does the kernel
switching between 2 RTOS take place?

Also I have heard of something called VMWARE which does this job
generally.

It would be helpful if someone could give me some suggestions or point
me to useful links on this.If this is not the right place can you
please direct me to a proper group to discuss this?

Looking farward for all your replys,
Regards,
s.subbarayan

Hello ssubbarayan,
  ssubbarayan schrieb:
> I would like to understand how does the scheduling happen between these > 2 RTOS?Also running one RTOS as another task means there are 2 kernels > and 2 schedulers.This is some what puzzling me.
Ususally the answer to this question is also called: IP or Intellectual Property. You are right, VMWare does it for non embedded computing, also Microsoft does it with Virtual PC. For the embedded world I know of two products PikeOS: http://www.pikeos.com?L=1 VxWin/CeWin: http://www.kuka-controls.com/product/index.html Those products have their own strategy to implement 2 or more RTOS on the same device/processor or one non-RTOS on top of one RTOS . Hope it helps. -- BaSystem Martin Raabe E: Martin.Raabe<at>B-a-S-y-s-t-e-m<dot>de
Martin Raabe wrote:
> For the embedded world I know of two products > PikeOS: http://www.pikeos.com?L=1 > VxWin/CeWin: http://www.kuka-controls.com/product/index.html
Real Time Linux: there's a RTOS for time critical tasks, and the idle task of the RTOS runs Linux - kernel and user processes just like a normal Linux box. There are special FIFOs for passing data between Linux and the RTOS. Works fine when I used it way back in '99. Kelly
Kelly Hall <khall@acm.org> writes:

> Martin Raabe wrote: >> For the embedded world I know of two products >> PikeOS: http://www.pikeos.com?L=1 >> VxWin/CeWin: http://www.kuka-controls.com/product/index.html > > Real Time Linux: there's a RTOS for time critical tasks, and the idle > task of the RTOS runs Linux - kernel and user processes just like a > normal Linux box. There are special FIFOs for passing data between > Linux and the RTOS. Works fine when I used it way back in '99.
These days you might want RTAI: www.rtai.org It uses ADEOS to provide separate execution domains, allows you to code fairly-hard-real-time stuff in *user space*, interfaces with all sorts of other software, and has a really active developer/user community. (Yes, I use it. No, I wouldn't use the other one). cheers, Rich. -- rich walker | Shadow Robot Company | rw@shadow.org.uk technical director 251 Liverpool Road | need a Hand? London N1 1LX | +UK 20 7700 2487 www.shadow.org.uk/products/newhand.shtml
ssubbarayan wrote:
> Dear all, > I am currently working in on a consumer electronics device.We are in > the process of debugging few bugs in the software which does the work > of displaying menus and controlling the hardware of the device.I > happened to go through the architecture of the software.What makes me > wonder is there are 2 RTOS used in this device.One rtos is ucos and > another is OS20 a proprietoty RTOS to run on the processor. > I am not able to get how can 2 RTOS run in a device or processor? > When I queried my clients reply that One RTOS runs as a task of another > RTOS. > I would like to understand how does the scheduling happen between these > 2 RTOS?Also running one RTOS as another task means there are 2 kernels > and 2 schedulers.This is some what puzzling me. > > Have any one seen something like this?How exactly this usage of 2 RTOS > works?Whats the way of linking one RTOS to another?How does the kernel > switching between 2 RTOS take place? > > Also I have heard of something called VMWARE which does this job > generally. > > It would be helpful if someone could give me some suggestions or point > me to useful links on this.If this is not the right place can you > please direct me to a proper group to discuss this? >
An RTOS creates a virtual machine to run programs on. It controls access to things like interrupt vectors, devices, and such, presenting an API to the user code. Also, RTOS code generally have some kind of hardware abstraction layer internally, so it can be ported to many different systems, and keep things that are going to be common, like schedulers, timers, and memory allocation machine independent. If one writes a hardware abstraction layer for RTOS1 that uses the facilities in RTOS2, neither need know about the other. From the POV of RTOS1, it is running on a funny, slow architecture. From the POV of RTOS2, it has a user program, and handles the hardware itself. The problem comes in when both RTOS want to mess with the same hardware. -- Regards, Bob Monsen If a little knowledge is dangerous, where is the man who has so much as to be out of danger? Thomas Henry Huxley, 1877

The 2024 Embedded Online Conference