操作系统之IO管理

news2025/2/21 23:55:23

目录

IO设备的概念和分类

IO控制器

IO控制方式

IO软件层次结构

IO应用程序接口和驱动程序接口

IO核心子系统

假脱机技术

IO设备的分配和回收

缓冲区管理

磁盘的结构

磁盘调度算法

磁盘的管理

固态硬盘


 

本文内容摘自:5.1_1_I-O设备的概念和分类_哔哩哔哩_bilibili

IO设备的概念和分类

常见分类

IO控制器

IO设备是由机械部件和电子部件组成的

机械部件和电子部件

电子部件主要就是IO功能的电路实现

IO控制器

注意两个小问题

独立编址和统一编址(更多详见计算机组成原理课程)

IO控制方式

程序直接控制方式(轮询)

中断驱动方式

DMA方式

DMA控制器其实是一种特殊的IO控制器

通道控制方式

对比总结

IO软件层次结构

总览

用户层软件

设备独立性软件

设备驱动程序

中断处理程序

小结

IO应用程序接口和驱动程序接口

总览

输入/输出应用程序接口

不同类型的设备,需要提供对应的应用程序接口。

这是因为不同的设备,其物理特性不一样。

补充:网络设备接口

阻塞和非阻塞IO

设备驱动程序接口

设备驱动程序接口需要统一标准

比如

IO核心子系统

总览

IO调度

设备保护

假脱机技术

什么是脱机技术

以前

后来引入了脱机技术

假脱机技术

举例:共享式打印机

小结

IO设备的分配和回收

考虑设备的固有属性

考虑设备的分配算法

考虑分配中的安全性

静态分配和动态分配

设备分配管理中的数据结构

设备控制表

控制器控制表

通道控制表

系统设备表

设备分配的步骤

这种方式的缺点

改进

小结

缓冲区管理

什么是缓冲区

缓冲区的作用

单缓冲

双缓冲

循环缓冲区

缓冲池

小结

磁盘的结构

磁盘、磁道、扇区

如何读写磁盘数据

小结

磁盘调度算法

具体算法详见:

5.3_2_磁盘调度算法_哔哩哔哩_bilibili

此处略。

小结

磁盘的管理

磁盘初始化

引导块

万一需要更新自举程序就很不方便。

现代操作系统的改进

坏块的管理

固态硬盘

块和页

以页为单位读写,以块为单位擦除

擦除块时,为了不让其他页的数据丢失,会进行数据的迁移。

闪存翻译层也会保证逻辑地址的映射不会出错。

磨损均衡技术

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

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

相关文章

cookie 和 session 的恩恩怨怨

目录 cookie 1. Cookie 从哪里来? 2. Cookie 到哪里去? 3. Cookie 有啥用? Session Session 中的常用方法 模拟实现一个登录页面: session 和 cookie 的最官方的恩恩怨怨 cookie Cookie 是浏览器在本地存储数据的一种机制 1. Cookie 从哪里来? Cookie 从服务器…

chatgpt赋能python:Python如何将两张图片横向拼在一起

Python如何将两张图片横向拼在一起 在网页设计中,有时候需要将两张图片横向拼在一起来达到更好的展示效果。本文将介绍如何使用Python实现这一功能。 前置知识 在使用Python进行图像处理之前,先了解以下几个库: Pillow:Python…

chatgpt赋能python:Python如何取非

Python如何取非 Python是一种强大的编程语言,可以用于许多不同的任务,包括搜索引擎优化(SEO)。在这篇文章中,我们将重点介绍Python如何取非,这对于SEO优化非常重要。 什么是取非? 在SEO中&am…

chatgpt赋能python:Python如何手动安装包:技术向SEO文章

Python如何手动安装包:技术向SEO文章 虽然大多数Python用户都习惯使用pip来安装和管理包,但手动安装包是必要的技能之一。这篇文章将介绍如何使用Python的标准方法手动安装包,并提供实际的指导。 为什么要手动安装包? 有时候&a…

达梦数据库读写分离集群搭建

