linux设备驱动之阻塞与非阻塞I/0

原创 2013年12月03日 19:44:57

一、基本概念

    阻塞操作是指在执行设备操作时,若不能获取资源,则挂起当前进程,直到满足可操作的条件再进行操作。挂起的进程放到等待队列,当条件满足时,恢复执行。

   非阻塞操作是指当执行设备操作时,若不能获取资源,则立刻返回,不等待。

二、阻塞I/O

   阻塞I/O的是用等待队列实现的。一个进程的I/O操作被阻塞时,该进程就会将自身加到等待队列中,同时调度其他进程允许。当等待的条件满足时,该进程从休眠状态中被唤醒,同时要将自身从等待队列中移走。

三、非阻塞I/0

   通常用select()或poll()系统调用查询是否能对设备进行非阻塞 访问。select()和poll()最终会调用驱动函数的poll函数。所以要实现驱动程序中的poll函数。poll函数不会阻塞,但是select()会阻塞,直到文件描述集中至少有一个可访问或超时。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux设备驱动中阻塞与非阻塞I/O

阻塞与非阻塞I/O     阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作。     被挂起的进程进入休眠状态,被移出调度器的运行队列,直到等待的条件被满足...

Linux设备驱动中的阻塞与非阻塞I/O

Linux设备驱动中的阻塞与非阻塞I/O 阻塞与非阻塞I/O 阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。 因为阻塞的进程...

linux设备驱动之阻塞与非阻塞I/O

先做一下与内核阻塞有关的知识储备: 1)进程休眠:     进程休眠,简单的说就是正在运行的进程让出CPU。休眠的进程会被内核搁置在在一边,只有当内核再次把休眠的进程唤醒,进程才会会重新在CPU运行。...

linux设备驱动开发学习之旅--阻塞与非阻塞I/O

[cpp] view plaincopy /**   * Author:hasen   * 参考 :《linux设备驱动开发详解》   * 简介:android小菜...

Hasen的linux设备驱动开发学习之旅--阻塞与非阻塞I/O

/** * Author:hasen * 参考 :《linux设备驱动开发详解》 * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:增加了并...

linux设备驱动中的阻塞与非阻塞(一)

这两天在搞linux驱动的阻塞和非阻塞,困扰了两天,看了不少博客,有了点自己的想法,也不知是否对错,但还是写写吧,让各位大神给我指点指点。         首先说说什么是阻塞和非阻塞的概念:阻塞操作就...

linux设备驱动中的阻塞与非阻塞IO

linux设备驱动中的阻塞与非阻塞IO
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux设备驱动之阻塞与非阻塞I/0
举报原因:
原因补充:

(最多只允许输入30个字)