OS复习笔记ch11-1

外围设备的管理和磁盘调度

外围设备

image.png

从CPU的角度来看,外设有几个比较重要的I/O接口(interfaces)

  • 状态reg:向CPU报告设备的状态(忙碌/空闲)
  • 命令reg:接收CPU命令,存储 CPU 需要执行的指令
  • 数据reg:存储了 CPU 传输给设备,或设备传入到设备控制器的数据

在设备的视角上(internals)来看,自身有微处理器、内存、特定的硬件芯片。
e.g.,磁盘阵列有磁盘自身的处理器来管理。


PPT中的问题:

While (STATUS == BUSY) 
           ; // wait until device is not busy
Write data to DATA register
Write command to COMMAND register
        (starts the device and executes the command)
While (STATUS == BUSY)
           ; // wait until device is done with your request

代码部分是轮询的过程,属于程序查询的外设交互

I/O系统

I/O系统:I/O设备及其接口线路、控制部件、通道和管理软件的总称。
I/O操作:计算机的主存和外围设备的介质之间的信息传送操作

image.png

  • 木桶效应:最慢的决定了系统性能,CPU性能过高,性能越高,差距确实越大
  • I/O控制设备的复杂多样
  • I/O系统和系统功能紧密联系,比如文件系统
  • I/O系统是系统的重要组成部分

设备的分类

根据功能分为三大类:

  • Human readable用户可读:终端、打印机、投影仪等
  • Machine readable机器可读:磁盘、磁带;传感器、控制器等
  • Communications通信:数字线路驱动器、调制解调器(光猫)

其他的分类:
image.png

一般输入输出型的设备,比如键盘和串口都是字符设备,往往都是字符流的形式传输
存储型设备比如磁带、磁盘、光盘等都是块设备,一般可以顺序或者随机访问。

这里需要强调一下字符设备和块设备。

  • 字符设备的驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。该类设备不可寻址,往往由中断驱动,速度较慢。
  • 块设备上能够容纳文件系统,如:u盘,SD卡,磁盘等。该类设备可寻址,随机存取,读写速度快。

设备的差异

image.png

  1. 数据速率:通常意义上像键鼠就是低速设备,激光打印机是中速,而电脑的固态硬盘就是高速设备。
  2. 应用方面:由于不用的I/O设备支持不同的功能,所以相关的应用有很大区别。比如键鼠主要用来支持用户输入,而显示器是输出,磁盘则是存储,各司其职。(ppt中举例是磁盘和OS的存储管理挂钩,终端管理员的优先级应该更高)
  3. 控制复杂性:这一点好理解,比如键盘只需要考虑按键映射和字符传输就行,而磁盘需要有DMA控制器和通道来负责文件的读写和传输。
  4. 传输单位:字符设备一般都是字符流的形式,而存储型设备往往是块设备。
  5. 数据表示:主要是数据编码和传输格式上的区别
  6. 出错条件:不同设备出错的后果,报告方式,以及响应范围都不同

e.g., 不同的设备速度差异比较明显
image.png
这里我们可以看到:最快的是千兆以太网,然后是显示器、硬盘、百兆以太网、光盘、扫描仪、激光打印机、软盘、调制解调器(光猫)、鼠标,而最慢的是键盘。

e.g., 数据表示
image.png
不同设备采用不同的数据编码,如图所示异步串行通信(uart)传输格式,以下是一些常见设备的数据表示方式。

  • 存储设备:例如硬盘和固态硬盘可能使用不同的编码技术来优化存储密度和读写速度,如NRZ(非归零编码)、RLL(跑长限制编码)等。
  • 网络设备:例如调制解调器或网络卡可能使用QAM(正交幅度调制)、PSK(相位偏移键控)等复杂的编码方案来在有限的带宽中传输尽可能多的数据。
  • 显示设备:例如显示器可能使用不同的颜色编码系统(如RGB、YCbCr等)来表示图像数据。