目录 说明... 3 前期准备... 4 开始搭建读写分离... 5 一、主库200. 5 1、卸载原实例... 5 2、创建新的实例... 6 3、配置主库200. 6 4、启动主库... 8 5、设置OGUID.. 8 二、配置2台备库... 9 1、创建新的实例... 9 2、备份恢复(初始化实例后应该先备份…

VS2012编译VTK7.1.1库,使用VTK加载显示STL图像

文章目录 cmake配置项目编译VTK库代码测试报错:no override found for vtkpolydata下载VTK库下载地址,下载VTK源码 https://vtk.org/download/ 需要工具 1.VS2012 2.CMAKE 官网 https://cmake.org/ cmake配置项目 下载后的vtk7.1.1库解压 安装好cmake,打开cmake-gui,在whe…

chatgpt赋能python:Python循环语句详解:如何循环执行一个语句

Python循环语句详解:如何循环执行一个语句 Python是一种简单易学、优雅高效的编程语言,在很多领域都有广泛应用。其中,循环语句特别重要,可以让我们轻松实现重复执行某个语句的功能。本文将介绍Python的循环语句及其应用场景&…

01:快速入门爬虫

1.引导 1.Robots协议 Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道…

Pytorch1.12.1+cu113安装记录

因为torch1.7.0对于SiLU算子导出不支持,需要1.7.1才支持.于是索性准备更新一下自己的算法版本库,查询到CUDA11.3支持的最高Pytorch版本为1.12.1,于是统一做一下更新.这里采用离线下载的方式,因为在线下载实在是太蛋疼了 1. Pytorch离线包下载 这是官方提供的版本,我这里不直接…

Python-web开发学习笔记(4):CSS基础

🚀 Python-web开发学习笔记系列往期文章: 🍃 Python-web开发学习笔记(1)--- HTML基础 🍃 Python-web开发学习笔记(2)--- HTML基础 🍃 Python-web开发学习笔记&#xff08…

面试常考算法(1):反转链表、局部反转链表(包含误区分析)

BM1 反转链表 给定一个单链表的头结点pHead(该头节点是有值的,,$ 长度为n,反转该链表后,返回新链表的表头。   数据范围: 0 ≤ n ≤ 1000 0 \leq n \leq 1000 0≤n≤1000   要求: 空间复杂度 O ( 1 ) O(1) O(1) &#xff0c…

QT QHorizontalSpacer弹簧控件

本文详细的介绍了QHorizontalSpacer控件的各种操作,例如:新建界面、控件布局、隐藏控件、设置宽高、添加布局、其它参数、.h源文件、cpp源文件、其它文章等等操作。 实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既…

最优化简明版(上)

引言 本文简单地介绍一些凸优化(Convex Optimization)的基础知识,可能不会有很多证明推导,目的是能快速应用到机器学习问题上。 凸集 直线与线段 设 x 1 ≠ x 2 x_1 \neq x_2 x1​x2​为 R n \Bbb R^n Rn空间中的两个点,那么具有下列形…

基于 log4j2 插件实现统一日志脱敏,性能远超正则替换

前言 金融用户敏感数据如何优雅地实现脱敏? 日志脱敏之后,无法根据信息快速定位怎么办? 经过了这两篇文章之后,我们对日志脱敏应该有了一定的理解。 但是实际项目中,我们遇到的情况往往更加复杂: 1&am…

开发云原生应用应遵循的十二要素

代码库:一份版本控制下的基准代码库,多份部署 应用程序的源代码仓库应该只包含一个应用程序,并列出它所依赖的资源清单。对于不同的环境,我们应该不需要重新编译或打包应用程序。每个环境中特有的设置应该与代码无关 依赖&#…

SpringMVC-【回顾】

回顾MVC架构 什么是mvc:模型、视图、控制器 -----软件设计规范 回顾servlet maven项目导入依赖(webmvc,servlet-api,jsp-api,jstl,junit)创建子模块,在子模块中添加框架支持(在子模块中导入依赖jsp、servlet【因为父…

【NACK】视频rtp包接收及nack触发流程走读

这里大神分析很很透彻了:原文地址:WebRTC中NACK的处理流程 - 资料 - 音视频开发中文网 - 构建全国最权威的音视频技术交流分享论坛视频包的接收 RtpVideoStreamReceiver::ReceivePacket void RtpVideoStreamReceiver::ReceivePacket(const RtpPacketReceived& packet)知乎…

聊聊哪些奇葩的代码规范 —— 代码放一行

因为有些要求感觉实是太过奇葩,收集下来娱乐下大家。 代码规范要求 要求代码必须要放在一行上面,导致代码上面有不少行甚至超过了 1000 个字符。 规范解读 就是有时候代码过长,我们会折行增加可读性,最简单的一个例子就是 obj…

CG平台实验——逻辑回归

文章目录 练习2:逻辑回归介绍1 Logistic回归1.1 数据可视化1.2 实现1.2.1 Sigmoid函数1.2.2 代价函数和梯度1.2.2.1 代价函数1.2.2.2 梯度下降 1.2.3 寻找最优参数1.2.4 评估逻辑回归 2 正则化逻辑回归2.1 数据可视化2.2 特征映射2.3 代价函数和梯度 2.4 寻找最优参…

rust疑难进阶手册(1)-安装和管理,类型推断,打印输出(1)

目录 安装管理和配置工具项目管理类型推断格式输出位置参数格式化文本命名参数安装 不管OS是否带有rust,都应使用rustup来安装rust linux/freebsdcurl https://sh.rustup.rs -sSf | shwindows https://www.rust-lang.org/tools/install windows下建议使用GNU的编译链接库,不…