首页IT科技linux中i/o(Linux高级I/O机制)

linux中i/o(Linux高级I/O机制)

时间2025-06-20 15:11:19分类IT科技浏览4253
导读:2011-08-20 14:11...

2011-08-20 14:11

一            、课程目标

I/O常常是现代应用程序的性能瓶颈             ,为突破这个瓶颈                  ,现代操作系统不断推出新的I/O机制      ,使高性能的I/O编程变成可能            。本次课程将讨论Linux下几种高性能I/O的机制          ,这些功能都是基于成熟的系统调用                  ,通过本次课程的学习         ,学员将掌握以下内容:

传统File I/O; 散/聚 I/O (Scatter/Gather I/O); 阻塞式和非阻塞式I/O; I/O多路复用; select() , poll(); Event poll (epoll); 异步I/O; 运用I/O多路复用机制和异步I/O机制提高网络应用的并发响应和性能                   。

二                   、参训要求

参加本次课程的学员须具备以下能力:

本次课程使用 C语言 教学       ,所以学员需拥有较好的C语言基础; 能熟练使用常用的Linux命令; 由于本次课程涉及socket编程                   ,所以学员需有Linux下socket编程的经历; 能熟练使用gcc      、gdb         、熟练撰写makefile; 最好熟练使用vi                   、emacs等文本编辑器其中的一种      。

三         、课程实践环境

学员自备电脑 操作系统:GNU/Linux 2.6+(建议使用Redhat AS 5+或Ubuntu      、Fedora) 编译器:GCC v4.1+                   、GDB v7.0+ 可选IDE:Eclipse CDT

四             、课程大纲

本次课程由以下几个部分构成:

1   、预备知识

理解:UNIX下一切皆文件 I/O的实质和I/O的步骤

2                  、文件I/O

Linux I/O系统调用与C标准库stdio的比较 I/O系统调用: open(), close(), read(), write() 控制I/O的Buffer 读写指针的定位:lseek() I/O控制:ioctl() 原子操作和数据竞态 文件控制: fcntl() 文件打开的状态标志(status flags) 文件描述符 复制文件描述符 (dup(), dup2())

3                、散/聚I/O (Scatter/Gather I/O)

什么是散/聚 I/O            ,为什么需要散/聚 I/O 系统调用:readv(), writev()

4、I/O多路复用 (I/O Multiplexing)

什么是I/O多路复用 I/O多路复用和多线程并发处理I/O的区别 select(), poll():传统的UNIX I/O多路复用机制 select(), pselect() poll(), ppoll() Epoll:Linux系统新的I/O多路复用机制 Event poll介绍 创建epoll实例 控制epoll 等待I/O事件 epoll的两种触发方式:水平触发(level-triggered)               、边缘触发(edge-triggered)

5                   、异步I/O

关于同步I/O:阻塞式I/O和非阻塞式I/O 什么异步I/O 理解同步I/O和异步I/O的差别 异步I/O重要数据结构:异步I/O控制块--struct aiocb 异步读   、写操作:aio_read(), aio_write() 检查异步操作的结果:aio_error(), aio_return() 取消异步操作:aio_cancel() 异步文件同步:aio_fsync()

6            、使用高性能I/O机制提高网络服务端应用的性能

为什么传统的I/O机制会导致服务端应用的性能瓶颈 使用select()和poll()实现ACE中的Reactor模式 使用epoll实现ACE中的Reactor模式 在网络应用中使用异步I/O机制:模拟ACE中Proactor模式和框架 实例演示   ,区别传统I/O机制和高性能I/O机制对于服务端应用的重要性

五                   、时间安排

课程时间:2天                   ,以每天6小时计               ,具体安排如下:

Day1 1 - 预备知识 2 - 文件I/O 3 - 散/聚 I/O 4 - I/O多路复用 Day2 5 - 异步I/O 6 - 高性能I/O机制和网络服务端应用

六      、课程资源

可获取的课程资源见:教学资源         。

声明:本站所有文章,如无特殊说明或标注                ,均为本站原创发布                   。任何个人或组织                  ,在未征得本站同意时   ,禁止复制         、盗用                   、采集         、发布本站内容到任何网站      、书籍等各类媒体平台         。如若本站内容侵犯了原著者的合法权益             ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
spring源码哪本书好(爱上源码,重学Spring AOP深入)