操作系统第五章_02 I/O软件层次结构

简介: 操作系统第五章_02 I/O软件层次结构
🏫中北大学软件学院
🥇本篇文章对操作系统的IO软件层次进行具体介绍,总统的梳理各层次之间的关系

@[TOC]

知识总览

在这里插入图片描述

用户层软件

用户层软件实现了与用户交互的接口,用户可直接使用该层提供的、与I/O操作相关的库函数对设备进行操作。

Eg:printf(“hello, world!");

==用户层软件将用户请求翻译成格式化的I/O请求,并通过“系统调用”请求操作系统内核的服务。==

Eg:printf(“hello, world!”); 会被翻译成等价的 write 系统调用,当然,用户层软件也会在系统调用时填入相应参数。

Windows 操作系统向外提供的一系列系统调用,但是由于系统调用的格式严格,使用麻烦,因此在用户层上封装了一系列更方便的库函数接口供用户使用(Windows API)。

在这里插入图片描述

设备独立性软件

设备独立性软件,又称设备无关性软件。==与设备的硬件特性无关的功能几乎都在这一层实现。==

在这里插入图片描述
主要实现的功能:

  • 向上层提供统一的调用接口(如 read/write 系统调用)
  • 设备的保护

原理类似与文件保护。==设备被看做是一种特殊的文件==,不同用户对各个文件的访问权限是不一样的,同理,对设备的访问权限也不一样。

  • 差错处理

设备独立性软件需要对一些设备的错误进行处理

  • 设备的分配与回收
  • 数据缓冲区管理

可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异

  • 建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序

用户或用户层软件发出I/O操作相关系统调用的系统调用时,需要指明此次要操作的I/O设备的逻辑设备名(eg:去学校打印店打印时,需要选择 打印机1/打印机2/打印机3 ,其实这些都是逻辑设备名)
设备独立性软件需要通过“逻辑设备表(LUT,Logical UnitTable)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序

在这里插入图片描述
操作系统系统可以采用两种方式管理逻辑设备表(LUT):
第一种方式,整个系统只设置一张LUT,这就意味着所有用户不能使用相同的逻辑设备名,因此这种方式只适用于单用户操作系统。
第二种方式,为每个用户设置一张LUT,各个用户使用的逻辑设备名可以重复,适用于多用户操作系统。系统会在用户登录时为其建立一个用户管理进程,而LUT就存放在用户管理进程的PCB中

设备驱动程序

各式各样的设备,外形不同,其内部的电子部件(I/O控制器)也有可能不同

==为何不同的设备需要不同的设备驱动程序?==
佳能打印机的厂家规定状态寄存器为 0 代表空闲,1代表忙碌。有两个数据寄存器
在这里插入图片描述
惠普打印机的厂家规定状态寄存器为 1代表空闲,0代表忙碌。有一个数据寄存器
在这里插入图片描述
不同设备的内部硬件特性也不同,这些特性只有厂家才知道,因此厂家须提供与设备相对应的驱动程序,CPU执行驱动程序的指令序列,来完成设置设备寄存器,检查设备状态等工作

==主要负责对硬件设备的具体控制,将上层发出的一系列命令(如read/write)转化成特定设备“能听得懂”的一系列操作。包括设置设备寄存器;检查设备状态等。==

不同的I/O设备有不同的硬件特性,具体细节只有设备的厂家才知道。因此厂家需要根据设备的硬件特性设计并提供相应的驱动程序。

中断处理程序

当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行。中断处理程序的处理流程如下:
在这里插入图片描述

知识回顾

在这里插入图片描述
在这里插入图片描述

相关文章
|
7天前
|
存储 人工智能 自然语言处理
OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率
随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率。它具备智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,适合日常办公与专业开发。安装简便,上手容易,能显著提高工作效率。
18 3
|
28天前
|
存储 人工智能 自然语言处理
“OS Copilot”的操作系统辅助软件
【10月更文挑战第7天】随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件,通过智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,极大提升了用户的工作效率,无论是日常办公还是专业开发都提供了强有力的支持。其简洁的安装流程、友好的用户界面和强大的搜索能力,使得这款软件成为提升生产力的得力助手。
37 2
|
6月前
|
存储 程序员
操作系统(15)-----I/O设备管理(万字总结~)(4)
操作系统(15)-----I/O设备管理(万字总结~)
71 2
|
3月前
|
存储 缓存 算法
OS—设备独立性软件
OS—设备独立性软件
72 0
|
5月前
|
Linux 网络安全 虚拟化
Linux操作系统第一章(Linux操作系统的带入,vmware-17虚拟化软件运用,FinalShell远程连接Linux )
Linux操作系统第一章(Linux操作系统的带入,vmware-17虚拟化软件运用,FinalShell远程连接Linux )
|
4月前
|
Python
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
5月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
675 1
|
6月前
|
Shell Linux iOS开发
操作系统:一款纯正的“管理”软件
操作系统:一款纯正的“管理”软件