王道考研操作系统——I/O管理

news2025/2/25 17:21:52

I/O设备的基本概念 

键盘:输入设备(把设备准备好的数据读入计算机当中);

显示器:输出设备(把计算机中准备好的数据写出到设备上);

移动硬盘:既是输入又是输出

 

 

中断驱动方式是一种io控制方式

 

IO设备的机械部件和电子部件

CPU通过控制电子部件间接地控制机械部件

 

状态寄存器:空闲、忙碌、故障...

 

 

 

 

 

I/O控制方式

 

io控制器根据CPU的要求来启动相应的设备

CPU轮询检查状态寄存器的值

 

 

 

 

引入中断机制之后,CPU和io设备就可以并行工作了

数据的传输每次都需要CPU来中转

 

 

dma控制器也是io控制器的一种

也是有三部分组成:CPU-控制器接口,io控制逻辑,块设备和控制器的接口

这些寄存器是最主要的CPU和控制器之间的接口

dma读入数据的过程也是一个字一个字地读入的,先存放到DR当中,然后再放到内存当中

 

连续多个快CPU只需要发送一次命令,要想读写多个离散的块CPU就需要执行多次命令

 

通道就是弱鸡版的CPU,只能执行固定的指令,指令存放在内存当中 

 

 

i/o软件层次结构 

 

 

设备独立性软件:

 

不同的设备需要不同的设备驱动程序 

 

设备独立性软件不能够直接操纵硬件,它必须调用厂家提供的设备驱动程序才能完成对硬件的具体控制,而驱动程序在OS当中一般会以一个独立进程的形式存在

 

 

11111111111111

 

输入输出管理 

 

根据设备的不同特性设置不同的统一接口

块设备有地址的概念,可以用seek系统调用来指定读写指针应当放到磁盘的哪个地址 

fd是文件打开表的索引

connect(fd,对方的ip+port) 

进程准备写入的数据在用户区,发出write系统调用就会快速复制一块到内核区,然后慢慢把这些数据写回磁盘 

 

统一设备驱动程序的接口!!!

如果你想让你的设备在我的OS上面跑,那么你提供的read系统调用就必须有三个参数,并且类型大小都有统一的标准,然后硬件厂商再根据这个标准专门开发设备驱动程序

 

 

io调度:使用算法来确定一个比较好的顺序来处理各个io的请求 

 

 

假脱机技术 

 

 

 

 

 

 

设备的分配与回收 

 

 

 

 

 

 

11111111111111111111111 

三者都分配成功,这次的设备分配才成功,否则就挂在对应的等待队列里面

 

由OS来负责逻辑设备名->物理设备名之间的转换

 

 

银行家算法避免死锁/资源分配图来检测和解除死锁

 

缓冲区管理 

 

 

 

 

 

 

小结:

 

 

 

小结:

 

 

为了实现同一时刻双向传输,可以使用双缓冲区,一个缓冲区用来暂存即将发送的数据,另一个缓冲区用于接收输入的数据

 

了解大致原理:

 

缓冲池:按功能划分缓冲区,并使用队列来组织 

 

三种操作:

 

磁盘的结构 

 

 

一个盘片可能对应两个盘面:正面反面

柱面就是磁道

 

 

磁盘调度算法 

 

 

 

OS唯一可以影响的就是寻道时间了

 

 

假设循环为18 38服务,其他就会产生饥饿

 

 

 

 

减少磁盘延迟的方法 

 

 

 读取地址连续的磁盘块的时候,可以减少磁头臂移动所消耗的时间

 

 

 

磁盘管理 

 

对磁盘的各个磁道划分扇区

扇区:头、数据部分(512B)、尾

物理格式化(划分扇区)》磁盘分区(C盘、D盘)》逻辑格式化(创建文件系统:建立根文件目录、建立管理磁盘的数据结构)

 

ROM出厂时就集成在主板上不可修改的

 

