[ECOS] scheduler
Gary Thomas
gthomas@cambridge.redhat.com
Mon May 14 05:58:00 GMT 2001
On 14-May-2001 mekala natarajan wrote:
> Hi,
> I have a doubt regarding scheduler.
>
> i have two process one with higher priority and the
> other with lower priority.
>
> This is the example program which i used.
>
>
> int main()
> {
> xCreateProcess_i(xPclcpsSender_v,5,ZERO,0);
> xCreateProcess_i(xPclcpr_v,7,ZERO,0);
>
> mProcessId_i=xGetProcessId_i();
> xKillProcess_i(mProcessId_i);
> }
>
> void xPclcpr_v(void)
> {
> while(1)
> {
> printf("\n Receiver process is created\n");
> xDelay_v(5);
> }
> }
>
> void xPclcpsSender_v(void)
> {
> while(1)
> {
> printf("\n Sender process is created\n");
> xDelay_v(3);
> }
> }
>
> Output:
> -------
> Sender process is created
> Sender process is created
> receiver process is created
> Sender process is created
> Sender process is created
> receiver process is created
> ----
> Why is this output. It is supposed to print Sender
> process only once.
>
Why do you think this should be so?
> How the scheduler behaves here?
>
I assume that xDelay_v() calls 'thread_sleep()' or some such similar
"blocking" function.
When the "receiver" process is sleeping (xDelay_v()), the "sender"
process will run, thus the printout.
> Can someone explain me?
More information about the Ecos-discuss
mailing list