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

学习笔记10

时间:2023-11-19 22:13:44浏览次数:30  
标签:10 Unix 笔记 学习 算法 缓冲区 磁盘 setvbuf

学习笔记10

十二章知识点归纳

本章主要讨论了块设备 I/O 和缓冲区管理,包括块设备 I/O 的原理、I/O 缓冲的优点、Unix 的缓冲区管理算法以及信号量设计的新缓冲区管理算法。以下是一些重要的知识点:

1. 块设备 I/O 缓冲区

  • 基本原理:文件系统使用一系列 I/O 缓冲区作为块设备的缓存内存。
  • 读取和写入过程:如果缓冲区存在并包含有效数据,则直接从缓冲区读取数据,否则会为磁盘块分配缓冲区并将数据读入缓冲区。

2. Unix/Linux 中的信号处理

  • 内核中的一系列 NBUF 缓冲区用作缓冲区缓存,每个缓冲区由一个结构体表示。
  • 缓冲区初始化、列表和算法:描述了缓冲区的初始化过程以及 getblk/brelse 算法的流程。

3. PV 算法

  • PV 算法特点:缓冲区唯一性、无重试循环、无不必要唤醒,提升了缓存效果。

4. I/O 缓冲区管理算法比较

该部分涉及了用户界面、CPU 端模拟、缓冲区管理器、磁盘驱动程序、磁盘控制器、磁盘中断以及虚拟磁盘等方面。

三、实践过程与截图

尝试 Unix I/O 缓冲区管理算法

  • 示例代码使用了 perror()、setvbuf()、以及进程同步的消费者问题,展示了文件操作、缓冲区设置和线程同步等方面的实践。

问题与解决思路

问题:setbuf()函数和setvbuf()函数的区别是什么?

  • setbuf() 用于将指定缓冲区与特定的文件流相关联,实现直接操作文件流缓冲区的功能。而 setvbuf() 则用于设置文件流的缓冲区类型和大小,具有更多的参数控制选项。

详细解释请参考

苏格拉底提问



标签:10,Unix,笔记,学习,算法,缓冲区,磁盘,setvbuf
From: https://www.cnblogs.com/lududuze/p/17842781.html

相关文章

  • 《2023-2024-1 20232427《网络空间安全导论》第十二周学习总结》
    《2023-2024-120232427《网络空间安全导论》第十二周学习总结》教学学习内容总结本周学习了《网络空间安全导论》的第二章,重点学习了密码学的相关知识。本章1讲述密码学基础,为日后网络空间安全学习打下基础。密码学概述密码的起源代换密码&置换密码机械密码ENIGMA密码机......
  • Javerscript 学习(知识点整理)
    一、知识体系:  二、案例整理:(1)需求:实现学生的信息录入可以实现一个个添加,也可删除(2)知识点整理:查找元素: document.getElementById("submit");(按照元素的id查找)document.getElementsByTagName('input');(按照元素名进行查找)箭头函数:letmyFunction=(a,b)=>a*......
  • 【Django使用】django经验md文档10大模块。第4期:Django数据库增删改查
    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原......
  • JVM学习记录(基本知识点)
    一、老生常谈,JVM的组成部分有哪些1.类加载器(作用:将字节码文件加载到内存中的运行时数据区)2.运行时数据区(由多个部分组成,也是我们最为普遍较为的区域,大体上讲就是运行程序,包括了程序运行的全生命周期)3.执行引擎(作用:将字节码翻译成底层系统命令交给CPU去执行)4.本地库接口(作用:字节码翻......
  • 什么是知识学习的复利效应
    对于学习领域的复利效应,这是一个强大的概念,类似于金融中的复利。简而言之,复利效应指的是一个过程中产生的效果或收益,使得下一轮效果不仅仅基于原始投入,还取决于前一轮的结果。在学习中,这意味着当前学到的知识和技能可以为未来的学习创造更多的机会和优势。这种效应是逐步累积、相......
  • 前端笔记:React学习 1.1--配置环境
    1.1配置环境React中文文档React官网文档安装NodejsNodejs官网安装create-react-app终端执行:npmi-gcreate-react-app安装VSCode插件SimpleReactSnippetsPrettier-Codeformatter创建ReactApp在存代码的目录下创建react项目create-react-appreact-app......
  • 《敏捷开发》读书笔记4
    1、项目研发过程就像是冲浪,你永远不知道接下来遇到什么风险。项目的成功和失败取决于团队所有成员的技术水平;2、开发需要持续不断,切勿时续时断;3、有人认为敏捷开发方法有所顾忌,认为它只是另一种危机管理而已。事实并非如此。危机管理是指问题积累并且恶化,直到它们变得非常严重,以......
  • 《PC Assembly Language》笔记——第一章-介绍
    《PCAssemblyLanguage》PaulA.Carter第1章-介绍Introduction1.2ComputerOrganization1.2.1内存(Memory)单位大小word2bytesdoubleword4bytesquadword8bytesparagraph16bytes1.2.380x86CPU家族实模式程序可以访问任何内存地址(甚至是......
  • 2023-2024-1 20231319《计算机基础与程序设计》第8周学习总结
    2023-2024-120231319《计算机基础与程序设计》第8周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里作业要求这个作业的目标计算机科学概论第9章《C语言程序设计》第7章学习目标功能设计与面向对象设计面向对......
  • 【Django-DRF用法】多年积累md笔记,第(4)篇:Django-DRF反序列化详解
    本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计RESTAPI,通过使用Django来实现一个RESTAPI为例,明确后端开发RESTAPI要做的最核心工作,然后介绍DjangoRESTframework能帮助我们简化开发RESTAPI的工作。全套DRF笔记直接地址:请移步这里共5章,24子模块,总计1......