当前位置: 首页 > news >正文

【操作系统学习笔记】文件管理1.3

【操作系统学习笔记】文件管理1.3

参考书籍: 王道考研
视频地址: Bilibili

I/O 控制方式

  • 程序直接控制方式
  • 中断驱动方式
  • DMA 方式
  • 通道控制方式

程序直接控制方式

关键词: 轮询

  1. 完成一次读/写操作的流程
    1. CPU 向控制器发出读指令。于是设备启动,并且状态寄存器设为1
    2. 轮询检查控制器的状态
    3. 输入设备准备好数据后将数据传给控制器,并报告自身状态
    4. 控制器将输入的数据放到数据寄存器中,并将状态改为0
    5. CPU 发现设备已就绪,即可将数据寄存器中的内容读入 CPU 的寄存器中,再把 CPU 寄存器中的内容放入内存
    6. 若还要继续读入数据,则 CPU 继续发出读指令
  2. CPU 干预的频率: 很频繁,I/O 操作开始之前、完成之后需要 CPU 介入,并且在等待 I/O 完成的过程中 CPU 需要不断的轮询检查
  3. 数据传送的单位: 每次读/写一个字
  4. 数据的流向
    1. 读操作: I/O 设备 -> CPU -> 内存
    2. 写操作: 内存 -> CPU -> I/O 设备
    3. 每个读/写都需要 CPU 的帮助
  5. 主要优缺点
    1. 实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可
    2. CPU 和 I/O 设备只能串行工作,CPU 需要一直轮询检查,长期处于忙停状态,利用率低

中断驱动方式

关键词: 中断

引入中断机制。由于 I/O 设备速度很慢,因此在 CPU 发出读/写命令后,可将等待 I/O 的进程阻塞,先切换到别的进程执行。当 I/O 完成后,控制器会向 CPU 发出一个中断信号,CPU 检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU 从 I/O 控制器读一个字的数据传送到 CPU 寄存器,再写入主存。接着,CPU 恢复等待 I/O 的进程的运行环境,然后继续执行

  • CPU 会在每个指令周期的末尾检查中断
  • 中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能
  1. 完成一次读/写操作的流程
  2. CPU 干预的频率: 每次 I/O 操作开始之前、完成之后需要 CPU 介入。等待 I/O 完成的过程中 CPU 可以切换到别的进程执行
  3. 数据传送的单位: 每次读/写一个字
  4. 数据的流向
    1. 读操作: I/O 设备 -> CPU -> 内存
    2. 写操作: 内存 -> CPU -> I/O 设备
  5. 主要优缺点
    1. 与"程序直接控制方式"相比,再"中断驱动方式"中,I/O 控制器会通过中断信号主动报告 I/O 已完成,CPU 不再需要不停的轮询;CPU 和 I/O 设备可以并行工作,CPU 利用率得到明显提升
    2. 每个字在 I/O 设备与内存之间的传输,都需要经过 CPU。而频繁的中断处理会消耗较多的 CPU 时间

DMA 方式

与中断驱动方式相比,DMA方式直接进行存储器存取。主要用于块设备的 I/O 控制

  • 数据的传送单位是块。不再是一个字的传送
  • 数据的流向是从设备直接放入内存,或者从内存直接到数据,不再需要 CPU 作为中介
  • 仅在传送一个或多个数据块的开始和结束时,才需要 CPU 干预

DMA 控制器是一种特殊的 I/O 控制器。也由主机-控制器接口、I/O 控制逻辑、块设备-控制器接口。在主机-控制器接口中由DR(数据寄存器:暂存从设备到内存、或从内存到设备的数据)、MAR(内存地址寄存器:在输入时,MAR 表示数据应放到内存中的什么位置;输出时 MAR 表示要输出的数据放在内存中的什么位置)、DC(数据计数器:表示剩余要读/写的字节数)、CR(命令/状态寄存器:用于存放 CPU 发来的 I/O 命令,或设备的状态信息)等。DMA 控制器不是每次直接读一整块,也是一个字一个字来读取写入 DR

  1. 完成一次读/写操作的流程
  2. CPU 干预的频率: 仅在传送一个或多个数据块的开始和结束时才需要 CPU 干预
  3. 数据传送的单位: 每次读/写一个或多个块(每次读写的只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)
  4. 数据的流向
    1. 读操作: I/O 设备 -> 内存
    2. 写操作: 内存 -> I/O 设备
  5. 主要优缺点
    1. 数据传输以块为单位,CPU 介入频率进一步降低。数据的传输不再需要先经过 CPU 再写入内存,数据传输效率进一步增加。CPU 和 I/O 设备的并行性得到提升
    2. CPU 每发出一条 I/O 指令,只能读/写一个或多个连续的数据块

