Çalışan bir işlem i / o üzerinde engelliyorsa
ES'yi engellemek, işleminizi askıya almakla eşdeğerdir. Linux çekirdeği bağlamında, gibi bir IO sistem çağrısının yürütülmesi, read()
a sysenter
veya interrupt işleyicisinin, bu IO'ya bakmak için tetiklemesine ve do_sys_read()
sonuçta çağırmasına neden olacaktır . Burada, geçerli istek hemen yerine getirilemezse, işlev çağrılarak sched()
başka bir işlem yürütebilir.
Bir kooperatif sistemi bağlamında, bir IO nedeni için bir sistem çağrısı yaptığınızda, talep karşılanamazsa, çekirdek başka bir görev alır ve bunu yürütür. Bu belge biraz arka plan sağlar - temel olarak, IO'yu beklediyseniz, o IO'yu beklerken sonsuza kadar asılabilirdiniz. İşbirliği planlaması fikri, sched()
CPU-yoğun görevler yapıyorsa sık sık aradığınız veya eşit CPU'dan ayrılma yöntemidir.
Çekirdek modu ile ilgili düşünceler daha ilginç hale geliyor. Bazı gömülü platformlar gibi kullanılabilir oldukları mimarilerde , kesme işleyicileri donanım veya yazılım kesintilerine yanıt olarak hala çağrılır. Kesme işlemeyi devre dışı bırakmak genellikle uygulama açısından mümkündür , ancak bunun da dezavantajları vardır.