自举程序在ROM上面不方便修改怎么办?

》只在ROM当中放置核心模块(自举装入模块),核心的初始化工作放在磁盘的启动块(即启动分区)上 

 

 

 

固态硬盘 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1058131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

近三年3D点云顶会论文及源码合集,含2023最新

目前2D图像识别技术早已成熟,但2D的图像信息只有XY两个维度,而3D点云能够提供三维世界的信息,因此在自动驾驶、机器人和增强现实等各种领域都得到了广泛的应用。 近年来随着深度学习的发展,作为计算机视觉新兴研究热点的3D点云技…

python利用matplotlib绘图,对于中文和负号不显示,显示方框“口口”完美解决办法!!

文章目录 一、问题展示二、问题分析三、解决办法四、结果展示 一、问题展示 二、问题分析 可以发现对中文,以及负号不显示。 三、解决办法 import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [usimHei] # 显示中文 plt.rcParams[axes.unicode_mi…

Task1:

""" 重置root管理员密码 """ step1: 在shell界面输入重启命令; step2: 重启过程中出现此界面,快速按键盘‘e’, 进入系统内核程序; step3: 在系统系统内核程序内,移动光标至Linux 参数这…

10.0 探索API调试事件原理

本章笔者将通过Windows平台下自带的调试API接口实现对特定进程的动态转存功能,首先简单介绍一下关于调试事件的相关信息,调试事件的建立需要依赖于DEBUG_EVENT这个特有的数据结构,该结构用于向调试器报告调试事件。当一个程序发生异常事件或者…

栈的应用场景(二)

