第五章 I/O管理 八、缓冲区管理

news2024/10/6 22:32:03

目录

一、定义

 二、缓冲区的作用

三、单缓冲

1、定义:

2、例子1

3、例子2

四、双缓冲

1、定义:

2、例子1:

3、例子2:

五、单缓冲和双缓冲的区别

六、循环缓冲区

1、定义:

七、缓冲池

1、定义:

八、总结


一、定义

缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。

  • 使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)
  • 一般情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区

 二、缓冲区的作用

 如:输出进程每次可以生成一块数据,但I/O设备每次只能输出一个字符

三、单缓冲

1、定义:

假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。

注意:

当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

2、例子1

3、例子2

四、双缓冲

1、定义:

假设某用户进程请求某种块设备读入若干块的数据。若采用双缓冲的策略,操作系统会在主存中为其分配两个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)

2、例子1:

3、例子2:

五、单缓冲和双缓冲的区别

六、循环缓冲区

1、定义:

将多个大小相等的缓冲区链接成一个循环队列。

七、缓冲池

1、定义:

  • 缓冲池由系统中共用的缓冲区组成。
  • 这些缓冲区按使用状况可以分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。
     

八、总结

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

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

相关文章

岩土工程监测利器:多通道振弦数据记录仪应用铁路隧道监测

岩土工程监测利器:多通道振弦数据记录仪应用铁路隧道监测 岩土工程监测是工程建设中十分重要的一环,特别是在铁路隧道工程中,岩土工程监测更是不可或缺的一项。其中,振弦数据记录仪是一种非常重要的仪器,可以帮助监测…

思维训练第三课 反意疑问句

系列文章目录 文章目录 系列文章目录前言一、什么是反意疑问句二、反意疑问句的回答💚主系表/主谓宾(肯定),否定提问1、一般现在时2、一般过去时3、一般将来时4、现在完成时 💛 主谓宾1、一般现在2、一般过去3、一般将…

2023最新版本 FreeRTOS教程 -2-任务创建-验证(动态创建)

API函数 BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const configSTACK_DEPTH_TYPE usStackDepth,void * const pvParameters,UBaseType_t uxPriority,TaskHandle_t * const pxCreatedTask )API函数参数理解 -1-任务函数就是和函数指针 -2-名称自定义 -3-堆栈大小自…

041-第三代软件开发-QCustcomPlot波形标注

第三代软件开发-QCustcomPlot波形标注 文章目录 第三代软件开发-QCustcomPlot波形标注项目介绍QCustcomPlot波形标注效果初始化绘制 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML…

C++11线程

C11线程 创建线程 创建线程需要包含头文件<thread>&#xff0c;使用线程类std::thread 构造函数 默认构造函数 thread() noexcept; 默认构造函数&#xff0c;构造一个线程对象&#xff0c;但它不会启动任何实际的线程执行。 任务函数构造函数 template< class Fun…

计算机毕业设计选题推荐-短文写作竞赛微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

物联网的音视频基础设施,谁在提供最优解?

声网在作为RTC服务商的同时&#xff0c;也更在成为赛道的核心布道者和推动者&#xff0c;通过一个个场景的逐步落地&#xff0c;进而推动RTC行业产生更大的想象力。 作者|斗斗 出品|产业家 某海外物流企业的控制室内&#xff0c;工作人员正聚精会神地注视着高清视频画面&a…

深入浅出排序算法之快速排序(重要)⭐⭐⭐⭐⭐

目录 1. 算法介绍⭐⭐⭐⭐⭐ 1.1 图示解析 2. 执行流程和代码实现 2.1 挖坑法⭐⭐⭐⭐ 2.2 Hoare法⭐⭐⭐⭐ 2.3 前后指针法&#xff08;了解即可&#xff09; 2.4 非递归实现快速排序&#xff08;了解即可&#xff09; 4. 性能分析 5. 算法改进 5.1 三数选中法 5.2…

ChatGPT正在测试原生文件分析功能,DALL·E 3能P图啦!

10月29日&#xff0c;有部分用户在社交平台上分享&#xff0c;ChatGPT Plus正在测试原生文件上传、分析功能&#xff0c;可以通过文本问答的方式&#xff0c;对上传的PDF等数据文件进行提问、搜索。 例如&#xff0c;上传一份50页的员工手册PDF文件&#xff0c;然后向ChatGPT提…

