8.缓冲区管理

这篇具有很好参考价值的文章主要介绍了8.缓冲区管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第五章 I/O管理

缓冲区管理

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

双缓冲区:T<C+M

假设初始状态缓冲区1满,缓冲区2空,工作区为空。

刚开始缓冲区2为空,所以设备可以向缓冲区2中冲入数据耗时T,另一方面刚开始缓冲区1中是满的,所以刚开始就可以把缓冲区1中的数据传送到工作区中,M时刻工作区被充满,CPU就开始处理数据耗时C,处理完工作区中的数据后此时缓冲区2中已经充满了数据,因此可以接着把缓冲区2中的数据传送到工作区中,接着继续处理工作区中的数据。在T时刻缓冲区2已经充满,设备开始空闲,并且此时缓冲区1中的数据在M时刻就已经被取空了,因此缓冲区2的数据被充满之后设备就可以接着往缓冲区1中冲入数据耗时T,假设在2T缓冲区2中的数据还没有完全被取走(即假设2T<2M+C),所在在2T时刻虽然设备空闲,但是由于缓冲区2此时还没有被取空,而缓冲区1刚刚被充满,因此在这个时刻设备并不能接着往缓冲区2中充入下一块数据,只有缓冲区2中的数据被取空之后,设备才可以继续往缓冲区2中写入下一块的数据。可以发现如果采用双缓冲区并且T<C+M,很难找到一个和初始状态一模一样的状态,比如T时刻,虽然其中缓冲区2是满的,但此时工作区中的数据还没有全部被处理完,因此工作区又不是空的,这和刚开始的初始状态是不一样的,M+C时刻虽然工作区是空的,但是缓冲区2中的数据是满的,并且缓冲区1当中也充入了一部分数据,即M+C时刻工作区空,一个缓冲区满,但另一个缓冲区是半满的,所以如果T<C+M那么课本中介绍的方法就不易分析出来了。但是自己用甘特图的方法多分析几步就可以发现每经过M+C这么长的时间就会有一块数据被处理完毕,因此当T<C+M的时候每处理一个数据块平均耗时应该是C+M。

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研

8.缓冲区管理,408操作系统笔记,408,操作系统,25计算机考研文章来源地址https://www.toymoban.com/news/detail-676554.html

到了这里,关于8.缓冲区管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux基础I/O(二)】文件系统讲解以及文件缓冲区的概念

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 对于文件来讲,有打开的在内存中 的文件,也有没有打开的在磁盘上 文件,上一篇文章讲解的是前者,本篇 文章将带大家了解后

    2024年01月19日
    浏览(56)
  • C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态

    文本文件一般以行的形式组织数据。 包含头文件: #include fstream 类: ofstream(output file stream) ofstream 打开文件的模式(方式):类内open()成员函数参数2.参数1是文件存储/创建路径 例如:fout.open(filename,ios::app); 对于 ofstream,不管用哪种模式打开文件,如果文件不存在,都会创

    2024年01月25日
    浏览(52)
  • [Linux]理解文件系统!动静态库详细制作使用!(缓冲区、inode、软硬链接、动静态库)

            hello,大家好,这里是bang___bang_,今天来谈谈的文件系统知识,包含有缓冲区、inode、软硬链接、动静态库。本篇旨在分享记录知识,如有需要,希望能有所帮助。 目录 1️⃣缓冲区 🍙缓冲区的意义 🍙常见缓冲区刷新策略 🍙缓冲区位置猜想 🍥现象猜测 🍥现象解

    2024年02月13日
    浏览(50)
  • C语言--文件操作详解(2)(文本文件和二进制文件,文件读取结束的判定,用函数进行文件的拷贝,文件缓冲区)

    本篇文章主要介绍了文本文件和二进制文件,文件读取结束的判定,如何使用函数进行文件的拷贝,文件缓冲区的相关知识。 以及具有保存功能的八功能通讯录的源码。 据数据的组织形式,数据文件被称为文本文件或者二进制文件。 ①数据在内存中以二进制的形式存储,如

    2024年02月08日
    浏览(47)
  • 网卡收发包系统结构收发包流程,tcp/ip协议,socket套接字缓冲区,滑动窗口,mtu/mss

    MTU和MSS的区别 TCP 的 MTU MSS MTU是在数据链路层的载荷大小也就是传给网络层的大小,mss是在传输层的载荷大小也就是传给应用层的大小 mss是根据mtu得到的 1、MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大

    2024年02月08日
    浏览(43)
  • Redis 缓冲区

    缓冲区的应用场景 : 客户端与服务器端的通信时,暂存客户端发送的命令数据,或暂存服务器端返给客户端的数据结果 主从节点间进行数据同步时,暂存主节点接收的写命令和数据 缓冲区 : 避免客户端和服务器端的请求发送和处理速度不匹配 服务器给每个连接的客户端都准

    2024年02月07日
    浏览(69)
  • 理解缓冲区

    对于这样的代码,首先可以肯定的是 printf 语句先于 sleep 执行,既然如此那么就应该是先打印语句然后进行休眠,下面看看结果: 但这里却是先休眠以后再打印语句,这是因为存在一个叫缓冲区的东西,当我们要向外设写入数据(让显示器显示就是向显示器写入数据)时会将

    2023年04月25日
    浏览(72)
  • 【Linux】理解缓冲区

    我们发现 printf 和 fwrite (库函数)都输出了2次,而 write 只输出了一次(系统调用)。为什么呢?肯定和fork有关! C接口的函数被打印了两次系统接口前后只是打印了一次:和fork函数有关,fork会创建子进程。在创建子进程的时候,数据会被处理成两份,父子进程发生写时拷

    2024年01月23日
    浏览(54)
  • 【Linux】文件缓冲区

    提到文件缓冲区这个概念我们好像并不陌生,但是我们对于这个概念好像又是模糊的存在脑海中,之间我们在介绍c语言文件操作已经简单的提过这个概念,今天我们不妨深入理解什么是文件缓冲区 通过自己实现库中的一些文件操作函数更加深入的理解文件缓冲区 自定义实现

    2024年02月10日
    浏览(58)
  • SEED-缓冲区溢出攻击

    实验环境:SEED-Ubuntu20.04虚拟机 a) 缓冲区溢出原理 **缓冲区溢出攻击原理:**利用溢出的数据改变源程序的控制流,如覆盖返回地址 b) 分析生成badfile文件的exploit.py程序 Shellcode部分 字节数组末尾处填入shellcode c) 编译目标服务器上具有缓冲区溢出漏洞的stack.c程序,并将其缓冲

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包