第8章-输入输出操作的实现.ppt
《第8章-输入输出操作的实现.ppt》由会员分享,可在线阅读,更多相关《第8章-输入输出操作的实现.ppt(70页珍藏版)》请在沃文网上搜索。
1、第第 8章章I/O操作的实现操作的实现 8.1 I/O8.1 I/O子系统概述子系统概述子系统概述子系统概述 8.2 8.2 用户空间用户空间用户空间用户空间I/OI/O软件软件软件软件 8.2.1 8.2.1 用户程序中的用户程序中的用户程序中的用户程序中的I/OI/O函数函数函数函数 8.2.2 8.2.2 文件的基本概念文件的基本概念文件的基本概念文件的基本概念 8.2.3 8.2.3 系统级系统级系统级系统级I/OI/O函数函数函数函数 8.2.4 C 8.2.4 C标准标准标准标准I/OI/O函数函数函数函数 8.2.5 8.2.5 用户程序中的用户程序中的用户程序中的用户程序中的I
2、/OI/O请求请求请求请求 8.3 I/O 8.3 I/O硬件与软件接口硬件与软件接口硬件与软件接口硬件与软件接口 8.3.1 I/O8.3.1 I/O设备设备设备设备 8.3.2 8.3.2 设备控制器设备控制器设备控制器设备控制器 8.3.3 I/O 8.3.3 I/O端口及其编址端口及其编址端口及其编址端口及其编址 8.3.4 I/O 8.3.4 I/O控制方式控制方式控制方式控制方式8.4 8.4 内核空间内核空间内核空间内核空间I/OI/O软件软件软件软件 8.4.1 8.4.1 与设备无关的与设备无关的与设备无关的与设备无关的I/OI/O软件软件软件软件 8.4.2 8.4.2 设
3、备驱动程序设备驱动程序设备驱动程序设备驱动程序 8.4.3 8.4.3 中断服务程序中断服务程序中断服务程序中断服务程序I/O和文件操作和文件操作主要教学目标通过揭示高级语言程序中的I/O及文件操作请求的底层实现机制,使学生深刻理解OS在输入/输出系统中的重要作用;深刻理解计算机中硬件和软件如何协调工作以完成计算机功能。主要教学内容I/O子系统的组成和层次结构用户空间I/O软件I/O硬件与软件的接口内核空间I/O软件I/O操作的实现操作的实现分以下三个部分介绍第一讲:用户空间I/O软件-I/O子系统概述-文件的基本概念-用户空间的I/O函数第二讲:I/O硬件和软件的接口-I/O设备和设备控制器
4、-I/O端口及其编址方式-I/O控制方式第三讲:内核空间I/O软件-与设备无关的I/O软件-设备驱动程序-中断服务程序一个典型程序的转换处理过程一个典型程序的转换处理过程#include int main()printf(hello,worldn);经典的“hello.c”源程序#i n c l u d e n n i n t m a i n ()n 104 62 10 10 105 110 116 32 109 97 105 110 40 41 10 123n p r i n t f(h e l10 32 32 32 32 112 114 105 110 116 102 40 34 104
5、101 108l o ,w o r l d n );n 108 111 44 32 119 111 114 108 100 92 110 34 41 59 10 125hello.c的的ASCII文本表示文本表示I/O子系统概述子系统概述所有高级语言的运行时(runtime)都提供了执行I/O功能的机制 例如,C语言中提供了包含像printf()和scanf()等这样的标准I/O库函数,C+语言中提供了如(输出)这样的重载操作符。从高级语言程序中通过I/O函数或I/O操作符提出I/O请求,到设备响应并完成I/O请求,涉及到多层次I/O软件和I/O硬件的协作。I/O子系统也采用层次结构从用户I/
6、O软件切换到内核I/O软件的唯一办法是“异常”机制:系统调用(自陷)I/O子系统概述子系统概述 各类用户的I/O请求需要通过某种方式传给OS:最终用户:键盘、鼠标通过操作界面传递给OS 用户程序:通过函数(高级语言)转换为系统调用传递给OS I/O软件被组织成从高到低的四个层次,层次越低,则越接近设备而越远离用户程序。这四个层次依次为:(1)用户层I/O软件(I/O函数调用系统调用)(2)与设备无关的操作系统I/O软件(3)设备驱动程序(4)I/O中断处理程序 大部分I/O软件都属于操作系统内核态程序,最初的I/O请求在用 户程序中提出。OS在I/O系统中极其重要!OS用户用户I/O软件软件用
7、户软件可用以下两种方式提出I/O请求:(1)使用高级语言提供的标准I/O库函数。例如,在C语言程序中可以直接使用像fopen、fread、fwrite和fclose等文件操作函数,或printf、putc、scanf和getc等控制台I/O函数。程序移植性很好!但是,使用标准I/O库函数有以下几个方面的不足:(a)标准I/O库函数不能保证文件的安全性(无加/解锁机制)(b)所有I/O都是同步的,程序必须等待I/O操作完成后才能继续执行 (c)有时不适合甚至无法使用标准I/O库函数实现I/O功能,如,不提供读取文件元数据的函数(元数据包括文件大小和文件创建时间等)(d)用它进行网络编程会造成易于
8、出现缓冲区溢出等风险(2)使用OS提供的API函数或系统调用。例如,在Windows中直接使用像CreateFile、ReadFile、WriteFile、CloseHandle等文件操作API函数,或ReadConsole、WriteConsole等控制台I/O的API函数。对于Unix或Linux用户程序,则直接使用像open、read、write、close等系统调用封装函数。用户用户I/O软件软件用户进程请求读磁盘文件操作用户进程使用标准C库函数fread,或Windows API函数 ReadFile,或Unix/Linux的系统调用函数read等要求读一个磁盘文件块。用户程序中涉及
9、I/O操作的函数最终会被转换为一组与具体机器架构相关的指令序列,这里我们将其称为I/O请求指令序列。例如,若用户程序在IA-32架构上执行,则I/O函数被转换为IA-32的指令序列。每个指令系统中一定有一类陷阱指令(有些机器也称为软中断指令或系统调用指令),主要功能是为操作系统提供灵活的系统调用机制。在I/O请求指令序列中,具体I/O请求被转换为一条陷阱指令,在陷阱指令前面则是相应的系统调用参数的设置指令。系统系统I/O软件软件OS在I/O子系统中的重要性由I/O系统以下三个特性决定:(1)共享性。I/O系统被多个程序共享,须由OS对I/O资源统一调度管理,以保证用户程序只能访问自己有权访问的
10、那部分I/O设备,并使系统的吞吐率达到最佳。(2)复杂性。I/O设备控制细节复杂,需OS提供专门的驱动程序进行控制,这样可对用户程序屏蔽设备控制的细节。(3)异步性。不同设备之间速度相差较大,因而,I/O设备与主机之间的信息交换使用异步的中断I/O方式,中断导致从用户态向内核态转移,因此必须由OS提供中断服务程序来处理。那么,如何从用户程序对应的用户进程进入到操作系统内核执行呢?系统调用!系统调用和系统调用和APIOS提供一组系统调用为用户进程的I/O请求进行具体的I/O操作。应用编程接口(API)与系统调用两者在概念上不完全相同,它们都是系统提供给用户程序使用的编程接口,但前者指的是功能更广
11、泛、抽象程度更高的函数,后者仅指通过软中断(自陷)指令向内核态发出特定服务请求的函数。系统调用封装函数是 API 函数中的一种。API 函数最终通过调用系统调用实现 I/O。一个API 可能调用多个系统调用,不同 API 可能会调用同一个系统调用。但是,并不是所有 API 都需要调用系统调用。从编程者来看,API 和 系统调用之间没有什么差别。从内核设计者来看,API 和 系统调用差别很大。API 在用户态执行,系统调用封装函数也在用户态执行,但具体服务例程在内核态执行。用户程序、用户程序、C函数和内核函数和内核用户程序总是通过某种I/O函数或I/O操作符请求I/O操作。例如,读一个磁盘文件记
12、录时,可调用C标准I/O库函数fread(),也可直接调用系统调用封装函数read()来提出I/O请求。不管是C库函数、API函数还是系统调用封装函数,最终都通过操作系统内核提供的系统调用来实现I/O。printf()函数的调用过程如下:Linux系统中系统中printf()函数的执行过程函数的执行过程某函数调用了printf(),执行到调用printf()语句时,便会转到C语言I/O标准库函数printf()去执行;printf()通过一系列函数调用,最终会调用函数write();调用write()时,便会通过一系列步骤在内核空间中找到write对应的系统调用服务例程sys_write来执行
13、。main()printf();用户程序 printf()xxxx();system_call()xxxx();系统调用封装函数系统调用处理程序用户空间、运行在用户态 内核空间、运行在内核态 write()int$0 x80 I/O标准库函数sys_write()系统调用服务例程在system_call中如何知道要转到sys_write执行呢?根据系统调用号!I/O操作的实现操作的实现分以下三个部分介绍第一讲:用户空间I/O软件-I/O子系统概述-文件的基本概念-用户空间的I/O函数第二讲:I/O硬件和软件的接口-I/O设备和设备控制器-I/O端口及其编址方式-I/O控制方式第三讲:内核空间I
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 操作 实现