基于Qt Designer 操作教程

​本章将简介使用 Qt Creator 里自带的 Qt Designer,使用 Qt Designer 比较方便的构造 UI 界面。特点是方便布局,比较形象。 ## 使用 UI 设计器开发程序 在这小节里我们继续学习如何使用 Qt Designer 开发程序,Qt Designer 是属于 Qt Creator 的一个功能而已,大家不要搞混…

一款针对SpringBootEnv页面进行快速漏洞利用

参考GitHub - 0x727/SpringBootExploit: 项目是根据LandGrey/SpringBootVulExploit清单编写&#xff0c;目的hvv期间快速利用漏洞、降低漏洞利用门槛。 &#x1f4dd; TODO 支持Eureka XStream deserialization RCE支持Fastjson 内存马注入支持更多可以使用JNDI内存马注入反序…

英语——歌曲篇——My Heart Will Go On——我心永恒

My Heart Will Go On [Celine Dion我心永恒] Every night in my dreams I see you,I feel you, That is how I know you go on Far across the distance And spaces between us You have come to show you go on Near,far,wherever you are I believe that the heart does g…

huggingface离线模式及默认保存路径

T5Tokenizer.from_pretrained()函数会在线下载huggingface上的模型&#xff0c;并自动保存在C盘的.cache路径下&#xff1a; C:\Users\xxxxx\.cache\huggingface\hub\models--google--t5-v1_1-base # 这里xxxxx代表自己电脑用户名huggingface离线下载 以google/t5-v1_1-base为…

RabbitMQ入门到实战教程,消息队列实战,改造配置MQ

RabbitMQ入门到实战教程&#xff0c;MQ消息中间件&#xff0c;消息队列实战-CSDN博客 3.7.Topic交换机 3.7.1.说明 Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列。 只不过Topic类型Exchange可以让队列在绑定BindingKey 的时候…

吊打98%的JAVA同行,这份阿里P8架构师升级手册登上天梯!

前言&#xff1a; 我们都是IT人&#xff0c;所以&#xff0c;我们注定了很像。 前段时间有个朋友去阿里面试&#xff0c;作为一个社招生&#xff0c;太多痛苦了。都知道进大厂最好的时机就是应届生的时候。作为社招生&#xff0c;太难了。 我这位朋友经历了五轮面试最后才上…

【AIFEM案例操作】水泵强度分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件&#xff0c;助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题&#xff0c;软件提供高效的前后处理工具和高精度的有限元求解器&#xff0c;帮助用户快速、深入地评估结构的力学性能&#xff0c;加速产…

reactor (百万并发服务器) -- 1

为了从点滴开始&#xff0c;文章会先从一些基础socket去补充一些经常发生但是没有很深入去思考的细节。然后我们再开始去设计reactor的设计&#xff0c;可以选择跳过起过前面部分。 为了能从0开始去设计&#xff0c;测试&#xff0c;优化...整个过程会分为2-3篇文章输出&#x…

【NI-DAQmx入门】传感器基础知识

1.什么是传感器&#xff1f; 传感器可将真实的现象&#xff08;例如温度或压力&#xff09;转换为可测量的电流和电压&#xff0c;因而对于数据采集应用必不可少。接下来我们将介绍您所需的测量类型及其对应的传感器类型。在开始之前&#xff0c;您还可以先了解一些传感器术语&…

优化python程序执行速度

1、问题背景 最近使用python编写的一个蓝牙应用程序&#xff0c;在使用过程中发现传输大量数据时会产生丢包&#xff0c;导致无法接收到完整的数据包。蓝牙接收程序的代码如下。 #蓝牙数据接收处理线程def bt_recv_thread(self):recv_time time.time()while(self.thread_run)…

BUUCTF 神秘龙卷风 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 神秘龙卷风转转转&#xff0c;科学家用四位数字为它命名&#xff0c;但是发现解密后居然是一串外星人代码&#xff01;&#xff01;好可怕&#xff01; 密文&#xff1a; 下载附件&#xff0c;解压得到一个.rar压缩…