1. Why is polling synchronous and interrupts are not?
What is the source of interrupts? What is determining when polling occurs?
Is this a question about terminology (syncrhonous versus asyncrhonous) or about the differences / advantages of using interrupts instead of polling (in software)?
Ah the question is related to how polling and interrupts are used by the OS to see when the I/O is finished. Then, it asks which one is synchronous polling or interrupts. I found that polling is synchronous but I don't understand why. =/
I'm not sure if this is correct but I'm thinking that polling is synchronous because you wait for it to be completed like when your constantly asking if the program is done. While interrupts are not because they don't wait they just put it off to the side and continue working on what they were doing before.
This is how the wiki article defines synchronous I/O, the program starts an I/O, then waits for that I/O to complete before continuing to do anything else.
However, even without using interrupts, the polling could be handled by calls to a function (one that polls for and handles I/O completion) interspersed within some code that peforms some other function while the I/O is ongoing. This would introduce a delay in the I/O completion response, but if the I/O hardware includes buffering, it wouldn't be an issue as long as the polling is done frequently enough. Based on the wiki terminology, this would be considered asynchronous, even though polling is involved.
A similar concept for a crude form of multi-tasking operating system, would be non-pre-emptive and co-operative multi-tasking. Wiki articles:
I got it! Thank You!
Separate names with a comma.