Re: Cooperative multitasking OS-??
- From: "FreeRTOS.org" <noemail@xxxxxxxxxxx>
- Date: Fri, 30 Nov 2007 19:24:11 GMT
No. Many embedded systems use cooperative multitasking (also known
as the "run to completion" model).
Terminology again. To me "run to completion" is something quite different
to cooperative multitasking. Old Windoze systems did not use run to
completion.
Run to completion systems are very simple/basic (which is not necessarily a
bad thing) whereby once a task function starts it continues to the end of
its function with no possibility of it stopping to allow a different task to
run. When it starts again it starts from the beginning of its function
again - although it may then branch to any point in the function.
In a cooperative system a task can volunteer to yield at any point the
programmer sees fit. By yielding it is allowing a different task to run.
The big difference then is that when the task starts executing again it
commences from exactly the point from where it yielded.
Pre-emptive on the other hand does not require the task to yield (volunteer
to give up execution), the task can be stopped at any time the scheduler
sees fit and without the knowledge of the task being pre-empted. This could
be in response to a temporal event, external event, or internal event.
As already mentioned by Grant, 'Round Robin' is another issue altogether.
I think there are many texts that describe all these concepts.
--
Regards,
Richard.
+ http://www.FreeRTOS.org
14 official architecture ports, 1000 downloads per week.
+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
.
- References:
- Cooperative multitasking OS-??
- From: ssubbarayan
- Re: Cooperative multitasking OS-??
- From: Eric Smith
- Cooperative multitasking OS-??
- Prev by Date: Re: PIC24F experience/hints
- Next by Date: Re: Speech output from a microcontroller
- Previous by thread: Re: Cooperative multitasking OS-??
- Next by thread: Why does portmap daemon run when i start multiice server?
- Index(es):