此處的blocking指的是process被”停住”了,process進行此類I/O之時,如果沒有辦法立即取得它想要的資源時,將會被系統排入waiting queue內部進行等待,此種狀況對process而言就是被blocking。
一旦進入了此種狀態,要離開的方法有:
1.系統給了它所需的資源
2.被強制中斷(如因為time out而收到signal之類的)
與其反面的構想有Asynchronous I/O method 就是通稱的 non-blocking I/O,
會讀進資料到指定位置,但是並不會去進行等待,當下可能沒讀到任何東西,
但是之後的資料接收可以另外安排。
沒有留言:
張貼留言