[ECOS] nested interrupts
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)?
> 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.
More information about the Ecos-discuss