第十二章 读书笔记

第十二章  Linux 驱动程序中的 阻塞和非阻塞 I/O

等待队列是 Linux 内核的一种实现进程休眠的技术。在上一章介绍的自旋锁使用的是不断循环 的方式阻塞 Linux 驱动,这种方式很占 CPU 资源。而等待队列的你眠技术可以大大降低休眠进程对 CPU 资源的消耗,信号量就是利用等待队列实现了对临界区的锁定。本节将介绍等待队列的原 理以及相关的函数和宏,最后会使用一个完整的例子来演示如何使用等待队列休眠和唤醒进程。

运行在用户空间的应用程序可以使用 select函数检测设备文件是否可以读写以及是否发生异常。使用 select 函数不断检测设备文件的编程方法也称为轮询编程。

Linux 驱动的休眠和唤醒是Lim肌肉核的技术,利用 wait_event_interruptible 、 wake_ up_ interruptible 等宏可以休眠和唤醒内核进程,当被唤醒线程满足 condition 条件后 wait_ event_ interruptible 宏就会立即返回以便执行后面的操作。当应用程序以阻塞方式访问休眠的内 核进程,应用程序将被阻塞。如果应用程序以非阻塞方式访问休眠线程,虽然并不会被阻塞,但应用程序要想知道 Linux 驱动什么时候被唤醒,就需要使用轮询检测技术,也就是 select和 poll 函数。 当然, 在 poll 函数中还需要使用 poll_wait 函数将等待队列头添加到轮询表 Cpoll_ table) 中,并返回相应的掩码。

http://www.cnblogs.com/yangsasa/

时间: 2024-11-09 11:00:17

第十二章 读书笔记的相关文章

构建之法的第十、十一、十二章读书笔记

第10章:典型用户和场景 书本中提到的典型用户和场景这种方式来为用户考虑,我觉得很生动,可行性也很大.书本中吴石头的例子也是很生动,马上就能理解大概,还有场景也是. 我们也写了一份关于典型用户和故事的文档.这样或许可以让我们更清晰了解明白接下去我们该怎么做. 第11章 软件设计与实现       每日构建意味着自动地,每天,完整地构建整个代码树.(译者按:"代码树",原文为source tree,        意思是将整个项目源代码的目录,子目录,文件的位置尽可能事先固定下来,这样在

C++primer第十二章读书笔记---动态内存与智能指针

    目前为止我们使用过的静态内存,栈内存和内存池,静态内存用来保存局部static对象.类static成员,以及定义在任何函数之外的成员.栈内存用来保存定义在函数内部的非static成员,分配在静态 内存或栈内存中的对象由编译器自动创建或销毁,对于栈对象仅在其定义的程序块运行时才有效,static对象在程序运行之前分配,程序结束时销毁.除了静态内存和栈内存外,每个程序还拥有一个内存池(堆)在堆上分配动态对象,当动态对象不再使用时,我们必须显示的销毁它.     (一).动态内存与智能指针  

Java 第十二章 继承 笔记

Java 第十二章  继承 笔记 一.使用继承:     1)方便修改代码     2)减少代码量 二.super 继承object 类:super 访问父类的无参构造:super 指的是object 的无参构造.     例:子类调用父类:super.属性 / super.方法    注意:子类不能继承父类私有属性:得用set.get方法来调用:    super只能写在代码块的第一句:super只能调用非私有的方法:    super只能出现在子类的方法和构造方法中. 三.不能被继承的父类成

《Java从入门到精通》第十二章学习笔记

第12章  输入和输出 一.流概述 流是指一组有序的数据序列,数据源和输出目标可以是文件,网络,压缩包或其他. 二.输入/输出流 所有输入流都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类:所有输出流都是抽象类OutputStream(字节输出流)和抽象类Writer(字符输出流)的子类. 1.输入流 InputStream是所有字节输入流的父类,该类主要方法如下,方法出现错误时候会引发IOException异常. (1)read():从输入流中读取数据的下

R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被随机分配到其中一种条件(A或B)中,相应的结果变量(score)也已经被记录.实验结果如下: 如果两种处理方式真的等价,那么分配给观测得分的标签(A处理或B处理)便是任意的.为检验两种处理方式的差异,我们可遵循如下步骤: (1) 与参数方法类似,计算观测数据的t统计量,称为t0: (2) 将10个得

《淘宝技术这十年》读书笔记 (二).Java时代的脱胎换骨和坚若磐石

马云说过"一个好的东西往往是是说不清楚的",姑且不论这句话的对与错.但我真的很佩服<淘宝技术这十年>这本书的作者子柳,能够通过淘宝的一些故事,按照时间顺序和IT发展的各种技术描述清楚,而且过程中读起来非常有意思. 该读书笔记中参杂了很多原文的知识,因为我实在无法割舍,都挺有意思的:同时记录一些有用的知识,通过这本书能介绍些学过的知识或面试中可能出现的题目及作者所思,文章还是非常有趣的,希望对大家有所帮助! 一. Java时代 脱胎换骨 我的师傅黄裳曾经说过"好的架

Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 这一章很多,但是很有趣,也是这书的最后一章知识点了,我现在还在考虑要不要写这个拼图和2048的案例,在此之前,我们先来玩玩Android5.X的新特性吧!

JavaScript DOM编程艺术-学习笔记(第十二章)

第十二章 1.本章是综合前面章节的所有东西的,一个综合实例 2.流程:①项目简介:a.获取原始资料(包括文本.图片.音视频等) b.站点结构(文件目录结构) c.页面(文件)结构 ②设计(切图) ③css -  base.css用于引入使用的css文件 color.css  - 用于设置样式 layout.css - 用于设置布局 Typography.css - 用于设置版式 3.题外话:①在实际开发中,即使是一个空白项目也往往不会从一无所有做起,而借助的平台一般会提供目录结构,所以需要把自己

Java学习笔记—第十二章 Java网络编程入门

第十二章  Java网络编程入门 Java提供的三大类网络功能: (1)URL和URLConnection:三大类中最高级的一种,通过URL网络资源表达方式,可以很容易确定网络上数据的位置.利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端. (2)Socket:又称"套接字",用于描述IP地址和端口(在Internet中,网络中的每台主机都有一个唯一的IP地址,而每台主机又通过提供多个不同端口来提供多种服务).在客户/服务器网络中,当客