有效的括号匹配 1.题目2.图分析3.代码实现 1.题目 2.图分析 3.代码实现 class Solution {public boolean isValid(String s) {//创建一个栈,来放左括号.Stack<Character> stack new Stack<>();//遍历字符串,左括号放进栈for(int i 0 ; i < s.length(); i){ch…

趋势列表上又多了两个漏洞!

CVE-2023-24955 和 CVE-2023-29360 来自微软产品 5 月和 6 月的安全补丁报告。它们之所以特别危险&#xff0c;是因为出现了公开漏洞利用。 以下是详细信息。 第一个漏洞 CVE-2023-24955存在于 Microsoft SharePoint Server 中。它可导致远程代码执行。 它与覆盖随后由服务器执…

postgresql-备份与恢复

postgresql-备份与恢复 基本概念备份类型物理备份与逻辑备份在线备份与离线备份全量备份与增量备份 备份恢复工具备份与恢复逻辑备份与还原备份单个数据库psqlpg_dumppg_store 备份整个集群 基本概念 服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此&am…

Ai项目十四:基于 LeNet5 的手写数字识别及训练

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 pytorch复现lenet5模型&#xff0c;并检测自己手写的数字图片。 利用torch框架搭建模型相对比较简单&#xff0c;但是也会遇到很多问题&#xff0c;网上资料很多&#xff0c;搭建模型的方法大同小异&#xff0c;…

匿名上位机V7波形显示教程-简单能用

匿名上位机V7波形显示教程-简单能用 匿名上位机V7下位机数据格式根据匿名上位机V7的手册说明文档&#xff0c;编写对应的指令在主函数中初始化ANDmessage驱动连接匿名上位机V7 匿名上位机V7下位机数据格式 DATA区域内容&#xff1a; 举例说明DATA区域格式&#xff0c;例如上文&…

Altium Designer 批量添加元器件后缀

Altium Designer 批量添加元器件后缀 方法一方法二可能出现的问题要注意 方法一 您可以使用 Altium Designer 中的“批量修改元器件名称”功能来批量添加元器件后缀。具体步骤如下&#xff1a; 1.为了方便显示 操作流程&#xff0c;我这里复制了几个原理图的文件&#xff0c;粘…

【漏洞复现】用友GPR-U8 slbmbygr SQL注入漏洞

文章目录 一、漏洞描述二、网络空间搜索引擎搜索三、漏洞利用 一、漏洞描述 用友GRP-U8是面向政府及行政事业单位的财政管理应用。北京用友政务软件有限公司GRP-U8 SQL注入漏洞。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fe260ff4d6d14abeb0e576e4bbf3c385.png 二…

计算机组成原理期末复习

第一章 上机前的准备&#xff1a;建立数学模型、确定计算方法和编制解题程序n位操作码有 2 n 2^n 2n种不同操作主储存器&#xff08;主存/内存&#xff09;包括存储体M、各种逻辑部件及控制电路。储存体有多个储存单元&#xff0c;储存单元有多个储存元件&#xff0c;每个存储…

SDL2绘制ffmpeg解析的mp4文件

文章目录 1.FFMPEG利用命令行将mp4转yuv4202.ffmpeg将mp4解析为yuv数据2.1 核心api: 3.SDL2进行yuv绘制到屏幕3.1 核心api 4.完整代码5.效果展示 本项目采用生产者消费者模型&#xff0c;生产者线程&#xff1a;使用ffmpeg将mp4格式数据解析为yuv的帧&#xff0c;消费者线程&am…

latex表格内容换行

问题描述&#xff1a; 在用latex表格中编写公式时&#xff0c;可能出现公式太长&#xff0c;表格中后面的内容不能在文档中呈现&#xff0c;如下图1&#xff0c;故要进行行内内容的换行&#xff0c;使内容呈现完全而传统的\换行后,换行内容会顶格&#xff0c;如图2。 解决方…

PE文件之导入表

1. 导入表 2. 显示导入表信息的例子 ; 作用: 将RVA地址转成FOA即文件偏移 ; 参数: _pFileHdr 指向读到内存中文件的基址指针 ; _dwRVA 目标RVA地址 ; 返回: 目标RVA转成文件偏移的值 RVA2FOA PROC USES esi edi edx, _pFileHdr:PTR BYTE, _dwRVA:DWORDmov esi, _pFil…

饲料微生物检验 采样.

声明 本文是学习GB-T 42959-2023 饲料微生物检验 采样. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了以微生物检验为目的的采样原则、采样人员、设备和材料、采样方案、采样步骤和采样 报告。 本文件适用于以微生物检验为目的…

Can‘t pickle <class ‘__main__.Test‘>: it‘s not the same object as __main__.Test

目录 原因1 类名重复了 案例1 变量名和类名重复 原因1 类名重复了 检查项目代码&#xff0c;是不是其他地方有同名类。 案例1 变量名和类名重复 转自&#xff1a;python3报错Cant pickle <class __main__.Test>: its not the same object as __main__.Test解决 - 知乎…

接口日志,统一记录(AOP+自定义注解)

需求 指定接口&#xff0c;记录请求的日志。 接口日志的核心内容包括&#xff1a;请求方法&#xff0c;接口路径&#xff0c;请求参数等。 方案 采用的方案是&#xff1a;AOP 自定义注解 说明&#xff1a; 在需要记录日志的接口上&#xff0c;加上自定义注解ApiLog&…

样品运输与贮存

声明 本文是学习GB-T 42959-2023 饲料微生物检验 采样. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了以微生物检验为目的的采样原则、采样人员、设备和材料、采样方案、采样步骤和采样 报告。 本文件适用于以微生物检验为目的…

如何限制文件只能通过USB打印机打印,限制打印次数和时限并且无法在打印前查看或编辑内容

在今天这个高度信息化的时代&#xff0c;文档打印已经成为日常工作中不可或缺的一部分。然而&#xff0c;这也带来了诸多安全风险&#xff0c;如文档被篡改、知识产权被侵犯以及信息泄露等。为了解决这些问题&#xff0c;只印应运而生。作为一款独特的软件工具&#xff0c;只印…