zoukankan      html  css  js  c++  java
  • IO的理解和等待队列和阻塞和非阻塞的理解

                                                     IO就是读数据或者写数据     包含一个时间概念在里面  包含一个system概念 

                                                     读数据的策略  

                                                     

                               

    阻塞和非阻塞时设备访问的两种基本形式。使用这两种形式,驱动程序可以灵活地支持阻塞和非阻塞的访问。select函数底层实现,里面实现用就是等待队列。

    阻塞调用时指调用结果返回之前,当前线程挂起。函数只有得到结果之后才会返回。

    等待队列可以用来同步对系统资源的访问,例如完成一项工作之后,才允许完成另一项工作。尤其是在中断处理,进程同步和定时等场合,

    可以使用等待队列实现阻塞进程的唤醒,它以队列为基础的数据结构,与进程调度机制紧密结合,能够用于实现内核中的异步事件通知机制,同步对系统资源的访问。

    阻塞就是等待队列去了。

    等待队列需要的操作:

     

     总结: 

            阻塞和非阻塞在驱动程序中经常用到。 阻塞在IO操作暂时不能进行时,让进程进入等待队列。

    后者在IO操作暂时不能进行时,立刻返回。阻塞和非阻塞就是由等待队列实现的。 

        

                          

                                                    

    一勤天下无难事。
  • 相关阅读:
    社交需求和社交产品的更替
    腾讯产培生面经
    【C++基础】类class
    【C++基础】结构struct
    【C++基础】C-串知识整理
    GeoServer war包在tomcat7中配置遇到的一个问题
    pgrouting 2.0 的环境配置
    阿里2014年9月笔试中的一个算法设计题--擦黑板剩余数字
    VisualSVN Server的启动关闭脚本
    二叉树遍历(前序、中序、后序)的递归及非递归实现(小结)
  • 原文地址:https://www.cnblogs.com/nowroot/p/12637529.html
Copyright © 2011-2022 走看看