e.g., 出错条件
image.png

  • 错误的报告方式(报告方式)
    • 存储设备(如硬盘、SSD)通常通过设备的自检程序(如SMART技术)来报告错误,这可能包括扇区错误或硬件故障。
    • 网络设备(如路由器、交换机)则可能通过网络管理软件或日志文件来报告丢包、连接超时等网络问题。
    • 人机输入设备(如键盘、鼠标)错误可能直接体现在设备响应上,如按键无响应或指针移动不正常,通常通过操作系统的设备管理器来报告错误状态。
  • 错误的后果(错误的后果)
    • 对于存储设备,错误可能导致数据丢失或文件系统损坏,影响数据的完整性和可用性。
    • 网络设备中,错误通常导致数据传输中断或性能下降,影响网络的稳定性和效率。
    • 对于人机输入设备,错误可能导致用户输入被错误解读或完全无法输入,影响用户的操作体验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低温环氧胶在指纹模组封装中的应用有哪些?

低温环氧胶在指纹模组封装中的应用有哪些? 低温环氧胶在指纹模组封装中的应用点主要包括以下几点: 金属环/框与FPC基板固定:低温固化环氧胶被推荐用于固定金属环或框到柔性印刷电路板(FPC)基板上,确保它们之间有稳固的连接。 传感…

RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-06-19)

【说明】 1、RTX5全家桶的优势就是简单易用,初学的话,上手很快,稳定性也是杠杠的,且容易做稳定。 2、同时RTX5也是有汽车级,工业级,医疗和铁路安全认证,只是安全级别比ThreadX要稍微低些。 3…

Easyui Datagrid 解决页面加载重复请求2次后端问题

现象 在页面刚刚打开时,页面加载完毕,显示查询数据,连续请求网络2次, 第一次是只携带了 分页参数; 第二次携带分页和查询参数 问题出现原因 html代码中利用class声明了datagrid,导致easyUI解析class代…

安泰电子:功率放大器的要求是什么

功率放大器是一种用于增强电信号功率的重要设备,在各种应用领域发挥着关键作用。对于功率放大器来说,有一些基本的要求需要满足,以确保其正常工作和提供稳定可靠的功率放大功能。下面将介绍功率放大器的几个主要要求。 高效率:功率…

electron下载失败(electron如何切换镜像源)

打开: 或者: C:\Users\用户名\.npmrc 添加: electron_mirrorhttps://npmmirror.com/mirrors/electron/ 到文件中,保存 方法二: npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ ELECTR…

如何低成本试错渠道?Xinstall App来源统计,让您的推广更高效!

随着互联网流量的不断变化,App推广与运营面临着前所未有的挑战。如何在多变的市场环境下迅速搭建起满足用户需求的运营体系,成为众多企业关注的焦点。今天,我们将为您介绍一款强大的工具——Xinstall,它能帮助您精准统计App来源&a…

面试专区|【62道Redis高频题整理(附答案背诵版)】

什么是Redis? Redis是一个高性能的开源内存数据库系统,它使用键值对存储数据,并支持多种数据结构,如字符串、哈希、列表、集合和有序集合。与传统关系型数据库不同,Redis将数据存储在内存中,以实现快速读写操作。同时…

CPU核心是如何影响VPS性能的?

为什么VPS对于各种类型和规模的网站和应用程序来说都是非常出色的解决方案? 首先,它比其他类型的托管具有许多优势,但也许它最大的优势是它可以以合适的价格为您提供合适的性能。 然而,只有当您满足所需的规格时它才会这样做。 …

JAVA小知识27:异常与异常处理全解

一、异常 异常就是代表程序出现了问题,像我们之前学数组的时候碰到的数组越界异常,以及空指针异常等等都属于开发中经常能碰到的异常。 我们学习异常不是为了在以后中避免异常,而是学习碰到了异常以后该如何的处理。 1.1、异常的分类 Java…

【Python科研】如何使用Python计算年度和季节的平均降水栅格数据并进行批量裁剪

目录 1.环境准备 2.设置文件路径 3.读取矢量数据 4.定义年份和季节 5.创建输出文件夹 6.裁剪栅格数据的函数 7.计算和保存年度平均降水数据 8.计算和保存季节平均降水数据 9.结论 10.完整代码 本次分享内容中,我们将介绍如何使用Python计算和裁剪年度和季…

复合构件之消息对话框

