6 ms·
OK but whether or not this is a proper definition of "blocking" doesn't really change my point. Alternatively, maybe my point is that disk I/O is not "blocking
by kentonv 4y ago
OK but whether or not this is a proper definition of "blocking" doesn't really change my point.
Alternatively, maybe my point is that disk I/O is not "blocking" either, it just "takes some measurable amount of time". :)
EDIT: What this says: https://news.ycombinator.com/item?id=33302587 https://news.ycombinator.com/item?id=33302587
- YZF 4y agoHistorically I/O or peripherals were generally distinct from different types of memory. Technically the CPU also "blocks" when executing an instruction, let's say adding two numbers, because obviously the sum isn't available in 0 cycles. One might imagine semantics where you explicitly ask some CPU unit to add some numbers and then wait for the result and having blocking or non-blocking wrappers around it but it sort of becomes moot. Generally async/non-blocking operations are abstractions over I/O peripherals that have an async nature, e.g. you submit something and you get some reply later, or you wait for a network packet to come in etc. Reply is often an interrupt. I agree the lines have blurred a little with modern CPUs (and arguably were always blurry with some peripherals being memory mapped) but something like waiting on a packet to come in or a disk operation to complete is outside the box that you'd draw around the CPU and its more tightly integrated components.