Domanda

I understand that the lower priority interrupt will be suspended, but what I'm not too clear on is what happens when the higher priority task is finished. Does the lower priority task go unfinished, or is it "resumed" by the system? I feel like it would resume and finish from where it was interrupted, but a diagram shown by my textbook shows otherwise. Here's the textbook information and diagram, just for completeness. No specific architecture or processor is given for this diagram.

enter image description here enter image description here

It states that the C interrupt doesn't finish "for a long time", although it's never shown finishing at all (This is the entire diagram).

Does this behavior depend on what architecture/processor/system is being considered? I feel like it would, but once again, the book never really makes mention as to whether or not it does.

I've done lots of searching and while it's clear that the higher priority task will be completed first, I'm not so sure what happens to the lower priority one.

È stato utile?

Soluzione

The low priority interrupt is completed when all high-priority interrupts are complete. This is described in the text of the extract you posted, but the diagram is incorrect. Check for errata on the publishers website.

The search term "nested interrupts" should turn up the material you are looking for (and an image search yields some useful diagrams that are perhaps clearer than the one in your text). For example: from here

Nested Interrupts

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top