



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设备驱动程序 与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型,例如,即使系统支持若干不同商标的终端,只要其差别不大,就可以设计一个终端驱动程序。但是,若系统支持的终端性能差别很大,如不灵活的硬拷贝终端与带有小鼠标的智能位映象图形终端,则必须设计不同的终端驱动程序。 上一节我们介绍了设备控制器做的工作,知道每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责泄放这些命令,并监督它们正确执行。因此,磁盘驱动程序是操作系统中唯一知道磁盘控制器设置有多少寄存器以及这些寄存器作用的。只有它才了解磁盘拥有的扇区数、磁道数、柱面数、磁头数、臂的移
2、动、磁盘交叉访问系数、马达驱动器,磁头稳定时间和其它所有保证磁盘正常工作的机制。 一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求。一个典型的请求是“读第几块”。如果请求到来时,驱动程序的进程空闲,它立即开始执行这个请求;若驱动程序的进程正在执行一个请求,这时它将新到来的请求排到一个等待处理的IO请求队列中,待正执行的请求完成后,再依次从IO请求队列中取出一个个IO请求,逐个处理。 以磁盘为例,实际实现一个IO请求的第一步是将这个抽象请求(READ(文件名,记录号) 转换成磁盘的具体参数。对于磁盘驱动程序来说,就是计算请求块实际在磁盘的位置,检查驱动器的马达是否
3、正在运转,确定磁头是否定位在正确的柱面上等等。总之,它必面决定需要控制器的哪些操作,以及按照什么样的次序实现。一旦明确应向控制器发送哪些命令,它就向控制器一次只能接收一条命令(如DMA方式下),有一些控制器则接收一个命令链表(通道方式下),然后自行控制执行,不再求助于操作系统。 在设备驱动程序的进程泄放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成。这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成。例如,某些终端(包括IBMPC)的滚屏操作,只要求把几个字节写到控制器的寄存器中即可,整个操作
4、只在几微秒就能完成。因此,执行设备驱动程序的进程不必等待。 上述两种处理方式,在操作完成后,都必须检查数据传输是否有错。若有错,则它返回一些错误状态信息给调用者。若无错,设备驱动程序还负责将数据传送到设备无关的软件层。若还有未完成的请求在排队,则再选择一个启动执行。若没有未完成的请求时,则该驱动程序进程等待下一个请求的到来。1.4.1 整体式系统整体式系统是最常用的组织的方式,但常被人们形容为“一锅粥”,其结构实际就是“无结构”。整个操作系统是一堆过程的集合,每个过程都可以调用任意其他过程。使用这种技术时系统中的每一个过程都有一个定义完好的接口,即它的人口参数和返回值,而且相互间的调用不受约束
5、。在整体式系统中,为了构造最终的目标操作系统程序,开发人员首先将一些独立的过程进行编译,然后用链接程序将其他链接在一起成为一个单独的目标程序。从信息隐藏的观点看,它没有任何程度的隐藏每一个过程都对其他过程可见。(与此相对的是将系统分成若干个模块,信息被隐藏在这些模块内部,在外部只允许从预定好的调用,这如图1-16所示。(多数CPU有两种状态:核心态:供操作系统使用,该状态下可以执行机器的所有指令;用户态:借用户程序用,该状态下I/O操作和某些其他操作不能执行。)操作系统随后检查一张系统调用的参数以确定应执行哪条系统调用,这如图1-16所示,它确定了将调用的服务过程。当系统调用结束后,控制又返回
6、给用户程序(第4步),于是继续执行系统调用后面的语句。这种组织方式提出了操作系统的一种基本结构:(1) 一个用来调用被请求服务例程的主要程序。(2) 一套执行系统调用的服务例程。(3) 一套支持服务例程的实用过程。在这种模型中,每一条系统调用都由一个服务例程完成;一组实用过程用来完成若干服务例程都需要用到的功能,如从用户程序获取数据等,这种将各种过程分为三层的模型如图1-17所示。层次式系统图1-17所示的系统进一步通用化就成为层次式系统,即上层软件基于下层软件之该系统分为六层,如图1-18所示。第零层进行处理分配,当发生中断或时钟到达期限时由该层软件进行切换。在第零层之上有若干个顺序进程运行
7、,编写这些进程时就不再考虑多个进程在单一处理器上运行的细节。换句话说,第零层提供了CPU基本的多道程序功能。层次功能5操作员4用户程序3输入/输出管理2操作员-进程通信1内存和磁盘管理0处理器分配和多道程序 图1-18 THE操作系统的结构 第一层进行内存管理,它为进程分配内存空间,当内存用完时则会在用作对换的512K字的磁盘上分配空间。在第一层之上,进程不用再考虑它是在内存还是在磁盘上,因为第一层软件保证在需要访问某一页面时,它必定在内存中。第二层软件处理进程与操作员控制台之间的通信。在第二层之上,则可认为每个进程都有它自己的操作员控制台。第三层软件管理I/O设备和相关的信息流缓冲。在第三层
8、之上,每个进程都与适当抽象了的设备打交道而不必考虑物理设备的细节。第四层是用户程序层,用户程序在此不考虑进程、内存、控制台和I/O设备等环节。系统操作员进程位于第五层。MULTICS对层次化概念进行了更一步的通用化,它不采用层而是由许多同心环构成,内层的环比外层的环有更高的特权级,当外层环的过程调用内层环的过程时,它必须执行一条类似系统调用的TRAP指令,TRAP指令执行前要进行严格的参数合法性检查。尽管在MULTICS中操作系统是各个用户进程地址空间的一部分,硬件仍然能够对单个进程(实际是内存中的一个段)的读、写和执行权限进行保护。实际上THE分层方案只是在设计提供了一些方便,因为系统的各个
9、部分最终仍然被链接成一个完整的单个目标程序,而在MULTICS中,上述环形方案在运行中是实际存在的且由硬件实现。环形方案的一个优点是它很容易被 扩展,以构造用户系统。例如在一介系统中,教授可以写一个程序来检查学生编写的程序并打分,将教授的程序放在第 个环中运行,而将学生的程序放在第 +1个环中运行,则学生无法 改教授给出的成绩。143虚拟机系统OS360的最早版本是纯粹的批处理系统,然而许多360的用户希望使用分时系统,于是IBM公司和另外的一些研究小组决定开发一个分时系统。随IBM后提供了一套分时系统TSS360,但它非常庞大,运行缓慢,几乎没有什么人用。该系统在花费了约五千万美元的研制费用
10、后最终被弃之不用(Graham,1970)。但IBM设在麻省剑桥的一个研究中心开发了一个完全不同的系统,最终被IBM用作为产品。该系统目前仍然在IBM的大型主机上广泛使用。该系统最初命名为CPCMS,后来改为VM370(Seawright and Mackinnon,1979 )。它基于如下的思想:一个分时系统应该提供以下特性:(1)多道程序,(2)一个具有比裸机更方便,界面扩展的计算机。VM370的主旨在于将此二者彻底地隔离开来。该系统的核心称作虚拟机监控程序,它在裸机上运行并具备多道程序功能。它向上层提供了若干台虚拟机,如图119所示。与其他操作系统不同的是:这些虚拟机不是那种具有文件等良
11、好特征的扩展计算机,而仅仅是裸机硬件的精确复制。它包含有:核心态用户态,IO功能,中断,以及真实硬件具有的全部内容。因为每台虚拟机都与裸机完全一样,所以每台虚拟机可以运行裸机能够运行的任何操作系统。不同的虚拟机可以运行不同的操作系统而且往往如此。某些虚拟机运行OS360的后续版本作批处理或事务处理,而同时另一些运行一个单用户交互系统供分时用户使用,该系统称作CMS(Conversational Monitor System,会话监控系统)。当CMS上的程序执行一条系统调用时,该系统调用陷入其自己的虚拟机的操作系统,而不是VM370,这就像在真正的计算机上一样。CMS然后发出正常的硬件IO指令来
12、执行该系统调用。这些IO指令被VM370捕获,随后VM370执行这些指令,作为对真实硬件模拟的一部分。通过将多道程序功能和提供虚拟机分开,它们各自都更简单更灵活和易于维护。144客户服务器系统VM370将传统操作系统的大部分代码(实现扩展的计算机)分离出来放在更高的层次上,即CMS,由此使系统得以简化。但VM370本身仍然非常复杂,因为模拟许多虚拟的370硬件不是一件简单的事情(尤其是还想作得高效时)。现代操作系统的一个趋势是将这种把代码移到更高层次的思想进一步发展,从操作系统中去掉尽可能多的东西,而只留一个最小的核心。通常的方法是将大多数操作系统功能由用户进程来实现。为了获取某项服务,比如读
13、文件中的一块,用户进程(现称客户进程,client process)将此请求发送给一个服务器进程(server process),服务器进程随后完成此操作并将回答信息送回。该模型示于图120,核心的全部工作是处理客户与服务器间的通信。操作系统被分割成许多部分,每一部分只处理一方面的功能,如文件服务进程服务终端服务或存储器服务。这样每一部分变得更小,更易于管理。而且,由于所有服务器以用户进程的形式运行,而不是运行在核心态,所以它们不直接访问硬件。这样处理的结果是:假如在文件服务器中发生错误,文件服务器可能崩溃,但不会导致整个系统的崩溃。客户一服务器模型的另一个优点是它适用于分布式系统(参阅图121),如果一个客户通过消息传递与服务器通信,客户无需知道这条消息是在本机就地处理还是通过网络送给远地机器上的服务器。在这两种情况下,客户机的处理都是一样的:发送一个请求,收回合。某些操作系统功能(如向物理IO设备寄存器写入命令字)靠用户空间的程序是很难完成的。解决这个问题的方法有两种:一种是设立一个运行于核心态的专用服务器进程,它具有访问硬件的绝对权力,但仍旧通过平常的消息机制与其他进程通信。另一种方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏州幼儿师范高等专科学校《专业软件应用(水文与水资源工程)》2023-2024学年第二学期期末试卷
- 辽宁经济职业技术学院《操作系统原理》2023-2024学年第二学期期末试卷
- 阿克苏工业职业技术学院《媒介集团研究》2023-2024学年第二学期期末试卷
- 重庆移通学院《材料力学》2023-2024学年第二学期期末试卷
- 曲阜远东职业技术学院《化学教育测量与评价》2023-2024学年第二学期期末试卷
- 西昌民族幼儿师范高等专科学校《广播电视新闻》2023-2024学年第二学期期末试卷
- 山西传媒学院《农村发展概论》2023-2024学年第二学期期末试卷
- 西昌学院《纪录片鉴赏》2023-2024学年第二学期期末试卷
- 清华大学《碳一化工》2023-2024学年第二学期期末试卷
- 山东理工大学《节奏与打击乐基础训练》2023-2024学年第二学期期末试卷
- 经纪公司聘用协议书
- 2025年北京市朝阳区高三二模-政治+答案
- 温州市普通高中2025届高三第三次适应性考试物理试题及答案
- 《光纤激光切割技术》课件
- 初中化学基础试题及答案
- 10.信息光子技术发展与应用研究报告(2024年)
- 《导数及其应用》复习课教学课件
- 出纳岗面试试题及答案
- 2025年下半年商务部外贸发展事务局第二次招聘8人易考易错模拟试题(共500题)试卷后附参考答案
- 【公开课】+埃及+课件-2024-2025学年七年级地理下学期湘教版
- 2024年山西杏花村汾酒集团有限责任公司招聘笔试真题
评论
0/150
提交评论