缓冲区的管理

news/2024/5/17 12:42:06/文章来源:https://blog.csdn.net/qq_50985215/article/details/127742943

文章目录

  • 什么是缓冲区?有什么作用?
  • 单缓冲
  • 单缓冲和双缓冲通信时的区别
  • 循环缓冲区
  • 缓冲池

什么是缓冲区?有什么作用?

在这里插入图片描述

  • 缓冲区是一个存取区域,可以由专门的硬件寄存器组成,也可以用内存作为缓冲区,本节是用内存作为缓冲区
    • 缓和CPU和I/O设备之间速度不匹配的矛盾
    • 减少对CPU的中断频率,放宽对CPU中断相应时间的限制
    • 解决数据粒度不匹配的问题
    • 提高CPU与I/O设备之间的并行性

单缓冲

在这里插入图片描述

  • 对于缓冲区有这样的规定:
    • 当缓冲区的数据非空的时候,不能往缓冲区冲入数据,只能从缓冲区把数据传出
    • 当缓冲区为空的时候,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出

单缓冲和双缓冲通信时的区别

在这里插入图片描述
在这里插入图片描述

循环缓冲区

在这里插入图片描述

缓冲池

在这里插入图片描述

  • 根据缓冲区被使用的情况分为三种
    • 空缓冲区
    • 装满输入数据的缓冲队列
    • 装满输出数据的缓冲队列
  • 根据一个缓冲区在实际过程中的功能不同分为四种缓冲区
    • 用于收容输入数据的工作缓冲区
    • 用于提取输入数据是工作缓冲区
    • 用于收容输出数据的工作缓冲区
    • 用于提取输出数据的工作缓冲区

使用过程

  • 从空缓冲队列取出一块作为收容输入数据的工作缓冲区,冲满数据后挂到输入队列队尾

在这里插入图片描述

  • 计算进程想要取得一块输入数据
  • 从输入队列取出一块充满输入数据的缓冲区作为提取输入数据的工作缓冲区,然后将空的缓冲区挂到空缓冲队列

在这里插入图片描述

  • 计算进程想要把准备好的数据冲入缓冲区

在这里插入图片描述

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

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

相关文章

Python中的几种推导式用法,先收藏再说......