通道控制方式

通道: 一种硬件,可以理解为弱化版 CPU 。通道可以识别并执行一系列通道指令

  1. 完成一次读/写的流程
    1. CPU 向通道发出 I/O 指令。指明通道程序在内存中的位置,并指明要操作的是哪个 I/O 设备。之后 CPU 就切换到其他进程执行了
    2. 通道执行内存中的通道程序(其中指明了要读入/写出多少数据,读/写的数据应放在内存的什么位置等信息)
    3. 通道执行完规定的任务后,向 CPU 发出中断信号,之后 CPU 对中断进行处理
  2. CPU 干预的频率: 极低,通道会根据 CPU 的指示执行相应的通道程序,只有完成一组数据块的读/写后才需要发出中断信号,请求 CPU 干预
  3. 数据传送的单位是一组块
  4. 数据的流向
    1. 读操作: I/O -> CPU
    2. 写操作: CPU -> I/O
  5. 主要优缺点
    1. CPU、通道、I/O 设备可并行工作,资源利用率高
    2. 实现复杂,需要专门的通道硬件支持

相关文章:

【操作系统学习笔记】文件管理1.3

【操作系统学习笔记】文件管理1.3 参考书籍: 王道考研 视频地址: Bilibili I/O 控制方式 程序直接控制方式中断驱动方式DMA 方式通道控制方式 程序直接控制方式 关键词: 轮询 完成一次读/写操作的流程 CPU 向控制器发出读指令。于是设备启动,并且状态寄存器设…...

基于springboot+vue的酒店管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

Linux 相关命令

文章目录 目录相关操作vim 编辑器命令行模式插入模式底行模式 目录相关操作 查看当前目录下的文件 ls创建目录 mkdir 目录名进入文件,首先确认位于文件的目录 vi 文件名 vim 编辑器 命令行模式 控制光标的移动,字符或行的删除,移动复制某区域…...

阿里云搭建私有docker仓库(学习)

搭建私有云仓库 首先登录后直接在页面搜索栏中搜索“容器镜像服务” 进入后直接选择个人版(可以免费使用) 选择镜像仓库后创建一个镜像仓库 在创建仓库之前我们先创建一个命名空间 然后可以再创建我们的仓库,可以与我们的github账号进行关联…...

MySQL数据库基本操作(一)

数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库?* 用于存储和管理数据的仓库。 ​ 3. 数据库的特点:1. 持久化存储数据的。其实数据库就是一个文件系统2. 方便存储和管理数据3. 使用了统一的方式操作数…...

【暗月安全】2021年渗透测试全套培训视频

参与培训需要遵守国家法律法规,相关知识只做技术研究,请勿用于违法用途,造成任何后果自负与本人无关。 中华人民共和国网络安全法(2017 年 6 月 1 日起施行) 第二十二条 任何个人和组织不得从事入侵他人网络、干扰他…...

HTML极速入门

HTML基础 什么是HTML HTML(Hyper Text Markup Language),超文本标记语言. 超文本:比文本更强大.通过链接和交互式方式来组织和呈现信息的文本形式.不仅仅有文本,还可能包括图片,音频,或者自己经审阅过它的学者所加的评注,补充或脚注等. 标记语言:由标签构成的语言 HTML的标…...

Django框架——请求与响应

