[转] splice系列系统调用】的更多相关文章

关注splice系列系统调用(包括splice,tee和vmsplice)已经有一段时间了,开始的时候并未能领会splice的意义所在,致使得出了“splice系列系统调用不怎么实用”的错误结论.随着内核研究的深入,才逐渐懂得:splice对于其中一个文件描述符必须是管道的要求并不是阻碍其应用的障碍,并且恰恰相反,它正是splice的本质所在. splice 主要通过去除在内核空间和用户空间之间的内存拷贝的开销来提高系统的性能.它将内核空间和用户空间之间的内存拷贝转变成内核空间和内核空间的内存的…
1.内核事件表 epoll是Linux特有的I/O复用函数.epoll把用户关心的文件描述上的事件放在内核里的一个事件表中,并用一个额外的文件描述符来标识该内核事件表.这个额外文件描述符使用函数epoll_create函数来创建. #include<sys/epoll.h> int epoll_create(int size) size参数给内核提示事件表需要多大.该函数返回的文件描述符用作其他epoll函数的第一个参数,标识要访问的内核事件表. 2.epoll_ctl函数 此函数用来操作内核…
 IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户输入和网络连接 TCPserver要同一时候处理监听socket和连接socket,这是I/O复用使用最多的场合 server要同一时候处理TCP请求和UDP请求.比方本章将要讨论的会社server server要同一时候监听多个port.或者处理多种服务. I/O复用尽管能同一时候监听多个文件描写…
I/O复用使得程序能够同时监听多个文件描述符,适用于以下情况: 客户端同时处理多个socket,比如非阻塞connect 客户端同时处理用户输入和网络连接,比如聊天室程序 TCP服务器同时处理监听socket和连接socket,这是IO复用最多的用法 服务器要同时处理TCP请求和UDP请求,比如回射服务器 服务器要同时监听多个端口,或者处理多种事物,比如xinetd服务器 linux下实现IO复用的系统调用主要有select poll epoll 9.1 select系统调用 #include…
问题聚焦:     前篇提到了I/O处理单元的四种I/O模型.     本篇详细介绍实现这些I/O模型所用到的相关技术.     核心思想:I/O复用 使用情景: 客户端程序要同时处理多个socket 客户端程序要同时处理用户输入和网络连接 TCP服务器要同时处理监听socket和连接socket,这是使用最多的场合 服务器要同时可处理TCP请求和UDP请求 服务器要同时监听多个端口 主要技术: select poll epoll select系统调用 作用:     在一段指定时间内,监听用户…
多进程编程 多进程编程包含例如以下内容: 复制进程影映像的fork系统调用和替换进程映像的exec系列系统调用. 僵尸进程以及怎样避免僵尸进程 进程间通信(Inter-Process Communication,IPC)最简单的方式:管道 3种进程间通信方式:信号量,消息队列和共享内存 fork系统调用 #include<unistd.h> pid_tfork(void); 该函数的每次都用都返回两次,在父进程中返回的是子进程的PID,在子进程中返回的是0.该返回值是兴许代码推断当前进程是父进…
I/O多路复用是在多线程或多进程编程中常用技术.主要是通过select/epoll/poll三个函数支持的.在此主要对select和epoll函数详细介绍. select函数 该函数运行进程指示内核等待多个事件中的任何一个发生,并只有一个或多个事件发生或经历一段指定的时间后才唤醒它. 调用select告知内核对哪些描述符(就读.写或异常条件)感兴趣以及等待多长时间.我们感兴趣的描述符不局限于套接字,任何描述符都可以使用select来测试. 函数原型: #include<sys/select.h>…
目  录 Unit 1 操作系统安装.... 3 1.1 多操作系统安装... 3 1.1.1 VMware简介... 3 1.1.2 VMWare基本使用... 4 1.2 安装Red Hat Linux 9.0. 15 1.3 思考题... 15 [实习报告]... 16 Unit 2  Linux命令接口使用.... 17 2.1 访问Linux系统... 17 2.1.1 创建用户组... 17 2.1.2 删除用户组... 17 2.1.3 创建用户... 18 2.1.4 删除用户.…
问题聚焦:     进程是Linux操作系统环境的基础.     本篇讨论以下几个内容,同时也是面试经常被问到的一些问题:     1 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用     2 僵尸进程     3 进程间通信的方式之一:管道     4 3种System V进程通信方式:信号量,消息队列和共享内存 fork系统调用 定义: #include <sys/types.h> #include <unistd.h> pid_t fork( void…
问题聚焦:     前篇提到了I/O处理单元的四种I/O模型.     本篇详细介绍实现这些I/O模型所用到的相关技术.     核心思想:I/O复用 使用情景: 客户端程序要同时处理多个socket. 客户端程序要同时处理用户输入和网络连接. TCP服务器要同时处理监听socket和连接socket,这是使用最多的场合. 服务器要同时处理TCP请求和UDP请求. 服务器要同时监听多个端口或者处理多种服务. 主要技术: select poll epoll select系统调用 作用:     在…