OSEK Scheduling

Reading one thread about OSEK, reading one mail of Olaf, I have two questions to ask.

That's all, isn't it? But remember that for BCC2 the tasks are > non-preemptive and for ECC2 preemptions are allowed.

In BCC2, what happens if a ISR2 activates one task with more priority that the running one? (the same question for BCC1). I think that tasks can be preemptive, but they cannot go to the waiting state (because of a resource or event)

3) From this set of highest priorty tasks the scheduler chooses that one, > which is the oldest, i.e. that one with the lowest activation time.

One doubt I have from this point (and from the standard too) is what happens with the 'activation time' and the multiples activations of basic tasks. Let me explain with an example:

Imagine two tasks with the same priority, T_A and T_B. T_B is suspended, T_A is running (only one instance). T_B is activated by a ISR2, but keeps waiting in the ready state. T_A is activated again, so the second activation is stored. The first activation of T_A calls TerminateTask.

Which is the next task to be in running state? The second activation of T_A ? or T_B, as it has lower activation time?

Thanks in advance.

Regards, Christian Cal=F3nico

Reply to
Christian Calónico
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.