代码; #include <gtk-2.0/gtk/gtk.h> static void font_dialog_response(GtkFontSelectionDialog *dialog,gint response,gpointer data)// 处理字体选择对话框按钮按下事件 {gchar *font;GtkWidget *message;switch (response) {case (GTK_RESPONSE_APPLY):case (GTK_R…

ClipArt ETC - 典雅的剪贴画网站

文章目录 ClipArt ETCClippix佛罗里达教学技术中心课堂数字内容 ClipArt ETC 网站地址&#xff1a; https://etc.usf.edu/clipart/ ClipArt ETC为学生和教师提供了超过71,500件高质量的教育剪贴画。 每个插图都有图像大小的选择以及学校项目中正确引用的完整源信息。 所有图像…

UniApp 开发微信小程序教程(一):准备工作和环境搭建,项目结构和配置

文章目录 一、准备工作和环境搭建1. 安装 HBuilderX步骤&#xff1a; 2. 注册微信开发者账号步骤&#xff1a; 3. 创建 UniApp 项目步骤&#xff1a; 二、项目结构和配置1. UniApp 项目结构2. 配置微信小程序修改 manifest.json修改 pages.json 3. 添加首页文件index.vue 示例&…

【查缺补漏】python

python查缺补漏 底板除 还有一种除法是//&#xff0c;称为地板除&#xff0c;两个整数的除法仍然是整数&#xff1a; >>> 10 // 3 3你没有看错&#xff0c;整数的地板除//永远是整数&#xff0c;即使除不尽。要做精确的除法&#xff0c;使用/就可以。 因为//除法只…

一文讲清楚分销裂变是什么?怎么做好分销裂变?【附案例】

在数字化营销日益盛行的今天&#xff0c;分销裂变作为一种高效的推广手段&#xff0c;受到了越来越多企业的青睐。那么&#xff0c;分销裂变究竟是什么&#xff1f;我们又该如何做好分销裂变呢&#xff1f;林叔将从定义、方法以及案例分析三个方面进行阐述。 一、分销裂变是什…

MySQL的数据存储一定是基于硬盘吗?

一、典型回答 不是的&#xff0c;MySQL也可以基于内存的&#xff0c;即MySQL的内存表技术。它允许将数据和索引存储在内存中&#xff0c;从而提高了检验速度和修改数据的效率。优点包括具有快速响应的查询性能和节约硬盘存储空间。此外&#xff0c;使用内存表还可以实现更高的复…

数据库讲解---(数据库设计)

目录 一.数据库设计概述 1.1数据库设计的内容 1.1.1数据库的结构设计 1.1.2数据库的行为设计 1.2数据库设计方法 1.2.1直观设计法 1.2.2规范设计法 1.2.3计算机辅助设计法 1.2.4自动化设计法 1.3数据库设计的基本步骤 1.3.1需求分析 1.3.2概念结构设计 1.3.3逻辑结…

丹尼尔·T·琼斯:精益生产到底是什么?

本文摘要自《精益思想》、《改变世界的机器》作者之一丹尼尔T琼斯的文章。丹尼尔T琼斯是一位学者、英国作家和研究员。他曾多次获得瑞士山吉奥卓越运营奖研究与专业出版类别的奖项&#xff0c;也包括了国际精益六西格玛研究所&#xff08;ILSSI&#xff09;[1]的"精益思想…

CentOS Linux 7系统中离线安装MySQL5.7步骤

预计数据文件存储目录为&#xff1a;/opt/mysql/data 1、文件下载&#xff1a; 安装文件下载链接&#xff1a;https://downloads.mysql.com/archives/community/ 2、检查当前系统是否安装过MySQL [rootcnic51 mysql]# rpm -qa|grep mariadb mariadb-libs-5.5.68-1.el7.x86_6…

Java中的运算符及其示例

Java中的运算符及其示例 运算符是指示编译器执行特定操作的符号。例如&#xff0c;“”运算符指示编译器执行加法&#xff0c;“>”运算符指示编译执行比较&#xff0c;“”用于赋值等等。在本指南中&#xff0c;我们将借助示例讨论java中的操作。 运算符和操作数&#…