- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 6.1 用户层的I/O软件 6.2 缓冲区管理 ? 6.1 用户层的I/O软件6.1.1 系统调用与库函数 1. 系统调用 一方面,不允许运行在用户态的应用进程去直接调用运行在核心态(系统态)的OS过程。 另一方面,应用进程在运行时,又必须取得OS所提供的服务,否则,应用程序几乎无法运行。 所以,OS在用户层中引入了一个中介过程——系统调用,应用程序可以通过它间接调用OS中的I/O过程,对I/O设备进行操作。 系统调用是应用程序取得OS所有服务的唯一途径。在汇编语言编写程序时,可以直接使用系统调用。C语言中,首先提供了与系统调用相对应的库函数。 图6-20 系统调用的执行过程 2. 库函数 在C语言以及UNIX系统中,系统调用(如read)与各系统调用所使用的库函数(如read)之间几乎是一一对应的。 微软定义了一套过程,称为Win32 API的应用程序接口(Application Program Interface),程序员利用它们取得OS服务,该接口与实际的系统调用并不一一对应。 用户程序通过调用对应的库函数使用系统调用,这些库函数与调用程序连接在一起,被嵌入在运行时装入内存的二进制程序中。 6.1.2 假脱机(Spooling)系统 1. 假脱机技术 脱机输入、输出:利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上,或者相反。这样当处理机需要输入数据时,便可以直接从磁盘中读取数据,极大地提高了输入速度。 假脱机技术:利用多道程序中的一道程序模拟脱机输入时的外围机功能,再利用另外一道程序模拟脱机输出时的外围控制机功能。这样可以在主机的直接控制下,实现以前的脱机输入、输出。外围操作与CPU对数据的处理同时进行,把这种在联机情况下实现的同时外围操作技术称为SPOOLing技术,或假脱机技术。 2. 假脱机打印机系统 打印机是经常用到的输出设备,属于独占设备。利用假脱机技术可将它改造为一台可供多个用户共享的打印设备,从而提高设备的利用率,也方便了用户。共享打印机技术已被广泛地用于多用户系统和局域网络中。假脱机打印系统主要有以下三部分: (1) 磁盘缓冲区。 (2) 打印缓冲区。 (3) 假脱机管理进程和假脱机打印进程。 ? 6.2 缓?冲?区?管?理6.2.1 缓冲的引入 引入缓冲区的原因有很多,可归结为以下几点: (1) 缓和CPU与I/O设备间速度不匹配的矛盾。 (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 (3) 解决数据粒度不匹配的问题。 (4) 提高CPU和I/O设备之间的并行性。 6.2.2 各种缓冲区 1. 单缓冲区(Single Buffer) 在设备和处理机之间设置一个缓冲区,交换数据时,先把被交换的数据写入缓冲区,再由需要的设备或处理机将数据从缓冲区取走。存完才可以取,取光才可以再存。 图6-23 单缓冲工作示意图 2. 双缓冲区(Double Buffer) 根据单缓冲的特点,CPU在传送时间内处于空闲状态,由此引入双缓冲。I/O设备输入数据时先装填到缓冲区1,在缓冲区1满后才开始装填缓冲区2,与此同时,处理机可以从缓冲区1中取出数据放入用户进程处理。当缓冲区1中的数据处理完后,如果缓冲区2已经填满,则处理机又从缓冲区2中取出数据放入用户进程处理。 图6-24 双缓冲工作示意图 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统 燕山大学软件工程—操作系统
您可能关注的文档
最近下载
- 2025-2026学年初中数学八年级上册(2024)青岛版(2024)教学设计合集.docx
- 紫砂壶历代名家.doc VIP
- 某银行新员工国际业务培训课件.ppt VIP
- 有理数的乘方(公开课).ppt VIP
- 牙髓炎临床表现及诊断.ppt VIP
- 2025-2030年中国水利工程勘察设计市场运营状况与发展潜力分析报告.docx
- 六年级上册数学试题-第一二单元测试卷-苏教版-含答案.docx VIP
- 2024-2025学年初中数学八年级上册青岛版(2024)教学设计合集.docx
- NBT47021-2012甲型平焊法兰.docx VIP
- 2025年危险品水路运输从业资格考试复习题库资料(浓缩500题).pdf
文档评论(0)