[ECOS] nested interrupts

Sergei Slobodov sslobodov@caracal-tech.com
Thu Jan 18 08:26:00 GMT 2001

> Xavier> Besides, by looking into the source code, it seems that if
> Xavier> there is any pending DSRs, no thread will be run. So can a
> Xavier> high priority thread be blocked by a low priority interrupt
> Xavier> (DSR)?
> Yes.
> Xavier> Will it introduce some problems for a real-time application?

> Interrupts are always higher priority than tasks (threads), and DSRs 
> are all at the same priority, higher than any thread and lower than 
> any interrupt. When designing a real-time system, it is a good idea to 
> include the total time of all possible interrupts (and their DSRs) 
> when calculating thread response time

> As I was explained here, a main purpose of a DSR is to avoid 
> scheduler's ready list manipulation from an interrupt. DSR mechanism 
> serializes access to the scheduler (to suspend or resume a thread, or 
> to send a message), thus completely avoiding disabling interrupts when 
> posting. Quite neat. There is a price to pay, however, since DSR 
> mechanism nearly doubles the time between posting interrupt and thread 
> resumption. Bearing this in mind, the only thing DSR absolutely has to 
> do is to notify the scheduler. All the rest ought to be done either in 
> an ISR or in a thread.
Sergei Slobodov

More information about the Ecos-discuss mailing list