I/O软件设计的基本思想是将设备管理软件组织成一种层次结构。为了使复杂的I/O软件具有清晰的结构,良好的可移植性和适应性,在I/O软件中普遍釆用了层次式结构,将系统输入/输出功能组织成一系列的层次,每一层都利用其下层提供的服务,完成输入/输出功能中的某些子功能,并屏蔽这些功能实现的细节,向高层提供服务。
I/O层次结构
1.用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。一般而言,大部分的I/O软件都在操作系统内部,但仍有一部分在用户层,包括与用户程序链接在一起的库函数,甚至运行于内核之外的一些程序。
2.设备独立性软件:虽然I/O软件中的一部分(如设备驱动程序)与设备相关,但大部分软件是与设备无关的。用于实现用户程序与设备驱动器的统一接口、设备命名,设备保护,提供与设备无关的逻辑块,缓冲、存储设备的块分配,独占设备的分配和释放,出错处理。
3. 设备驱动程序:所有与设备相关的代码放在设备驱动程序中,由于设备驱动程序与设备密切相关,因此应为每一类设备配置一个驱动程序。
通常,每一类设备配置一个设备驱动程序,它是I/O进程与设备控制器之间的通信程序,常以进程形式存在。接受来自上层的设备独立性软件的抽象请求,将这些请求转换成设备控制器可以接受的具体命令,再将这些命令发送给设备控制器,并监督这些命令正确执行。
4.中断处理程序:中断处理是控制输入/输出设备和内存与CPU之间的数据传送的主要方式。用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完并恢复被中断进程的现场后,返回到被中断进程。
中断处理层的主要任务有:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等。这里的中断是指所有中断,而非设备中断一种,因此对于设备中断的处理不仅仅在这一层,而是经过其他层次处理后转入这层,向CPU发送中断信号转入中断处理程序的。
5.硬件设备:I/O设备通常包括一个机械部件和一个电子部件。为了达到设计的模块性和通用性,一般将其分开:电子部件称为设备控制器,在个人计算机中,通常是一块插入主板扩充槽的印刷电路板;机械部件则是设备本身。
当磁盘操作完成时,硬件产生一个中断,并转入中断处理程序。中断处理程序检查中断的原因,并从设备中获取所需的信息,然后唤醒睡眠的进程以结束此次I/O请求,使用户进程继续执行。
课后习题
1. 以下关于设备属性的叙述中,正确的是( )。
A. 字符设备的基本特征是可寻址到字节,即能指定输入的源地址或输出的目标地址
B. 共享设备必须是可寻址的和可随机访问的设备
C. 共享设备是指同一时间内允许多个进程同时访问的设备
D. 在分配共享设备和独占设备时都可能引起进程死锁
【答案】B
【解析】可寻址是块设备的基本特征,A 选项不正确;共享设备是指一段时间内允许多个进程同时访问的设备,因此C 选项不正确。分配共享设备是不会引起进程死锁的,D 选项不正确。
2. 【2010统考真题】本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是( )。
A.命令解释程序 B.中断处理程序 C.系统调用服务程序 D.用户登录程序
【答案】B
【解析】当用户按键时,键盘接口会得到一个代表该按键的键盘扫描码,同时产生一个中断请求。键盘中断服务程序先从键盘接口取得按键的扫描码,然后根据其扫描码判断用户所按的键并作相应的处理,最后通知中断控制器本次中断结束并实现中断返回。因此,本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是中断处理程序。
3. 【2017统考真题】系统将数据从磁盘读到内存的过程包括以下操作:
① DMA控制器发出中断请求
② 初始化DMA控制器并启动磁盘
③ 从磁盘传输一块数据到内存缓冲区
④ 执行“DMA结束”中断服务程序
正确的执行顺序是( )。
A .③→①→②→④ B. ②→③→①→④
C .②→①→③→④ D . ①→②→④→③
【答案】B
【解析】在开始DMA传输时,主机向内存写入DMA命令块,向DMA控制器写入该命令块的地址,启动I/O设备。然后,CPU继续其他工作,DMA控制器则继续直接操作内存总线,将地址放到总线上开始传输。整个传输完成后,DMA控制器中断CPU。因此执行顺序是2,3, 1 ,4 ,选B。
4. 【2011统考真题】用户程序发出磁盘I/O请求后,系统的正确处理流程是( )。
A. 用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B. 用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C. 用户程序→设备驱动程序→系统调用处理程序→中断处理程序
D. 用户程序→设备驱动程序→中断处理程序→系统调用处理程序
【答案】B
【解析】输入/输出软件一般从上到下分为4个层次:用户层、与设备无关的软件层、设备驱动程序及中断处理程序。与设备无关的软件层也就是系统调用的处理程序。
当用户使用设备时,首先在用尸程疗中发起一次系统调用,操作系统的内核接到该调用请求后,请求调用处理程序进行处理,再转到相应的设备驱动程序,当设备准备好或所需数据到达后,设备硬件发出中断,将数据按上述调用顺序逆向回传到用户程序中。
5. 【2012统考真题】操作系统的I/O子系统通常由4 个层次组成,每层明确定义了与邻近层次的接口,其合理的层次组织排列顺序是( )o
A. 用户级I/O软件、设备无关软件、设备驱动程序、中断处理程序
B. 用户级I/O软件、设备无关软件、中断处理程序、设备驱动程序
C. 用户级I/O软件、设备驱动程序、设备无关软件、中断处理程序
D. 用户级I/O软件、中断处理程序、设备无关软件、设备驱动程序
【答案】A
【解析】考查内容同上题。设备管理软件一般分为4个层次:用户层、与设备无关的系统调用处理层、设备驱动程序及中断处理程序。
6. 【2013统考真题】用户程序发出磁盘I/O请求后,系统的处理流程是:用户程序一系统调用处理程序一设备驱动程序一中断处理程序。其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是( )。
A.用户程序
B .系统调用处理程序
C .设备驱动程序
D .中断处理程序
【答案】C
【解析】计算磁盘号、磁头号和扇区号的工作是由设备驱动程序完成的。题中的功能因设备硬件的不同而不同,因此应由厂家提供的设备驱动程序实现。
7. 某计算机系统中,时钟中断处理程序每次执行时间为2ms (包括进程切换开销),若时钟中断频率为60Hz,问CPU用于时钟中断处理的时间比率为多少?
【解析】
时钟中断频率为60Hz,因此中断周期为l/60s,每个时钟周期中用于中断处理的时间为2ms,因此比率为0.002/(1/60) = 12%。
登录后开始许愿
暂无评论,来抢沙发