上篇文章我们学习了Django框架——配置文件和视图函数,这篇文章我们学习Django框架——请求与响应。 客户端和服务端的请求与响应过程:客户端访问某个网站并发出URL请求,服务器接受到请求后,根据请求内容来返回响应,如…...

rearrangement-challenge-2022环境使用学习(一)

搭建了rearrangement-challenge-2022的环境: https://github.com/facebookresearch/habitat-challenge/tree/rearrangement-challenge-2022 habitat最大的缺点是对不同的版本非常的敏感。本文只是针对rearrangement-challenge-2022的学习。 文档一开始会很不完善&a…...

[Uniapp]携带参数跳转界面(两种方法)

一、方法1:路由携参 假设现在有两个界面:界面A和界面B。并要由界面A跳转到界面B,则我们可以使用 uni.navigateTo({}) 跳转界面时,将参数附加在URL后&#xff0c…...

Scrapy与分布式开发(2.1.2):python常用网络请求库httpx

Python httpx 模块详细讲解 一、引言 httpx 是一个用于发送 HTTP 请求的 Python 库,它提供了简单易用的 API,支持同步和异步请求,并且具有出色的性能和灵活性。httpx 是 requests 的一个现代替代品,它使用 httpcore 作为底层传输…...

07. Nginx进阶-Nginx负载均衡

简介 负载均衡 什么是负载均衡? 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。 Nginx负载均衡 什么是Nginx负载均衡? Nginx负载均衡可以大…...

windows/linux下其他位置调用指定nodejs脚本报错Error: Cannot find module ‘esm’

问题: 有一个nodejs脚本名为html2word,同目录下还有它对应的package.json,正常在html2word所在目录下执行脚本没问题,但是在其他目录执行时报错:Error: Cannot find module ‘esm’ 原因: 在其他位置执行node脚本时…...

2024-03-05 linux 分区老显示满,Use 100%,原因是SquashFS 是一种只读文件系统,它在创建时就已经被填满,所有空间都被使用。

一、这两天一直纠结一个问题,无论怎么修改,linux 分区老显示满,Use 100%,全部沾满。如下图的oem分区。 二、导致出现上面的原因是:SquashFS文件系统里的空间利用率总是显示为100%。 三、SDK里面也说明SquashFS文件系统…...

蓝桥杯倒计时 41天 - KMP 算法

KMP算法 KMP算法是一种字符串匹配算法,用于匹配模式串P在文本串S中出现的所有位置。 例如S“ababac,P“aba”,那么出现的所有位置是13。 在初学KMP时,我们只需要记住和学会使用模板即可,对其原理只需简单理解&#xff…...

《汇编语言》- 读书笔记 - 第13章-int 指令

《汇编语言》- 读书笔记 - 第13章-int 指令 13.1 int 指令13.2 编写供应用程序调用的中断例程中断例程:求一 word 型数据的平方主程序中断处理程序执行效果 中断例程:将一个全是字母,以0结尾的字符串,转化为大写主程序中断处理程序…...

深入了解 Golang 条件语句:if、else、else if 和嵌套 if 的实用示例

条件语句 用于根据不同的条件执行不同的操作。Go中的条件可以是真或假。Go支持数学中常见的比较运算符&#xff1a; 小于 < 小于等于 < 大于 > 大于等于 > 等于 不等于 ! 此外&#xff0c;Go还支持常见的逻辑运算符&#xff1a; 逻辑与 && 逻辑或…...

大数据和机器学习在气象预报中的应用-张平文院士

报告链接&#xff1a;张平文院士 -- 大数据和机器学习在气象预报中的应用_哔哩哔哩_bilibili...

C#高级:Winform桌面开发中DataGridView的详解

一、每条数据增加一个按钮&#xff0c;点击输出对应实体 请先确保正确添加实体的名称和文本&#xff1a; private void button6_Click(object sender, EventArgs e) {//SQL查询到数据&#xff0c;存于list中List<InforMessage> list bll.QueryInforMessage();//含有字段…...

java八股文复习-----2024/03/05----基础---反射,动态代理。序列化