嗨害大家好鸭!我是小熊猫❤ 今天我们来整点非常干的干货: 源码、资料电子书点击此处 Python 推导式是一种独特的数据处理方式, 可以从一个数据序列构建另一个新的数据序列的结构体。 Python 支持各种数据结构的推导式: 列表(li…

D. Maximum Sum on Even Positions(最大连续字段和)

Problem - 1373D - Codeforces 题意: 给你一个由n个整数组成的数组a。数组的索引从零开始(即第一个元素是a0,第二个是a1,以此类推)。 你最多可以扭转这个数组的一个子数组(连续子段)。回顾一下&#xff0c…

[附源码]计算机毕业设计JAVAjsp不回头药店药品管理系统

[附源码]计算机毕业设计JAVAjsp不回头药店药品管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SS…

【Prometheus】什么是prometheus?prometheus简介

本文目录 一、什么是prometheus? 二、体系结构概述 三、适用场景 四、不适用的场景 一、什么是prometheus? Prometheus官网 Prometheus开源代码 From metrics to insight Power your metrics and alerting with the leading open-source monitoring…

随想录一刷Day48——动态规划

文章目录Day48_动态规划29. 打家劫舍30. 打家劫舍 II31. 打家劫舍 IIIDay48_动态规划 29. 打家劫舍 198. 打家劫舍 思路: 题目的关键是,不能偷相邻的两个屋子,即只能偷上一个屋子不偷当前屋子,或者不偷上一个屋子偷当前屋子。 d…

LeetCode刷题(python版)——Topic57插入区间

一、题设 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:interva…

ServletConfig和ServletContext接口

一、ServletConfig接口详解 1、简介 Servlet 容器初始化 Servlet 时,会为这个 Servlet 创建一个 ServletConfig 对象,并将 ServletConfig 对象作为参数传递给 Servlet 。通过 ServletConfig 对象即可获得当前 Servlet 的初始化参数信息。一个 Web 应用中…

【仿牛客网笔记】 Redis,一站式高性能存储方案——Redis入门

Redis可以开发对性能要求较高的功能。还可以利用Redis重构我们现有的功能。 NoSQL关系型数据库之外的统称。 快照有称为RDB 以快照的形式 不适合实时的去做,适合一段时间做一次。 日志又称AOF 以日志的形式每执行一次就存入到硬盘中,可以做到实时的存储以…

【python的静态方法,classmethod方法和__call___魔法方法】

classmethod魔法方法和staticmethodstaticmethod,静态方法classmethod,绑定类方法__call__,可调用类类方法staticmethod,静态方法 在python中,使用静态方法可以实现不需要实例化对象的绑定就可以直接调用的函数&#…

【Unity3D】游戏物体操作 ④ ( 选中多个游戏物体操作 | 复制选中物体 | 聚焦选中物体 | 激活、禁用选中物体 | 对齐选中物体 )

文章目录一、选中多个游戏物体操作1、Scene 场景窗口选中多个物体2、Hierarchy 层级窗口选中多个物体二、复制选中物体1、使用 " Ctrl D " 快捷键复制物体2、使用 右键菜单 | Duplicate 选项复制三、聚焦选中物体四、激活、禁用选中物体五、对齐选中物体一、选中多个…

计算机组成原理浮点数表示

浮点数表示 浮点数的表示分为阶码和尾数; 比如3.026*1011;阶码是11;尾数是3.026; 对于阶码: 阶符为正,小数点向后移n位(n表示阶的大小); 阶符为负,小数点向前移n位(n表示阶的大小&a…

AttributeError: ‘bytes‘ object has no attribute ‘encode‘异常解决方案

AttributeError: bytes object has no attribute encode是:“字节”对象没有属性的编码的意思。 很明显,是编码格式的问题,例如:已经是byte格式的字符串类型,二次进行encode的时候就会出现这个bug,示例如下…

【猿创征文】Vue3 企业级优雅实战 - 组件库框架 - 1 搭建 pnpm monorepo

前两篇文章分享了基于 vite3 vue3 的组件库基础工程 vue3-component-library-archetype 和用于快速创建该工程的工具 yyg-cli,但在中大型的企业级项目中,通常会自主搭建这些脚手架或加速器。优雅哥希望每位前端伙伴能知其所以然,故接下来的文…

基础IO(下)——Linux

文章目录1. 理解文件系统1.2 背景知识1.2 inode vs 文件名1.3 软硬链接2. 动态库和静态库2.1 静态库.a2.1.1 如果想写一个库?(编写库的人的角度)2.1.2如果我把库给别人,别人怎么用呢?(使用库的人的角度&…

中医-通过舌象判断身体状况

本文分享通过舌象判断身体的整体状况(中医角度),得出一个可供辨证的参考,并且可以根据舌象做出相关的饮食调整,本文主讲理论,相关舌象图片易引人不适,如需找相关图片,可根据本文中的…

git rebase实战

例如, 在B分支上做rebase。 git rebase 之前确保当前分支是最新的。 切换到B分支: 1.git rebase origin/master(以origin/master分支为基线,合入master分支的修改到origin/master)此时会提示冲突文件 2.对冲突文件进行修改 3.git add 4.git …

网络面试-ox07http中的keep-alive以及长/短连接

非Keep-Alive: 早起HTTP1.0, 浏览器发起http请求需要与服务器建立新的TCP连接,请求处理后连接立即关闭。 缺点:每个这样的连接,客户端与服务器都要分配TCP的缓冲区和变量,这给服务器带来严重的负担。 Keep-Alive: 默认持久连接&am…

上海亚商投顾:沪指录得6连阳 两市成交再度破万亿

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日横盘震荡,收盘集体小幅上扬,日K线均录得6连阳。虚拟现实概念股集体拉升&#…

最详细、最全面的【Java日志框架】介绍,建议收藏,包含JUL、log4j、logback、log4j2等所有主流框架

前言 本文为 【Java日志框架】 相关知识,之前已经介绍了Java日志框架的发展历史:Java日志框架的发展历史。 这篇文章将对日志的概念与作用,JUL日志框架,Log4j日志框架,Logback日志框架,Log4j2日志框架&…

详谈一下:Java中的基本类型变量(8种)与引用类型变量的区别

对于Java语言中的基本类型,不知道各位老铁是否还能全能说出来!! Java语言中的8种基本类型: byteshortintlongfloatdoublecharbollen 上面8种Java语言中的基本类型,所对应的变量,就是基本类型变量&#xf…