首页 > 其他分享 >学习笔记10

学习笔记10

时间:2023-11-19 14:45:35浏览次数:24  
标签:10 缓存 笔记 学习 算法 dev 缓冲区 磁盘 设备

块设备I/O和缓冲区管理

块设备I/O缓冲区

I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。如果该缓冲区存在并且包含有效数据,那么它只需从缓冲区中读取数据,而无须再次从磁盘中读取数据块。如果该缓冲区不存在,它会为磁盘块分配一个缓冲区,将数据从磁盘读入缓冲区,然后从缓冲区读取数据。当某个块被读入时,该缓冲区将被保存在缓冲区缓存中。以供任意进程对同一个块的下一次读/写请求使用。同样,当进程写入磁盘块时,它首先会获取一个分配给该块的缓冲区。然后,它将数据写人缓冲区,将缓冲区标记为脏,以延迟写入,并将其释放到缓冲区缓存中。由于脏缓冲区包含有效的数据,因此可以使用它来满足对同一块的后续读/写请求,而不会引起实际磁盘1O。脏缓冲区只有在被重新分配到不同的块时才会写人磁盘。

Unix I/O缓冲区管理算法

Unix缓冲区管理子系统由以下几部分组成:

  1. I/O缓冲区:内核中的一系列NBUF缓冲区用作缓冲区缓存。每个缓冲区用一个结构体表示。
    缓冲区结构体由两部分组成:用于缓冲区管理的缓冲头部分和用于数据块的数据部分。为了保护内核内存,状态字段可以定义为一个位向量,其中每个位表示一个唯一的状态条件。
  2. 设备表:每个块设备用一个设备表结构表示。
    每个设备表都有一个dev_Iist,包含当前分配给该设备的I/O缓冲区,还有一个io_queue,包含设备上等待I/O操作的缓冲区。I/O队列的组织方式应确保最佳I/O操作。例如,它可以实现各种磁盘调度算法,如电梯算法或线性扫描算法等。为了简单起见,Unix使用FIFO I/O队列。
  3. 缓冲区初始化:当系统启动时,所有I/O缓冲区都在空闲列表中,所有设备列表和T/O队列均为空。
  4. 缓冲区列表:当缓冲区分配给(dev,blk)时,它会被插入设备表的dev_list中。如果缓冲区当前正在使用,则会将其标记为BUSY(繁忙)并从空闲列表中删除。

新的I/O缓冲区管理算法——PV算法

  1. 在信号量上使用P/V来实现进程同步,信号量的主要优点是:
    (1)计数信号量可用来表示可用资源的数量
    (2)当多个进程等待一个资源时,信号量的V操作只会释放一个等待进程,该进程不必重试。
  2. PV算法满足:
  • 缓冲区唯一性
  • 无重试循环
  • 无不必唤醒
  • 良好的缓存效果
  • 无死锁和饥饿

苏格拉底挑战

针对块设备I/O缓冲区的苏格拉底挑战






针对Unix I/O缓冲区管理算法的苏格拉底挑战







标签:10,缓存,笔记,学习,算法,dev,缓冲区,磁盘,设备
From: https://www.cnblogs.com/wzj1234/p/17842019.html

相关文章

  • 20232413《网络》第二周学习总结
    教材学习内容总结教材学习中的问题和解决方案问题一:数学基础知识不足:密码学涉及到许多数学概念,如质数、因数分解、同余等,如果数学基础知识不足,可能会导致理解困难。问题一解决方案:补充数学基础知识:可以通过学习数学基础知识,如质数、因数分解、同余等,来提高对密码学的理解能力......
  • 2023-2024-1 20232310 《网络空间安全导论》第二周学习
    教材内容总结教材学习中的问题和解决过程问题1:学习抗量子密码是不了解其中提到的Hash函数解决方法:看了B站教程问题2:还有哪些常见的密码破译或攻击技术方法解决方法:询问了GPT社会工程学:攻击者可能会利用社会工程学技术,通过欺骗、诱导、或其他手段来获取密码,例如通过欺骗用......
  • 学期:2023-2024-1 学号:20232314 《网络空间安全导论》第2周学习总结
    教材学习内容总结 教材学习中的问题和解决过程问题1:模运算具体怎么算问题1解决方案:询问gpt得知:模运算是取余运算,具体的计算步骤如下:将被除数除以除数得到商和余数。将余数作为模运算的结果。基于AI的学习  ......
  • c语言学习-while 循环
    intmain(){ inta=0; printf("joinus"); printf("codenow"); while(a<20000){ printf("写了%d\n",a); a++; } printf("已经写好了%d\n",a); printf("有好offer了"); return0;}......
  • c语言学习 - 逗号表达式及操作符
    条件操作符(三目操作数)exp1?exp2:exp3;若exp1的结果为真,则exp2是整个表达式的结果若exp1为假,则执行exp3作为整个表达式的结果赋值z++为先赋值再自增。++z为先自增再赋值。......
  • 使用windows平板学习与办公的一些经历(酷比魔方i9篇)
    大概是在2019年的时候,我在某平台上购买了900元的二手windows平板电脑,酷比魔方i9首先谈谈背景。当时我手里是有个笔记本的,屏幕大概15.6寸,4G+256G的,平时用的时候功率平均20几W。对于很多玩机,对机子有着深入研究的人可能觉得我的电脑配置很垃圾。不过每个人的想法不一样吧,我也不跟......
  • 学期2023-2024-1 20231417 《计算机基础与程序设计》第八周学习总结
    学期2023-2024-120231417《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标《计算机科学概论》第9章《C语言程序设计》第7章并完......
  • 2023-2024-20231317《计算机程序与设计》第八周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第八周作业)这个作业的目标<《计算机程序概论九张》《C语言程序设计第七章》>作业正文https://www.cnblog......
  • linux命令学习
    Linux命令的学习导航目录Linux命令的学习导航使用VMware备份操作系统快照克隆Linux系统的文件文件与文件夹Linux系统的文件目录结构Linux的基本指令指令与选项基础指令ls指令pwd指令cd命令mkdir指令touch指令cp指令mv指令rm指令vim命令输出重定向cat指令进阶指令df指令free指令h......
  • 软件设计模式学习每日总结-第七天
    第七天学习结构型模式:描述如何将对象或类组合成更大的结构。类结构型模式:类的组合对象结构模式:类与对象的组合适配器模式:使接口不兼容的类可以一起工作。  ......