首页 > 其他分享 >第十二章学习笔记、知识完整性总结

第十二章学习笔记、知识完整性总结

时间:2023-11-15 15:33:20浏览次数:31  
标签:第十二章 dev 进程 算法 bp 笔记 缓冲区 完整性 空闲

摘要:本章讨论了块设备 I/O和缓冲区管理;解释了块设备I/O的原理和I/O缓冲的优点;论述了Unix 的缓冲区管理算法,并指出了其不足之处;还利用信号量设计了新的缓冲区管理算法,以提高 I/O缓冲区的缓存效率和性能;表明了简单的PV算法易于实现,缓存效果好,不存在死锁和饥饿问题;还提出了一个比较 Unix 缓冲区管理算法和 PV算法性能的编程方案。编程项目还可以帮助读者更好地理解文件系统中的I/O操作。
12.1 块设备I/O缓冲区
I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时。它首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。如果该缓冲区存在并且包含有效数据、那么它只需从缓冲区中读取数据、而无须再次从磁盘中读取数据块。如果该缓冲区不存在,它会为磁盘块分配一个缓冲区,将数据从磁盘读人缓冲区,然后从缓冲区读取数据。当某个块被读入时、该缓冲区将被保存在缓冲区缓存中,以供任意进程对同一个块的下一次读/写请求使用。同样,当进程写入磁盘块时,它首先会获取一个分配给该块的缓冲区。然后,它将数据写入缓冲区,将缓冲区标记为脏,以延迟写入,并将其释放到缓冲区缓存中。由于脏缓冲区包含有效的数据,因此可以使用它来满足对同一块的后续读/写请求,而不会引起实际磁盘I/O。脏缓冲区只有在被重新分配到不同的块时才会写人磁盘。

12.2 Unix I/O缓冲区管理算法
(1)I/O缓冲区:内核中的一系列NBUF 缓冲区用作缓冲区缓存。每个缓冲区用一个结构体表示。
typdef struct buf[
struct buf*next__free;// freelist pointer
struct buf next__dev;// dev_list pointer int dev.,blk;
// assigmed disk block;int opcode;
// READ|wRITE int dirty;
// buffer data modified
int async;
// ASYNC write flag int valid;
//buffer data valid int buay;
// buffer is in use int wanted;
// some process needs this buffer struct semaphore lock=1; /
// buffer locking semaphore; value=1
struct semaphore iodone=0;// for process to wait for I/0 completion;// block data area char buf[BLKSIZE]

标签:第十二章,dev,进程,算法,bp,笔记,缓冲区,完整性,空闲
From: https://www.cnblogs.com/sjd-sr/p/17833968.html

相关文章

  • 学习笔记419—如何快速从Github下载文件
    如何快速从Github下载文件从国内下载Github文件的速度往往会很慢,因此有一些开发者提供了代理下载功能,这些服务都是免费的,你甚至可以通过开源代码自建Github下载官网:https://d.serctl.com这是一个简单干脆的Github文件代下网站,提供八个下载节点,你可以从中选择最快的节点下载 使用方......
  • 硬件开发笔记(十一):Altium Designer软件介绍、安装过程和打开pcb工程测试
    前言  前面做高速电路,选择是阿li狗,外围电路由于读者熟悉AD,使用使用ad比较顺手,非高速电路就使用AD了,其实AD也可以做高速电路,由于笔者从13年开始做硬是从AD9开始的,所以开始切入AD做硬件软件学习成本会低很多。 AltiumDesigner简介  AltiumDesigner是原Protel软......
  • 软件设计开发笔记5:QT开发三参数温室气体数据记录软件
      最近有一个为三参数温室气体分析仪及其多通道换向阀箱编写数据记录和控制的需求。所以在这一篇中我们就来分析一下如何使用QT实现这一需求。1、需求分析  虽然说传递过来的需求只有“实现一个三参数温室气体分析仪及其多通道换向阀箱的数据记录和控制”这样一句话,但所有人都......
  • 第五周阅读笔记|人月神话————削足适履-关注程序的空间规模和空间控制技能
    削足适履这个章节在讲什么?我们很多时候在开发程序的时候都是考虑程序的运行时间和效率,而很少考虑到程序的运行空间问题。现在的存储空间是越来越廉价,我们很少去考虑这些问题。经典的DOS版本的仙剑奇侠传还不到20M,而现在的一个大游戏却是2,3G甚至更大。由于计算机的不断更新换代和......
  • 图论——最短路 学习笔记
    图论——最短路学习笔记其实是复习性质的,主要是总结,证明什么的,等上大学再说。定义单源最短路:从一个点\(q\)出发,到其他所有点的最短路。全源最短路:任意两点见最短路。算法对比算法FloydJohnsonBellman–FordSPFADijkstra类型全源全源单源单源单源......
  • 数据结构——字典树 学习笔记
    数据结构——字典树学习笔记字典树,也叫trie树。检索字符串本质是记录字符串前缀的一棵查找树,形态类似于:字典树使用边表示字母,节点表示一个前缀,同时也可以在节点上记录状态\(\mathit{tag}\)。基本实现形如:var: nex[0..siz][0..rng],idx est[0..siz],pre[0..siz]fun......
  • 偏序问题学习笔记
    前提给若干个\(n\)维的点,对于每个点求出每一维均小于等于它的点的数量。按字典序排序,然后预处理相同的点,这样后面的点不可能对前面的点产生贡献。如果某个点后面有与其相同的点,那么当前点的贡献就会少算,所以我们需要提前在当前点的答案中加上后面与其相同的点的数量。经过这......
  • 密码学笔记
    密码算法:对称密码算法、非对称密码算法、摘要算法对称密码算法:加密秘钥和解密秘钥相同的密码算法又称秘密秘钥算法或单秘钥算法分组密码算法(BlockCipher):块加密算法将明文拆分为N个固定长度的明文块用相同的秘钥和算法对每个明文块加密得到N个等长的密文块然后将N个......
  • uniapp开发笔记
    控件toast控件uni.showToast({icon:'none',title:'输入topic'})注意点引入图片需要的注意事项图片的宽度不能是auto相对路径和绝对路径绝对路径要以/开头示例代码{bigUrl:"static/image/img/Children.jpg",data:[{......
  • 34课笔记
     ......