`

Chapter 14

    博客分类:
  • APUE
阅读更多

1、永远阻塞的调用有哪些?
  阻塞,直到函数调用完成为止,否则一直等待。


2、标志位操作
http://xserver.iteye.com/blog/784840
  set_fl   clr_fl


3、轮询(polling)。主动。内核不断尝试,是否能进行I/O
使用了非阻塞,程序不断调用write,但是又没有数据,造成浪费。

  异步I/O(asynchronous I/O)。被动。通知内核进行I/O
http://www.groad.net/bbs/simple/?t950.html


4、线程在I/O调用中阻塞,但线程间同步的开销有可能增加复杂性,可能导致得不偿失。


5、读锁、写锁、局部锁(记录锁,record locking,更适合的术语byte-range locking)
  5.2 锁的继承与释放(多进程 与 单进程效果不同)
    p.s 不能测试自己加的锁。只会返回F_UNLCK
http://blog.chinaunix.net/u/30503/showart_2327622.html
http://www.linuxdiyf.com/bbs/redirect.php?tid=84178&goto=lastpost

6、STREAMS


7、I/O多路转接(I/O multiplexing)

#include <sys/select.h>
int select(int maxfdpl,
    fd_set *restrict readfds,    //  可读
    fd_set *restrict writefd,  // 可写
    fd_set *restrict exceptfds, // 异常
    struct timeval *restrict tvptr);  //  等待的时间

//  restrict是c99引入的,它只可以用于限定指针,并表明指针是访问一个数据对象的唯一且初始的方式

#include <poll.h>
int poll(struct pollfd fdarray[], nfds_t nfds, int timeout);

#include <sys/uio.h>   //  散布读(scatter read)聚集写(gather write)
ssize_t  readv(int filedes, const struct iovec *iov, int iovcnt);
ssize_t writev(int filedes, const struct iovec *iov, int iovcnt);





8、存储映射I/O


分享到:
评论

相关推荐

    chapter14.rar

    通过"chapter14.rar"这个压缩包文件,我们可以深入学习JAVAEE平台上的编程技术。JAVAEE(Java Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的标准框架。它提供了一系列的服务和...

    chapter14_SVM_

    在本压缩包文件"chapter14_SVM_"中,包含了一个名为"chapter14.m"的MATLAB程序,它可能是一个实现SVM回归预测的示例。 SVM回归与SVM分类类似,但目标是从连续的输出数据中建立预测模型。在"chapter14.m"代码中,...

    Chapter14.pdf

    ### 多目标与目标规划(Chapter14.pdf) #### 14.1 引言 在之前的学习过程中,我们主要关注了单个目标或标准下的问题解决方法。然而,在现实生活中,往往存在多个衡量标准或者目标,这些目标之间可能是相互冲突的...

    Chapter 14 The Tessellation Stages

    本章“Chapter 14 The Tessellation Stages”深入探讨了如何利用这些阶段来创建更精细、更真实的三维模型。以下是对这个主题的详细讲解: 1. **Tessellation的基本概念**:Tessellation是一种将低多边形几何体转换...

    C# 入门经典 Chapter 14 Code -- revised

    在"C# 入门经典 Chapter 14 Code -- revised"这个章节中,我们将会深入学习C#编程语言的关键概念和实践技巧。C#是一种多范式、面向对象的编程语言,由微软公司开发,主要用于构建Windows平台上的应用程序,尤其是...

    Realtime3DRenderWithHLSL源码(Chapter14)

    《实时三维渲染与HLSL源码解析》(Chapter14) 实时三维渲染技术是现代计算机图形学中的重要组成部分,广泛应用于游戏开发、虚拟现实、可视化等领域。在本章中,我们将深入探讨如何利用High-Level Shader Language...

    matlab绘图-chapter14.rar

    matlab绘图-chapter14.rar

    chapter14_基于SVM的数据分类预测——意大利葡萄酒种类识别.rar

    《基于SVM的数据分类预测——意大利葡萄酒种类识别》 在这个项目中,我们主要探讨的是如何利用支持向量机(Support Vector Machine,简称SVM)这一机器学习算法对意大利葡萄酒进行种类识别。SVM是一种强大的监督...

    raytracegroundup_transplant1_chapter14_20170217

    文件"raytracegroundup_transplant1_picture"可能是移植后生成的示例图形,展示出书中章节的光线追踪结果,而"chapter14_20170217"可能是移植过程中某个版本的代码存档。在学习过程中,结合这些图像和代码,你可以更...

    Chapter14PublicSectorOrganizations公营机构.pptx

    Chapter14PublicSectorOrganizations公营机构.pptx

    Java语言程序设计与数据结构(基础篇)第14章课后习题代码chapter14.rar

    在解码"chapter14.rar"压缩包中的代码时,你需要仔细阅读代码注释,理解每个函数的作用,分析其逻辑流程,并尝试运行和测试代码。同时,根据题目要求,你可能需要修改或扩展现有的代码,例如增加新的功能、修复bug...

    ARM嵌入式系统开发典型模块 chapter 14 DSP

    ### ARM嵌入式系统开发典型模块 Chapter 14:DSP芯片扩展 #### 14.1 DSP简介 ##### 14.1.1 什么是DSP 数字信号处理(Digital Signal Processing,简称DSP)是一种涉及多学科交叉融合的技术,主要用于信号的数字化...

    SAS编程技术教程 chapter14.sas

    SAS编程技术教程 chapter14.sas

    Chapter14-相对论答案-含综合练习-zhl1

    《Chapter14-相对论答案-含综合练习-zhl1》章节主要涵盖了狭义相对论的基本概念、理论和应用,包括伽利略变换、牛顿时空观、相对论基本原理、洛伦兹变换以及狭义相对论的动量与能量等核心知识点。 一、伽利略变换与...

    chapter14.rar精通Qt4编程(第2版)

    在这一章节中,"Chapter 14"可能涵盖了Qt中的高级主题和特定功能。由于具体章节内容没有给出,我们可以推测一些通常在高级Qt编程中会涉及的主题: 1. **信号与槽机制**:这是Qt的核心特性之一,用于对象间的通信。...

    土木工程制图课件chapter14.pptx

    土木工程制图课件chapter14.pptx

    软件设计(II)教学课件:Chapter 14 Introduction to theStandard

    Chapter 14 "Introduction to the Standard Template Library" (STL) 涉及C++编程中的核心组件,它被包含在C++标准库中,旨在标准化常用的数据结构和算法。STL由Alexander Stepanov在20世纪80年代开发,并于1994年2...

    chapter14-15-Python3入门与精通的配套资源数据集、源代码资料(1).zip.zip

    同样,"chapter14"文件夹中的代码则是对应第14章的实践案例。这些代码示例可以帮助读者巩固理论知识,解决实际问题,并且通过调试和修改代码,可以锻炼问题解决能力。 通过结合《Python3入门与精通》的文本内容,...

    opengl系统开发案例代码Chapter14

    opengl系统开发案例代码Chapter14 MissileTest

Global site tag (gtag.js) - Google Analytics