Wiki article: Understanding Synchronous and Asynchronous I/O

  • Thread starter Thread starter whitehorsey
  • Start date Start date
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
7 replies · 4K views
whitehorsey
Messages
188
Reaction score
0
1. Why is polling synchronous and interrupts are not?
 
Physics news on Phys.org
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. =/
 
whitehorsey said:
I'm thinking that polling is synchronous because you wait for it to be completed ...
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:

nonpreemptive_multitasking.htm

cooperative_multitasking.htm
 
Last edited:
rcgldr said:
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.
...

I got it! Thank You!