【愚公系列】软考中级-软件设计师 030-操作系统(设备管理)
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
设备管理是操作系统的一项重要功能,它负责管理计算机系统中的各种硬件设备,包括输入设备、输出设备和存储设备等。设备管理的主要任务包括设备的分配、控制和调度。
设备的分配是指将可用的设备资源分配给需要使用的进程或用户。在操作系统中,每个设备都有一个设备控制块(Device Control Block,DCB)来描述设备的状态和属性,包括设备类型、设备编号、设备状态等。当一个进程或用户需要使用某个设备时,系统会查找可用的设备并分配给它。
设备的控制是指对设备进行操作和控制。操作系统通过向设备发送控制命令来控制设备的操作。这些控制命令包括打开设备、关闭设备、读取数据、写入数据等。操作系统还会处理设备发生的中断和异常,以及设备的错误处理和恢复等。
设备的调度是指对设备的访问进行调度和管理。由于计算机系统中的设备资源是有限的,不同的进程或用户可能需要同时访问同一个设备。设备调度算法决定了进程或用户按照何种顺序访问设备,以保证设备的效率和公平性。一般来说,设备调度算法可以是先来先服务、最短作业优先、轮转调度等。
设备管理还包括设备驱动程序的开发和维护。设备驱动程序是操作系统中的一段代码,用于与硬件设备进行通信和交互。驱动程序将操作系统的请求转换为设备所能理解的命令,并将设备的响应传递给操作系统。
🚀一、设备管理
🔎1.设备分类
设备分类方式 | 描述 | 示例设备 |
---|---|---|
数据组织分类 | 块设备:以固定大小的块为单位进行数据传输的设备 | 硬盘,固态硬盘 |
字符设备:以字符为单位进行数据传输的设备 | 键盘,鼠标,打印机 | |
资源分配分类 | 独占设备:一次只能被一个程序使用的设备 | 硬盘,串口 |
共享设备:可以被多个程序同时使用的设备 | 打印机 | |
虚拟设备:通过软件模拟出来的设备 | 虚拟机的虚拟硬盘,虚拟网络适配器 | |
传输速率分类 | 低速设备:传输速率较慢的设备 | 鼠标,键盘 |
中速设备:传输速率适中的设备 | 打印机 | |
高速设备:传输速率较快的设备 | 硬盘,固态硬盘 |
按数据组织分类将设备分为块设备和字符设备两类,块设备是以固定大小的数据块为单位进行数据传输,如硬盘驱动器;字符设备则以字符流为单位进行数据传输,如键盘和打印机。
从资源分配角度来分类设备,可以将设备分为独占设备、共享设备和虚拟设备。独占设备是一次只能被一个进程或用户占用的设备,如独占式打印机;共享设备可以被多个进程或用户同时使用,如网络打印机;虚拟设备是通过软件模拟而实现的设备,如虚拟磁盘。
数据传输速率分类将设备根据其数据传输速率的不同分为低速设备、中速设备和高速设备。低速设备的数据传输速率较慢,如串口设备;中速设备的数据传输速率适中,如打印机;高速设备的数据传输速率较快,如固态硬盘。
I/O软件层次结构:
🔎2.输入输出
设备管理输入输出方式 | 特点 | 适用场景 |
---|---|---|
程序控制(查询)方式 | CPU主动查询外设是否完成数据传输,效率低 | 低速设备、非实时性要求高的场景 |
程序中断方式 | 外设完成数据传输后,向CPU发送中断,效率相对较高 | 键盘等实时性较高的场景 |
DMA方式(直接主存存取) | 数据传输由DMA控制器完成,CPU仅需完成初始化操作,效率高 | 硬盘等高速设备 |
通道 | 通过专用通道控制设备输入输出,效率高,但复杂度高 | 大规模、高速设备 |
IO处理机 | 专用设备处理输入输出请求,减轻CPU负担,效率高 | 处理大量且需要复杂逻辑的设备输入输出请求 |
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时;区分指令执行结束和总线周期结束。
注意:还有两种方式分别是通道和IO处理机,基本不考,了解即可;
🔎3.虚设备和SPOOLING技术
虚设备是指在计算机系统中,通过软件模拟或虚拟出来的设备,这些设备并不存在于硬件中,但在软件层面上可以通过编程等方式进行模拟使用。虚设备可以提供与实际设备相同的功能,比如虚拟磁盘、虚拟打印机等。
SPOOLING(Simultaneous Peripheral Operations On-line)技术是一种计算机输入/输出(I/O)管理技术,它的主要目的是提高计算机的效能和性能。具体来说,SPOOLING技术通过将多个I/O请求缓存到磁盘或内存中的输入/输出队列(spool)中,然后按照一定的顺序依次处理这些请求。这样可以避免了进程等待I/O操作完成而导致CPU空闲的情况,提高了系统的并发性和效率。
虚设备和SPOOLING技术通常是结合使用的。虚设备可以被用来模拟实际设备,将I/O请求写入到虚设备中的缓冲区,然后通过SPOOLING技术将这些请求按序处理。这样可以提高计算机系统的整体性能和吞吐量,同时也能增加系统的灵活性和可扩展性。
🔎4.磁盘结构
磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区。数据存放在扇区中。读取数据时,磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据。这会产生寻道时间和等待时间,即磁头移动到磁道所需的时间和等待读写的扇区转到磁头的下方所用的时间。
目前常用的磁盘调度算法有以下几种:
调度算法 | 描述 |
---|---|
先来先服务 (FCFS) | 根据进程请求访问磁盘的先后顺序进行调度 |
最短寻道时间优先 (SSTF) | 选取与当前磁头位置最近的磁道进行调度,使得每次的寻道时间最短。可能导致远处进程无法访问(饥饿现象) |
扫描算法 (SCAN) | 又称“电梯算法”,磁头双向移动,选择离磁头当前位置最近的请求访问磁道,并且与磁头移动方向一致。磁头从里向外或从外向里一直移动完才掉头,类似电梯 |
单向扫描调度算法 (CSCAN) | 与SCAN不同的是,只做单向移动,即只能从里向外或从外向里 |
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)