来源一 大彬八股文 来源二 2023 20W字八股文 2024秋招八股文 1.Java创建对象有几种方式&#xff1f; Java创建对象有以下几种方式&#xff1a; 用new语句创建对象。使用反射&#xff0c;使用Class.newInstance()创建对象。调用对象的clone()方法。运用反序列化手段&#x…...

终极歌词神器:5分钟学会用LDDC为你的音乐库添加完美歌词

终极歌词神器&#xff1a;5分钟学会用LDDC为你的音乐库添加完美歌词 【免费下载链接】LDDC 简单易用的精准歌词(逐字歌词/卡拉OK歌词)下载匹配工具|A simple and user-friendly tool for downloading and matching precise lyrics (word-by-word lyrics/Karaoke lyrics) 项目…...

告别PPT超时焦虑:PPTTimer让演讲时间管理变得如此简单

告别PPT超时焦虑&#xff1a;PPTTimer让演讲时间管理变得如此简单 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为PPT演示超时而烦恼吗&#xff1f;每次演讲都像和时间赛跑&#xff0c;担心讲得太快或太…...

工业三防灯干货科普:核心参数、选型逻辑及应用场景全解析

在工业照明领域&#xff0c;三防灯是适配恶劣环境的核心照明设备&#xff0c;广泛应用于车间、仓库、隧道、冷链、食品加工等多场景。不同于民用照明灯具&#xff0c;工业级三防灯需具备防尘、防水、防腐蚀的核心能力&#xff0c;其性能直接决定照明稳定性、使用寿命及后期运维…...

毕业设计 深度学习的人体跌倒检测与识别(源码+论文)

文章目录 0 前言1 项目运行效果2 相关技术原理2.1卷积神经网络2.2 YOLO简介2.3 YOLOv5s 模型算法流程和原理2.4 数据集处理数据标注简介数据保存 2.5 模型训练 4 最后 0 前言 &#x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创…...

FLUX.1-dev-Controlnet-Union:一站式多模态图像控制解决方案,让AI生成更精准可控

FLUX.1-dev-Controlnet-Union&#xff1a;一站式多模态图像控制解决方案&#xff0c;让AI生成更精准可控 【免费下载链接】FLUX.1-dev-Controlnet-Union 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/FLUX.1-dev-Controlnet-Union 你是否曾经在AI图像生成中遇…...

Audio Slicer:智能音频分割终极指南,告别繁琐手动剪辑

Audio Slicer&#xff1a;智能音频分割终极指南&#xff0c;告别繁琐手动剪辑 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 还在为音频剪辑的繁琐操作…...

2026年geo优化五强厂商技术与服务体系全维度盘点

在生成式 AI 全面接管信息入口的今天&#xff0c;究竟什么是 geo优化&#xff0c;它与传统的搜索排名逻辑有何本质区别&#xff1f;面对流量红利枯竭与 AI 搜索的双重夹击&#xff0c;企业布局 geo优化 的商业紧迫性体现在哪里&#xff0c;不做会面临怎样的增长困境&#xff1f…...

告别低速串口:用STM32的FSMC总线驱动FPGA,实现高速数据交换的完整流程(基于STM32F407)

STM32与FPGA的高速数据通道&#xff1a;基于FSMC总线的实战设计指南 在嵌入式系统开发中&#xff0c;数据吞吐量常常成为制约系统性能的关键瓶颈。当STM32微控制器需要与FPGA进行大数据量交互时——无论是实时图像处理、高速数据采集还是复杂算法加速——传统的串行通信接口如…...

联想笔记本BIOS解锁完整指南:一键开启隐藏高级设置

联想笔记本BIOS解锁完整指南&#xff1a;一键开启隐藏高级设置 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具&#xff0c;例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le/L…...

【ElevenLabs福建话语音落地实战】:20年语音AI专家亲授3大避坑指南与本地化部署全流程

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ElevenLabs福建话语音落地的行业价值与技术定位 福建话&#xff08;闽南语泉州/厦门腔&#xff09;作为联合国教科文组织认定的“严重濒危语言”&#xff0c;其语音合成能力的工程化落地&#xff0c;已超越单…...