BLK
  • 2024-07-13块设备驱动实现--模拟一个块设备
    1、前言        存储层在收到I/O请求后进行数据处理,再给上层应答,本文实现一个实际的块设备驱动。使用Linux5.4为基础,进行框架搭建和功能实现。2、ko模块与编译    首先定义一个init和exit函数,去注册自己的驱动函数模块。#include<linux/module.h>#includ
  • 2024-05-03分块 - 树分块
    分块-树分块LuoguP3203[HNOI2010]弹飞绵羊经典的\(LCT\)板子题,十分滴规范,但我们今天不讲\(LCT\)我们用树分块这个俎法哈,又短又快的咩(好像不是很快哈,同学们要认真学习哈我们把一个点能到的点当成它的老子,那\(N+1\)就是根的咩显然它的编号越跳越大撒,我们就
  • 2024-03-25P4690 [Ynoi2016] 镜中的昆虫
    P4690[Ynoi2016]镜中的昆虫本质就是区间修改,区间数颜色弱化一下,先考虑不带修的情况,也就是P1972[SDOI2009]HH的项链其难点在于区间颜色的去重,需要想一个办法让区间内一个颜色只被数一次我们可以去维护一个\(Nxt\)数组,表示下一个与当前位置颜色相同的位置若当前位
  • 2024-01-17每天一个linux命令(47):iostat命令
      Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iost
  • 2023-12-31CF121E Lucky Array
    题意给定一个序列,维护下列操作。区间加区间查询数中只包含\(4,7\)数的个数。所有数前后不超过\(1e4\)。Sol块块版。\(1e4\),发现满足条件的数的个数只有\(30\)个。对于每个块开一个桶,记录每种数有多少个。查询时暴力枚举\(30\)个数,暴力判断即可。修改是平凡的
  • 2023-12-01存储虚拟化的写入过程
    虚拟机里面的进程写入一个文件,当然要通过文件系统。整个过程和文件系统过程没有区别。只是到了设备驱动层,我们看到的就不是普通的硬盘驱动了,而是virtio的驱动。virtio的驱动程序代码在Linux操作系统的源代码里面,文件名叫drivers/block/virtio_blk.c。虚拟机里面的virtio的
  • 2023-11-30第十二章学习笔记
    第十二章块设备I/O和缓冲区管理1.块设备I//O缓冲区文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,他首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。如果缓冲区中存在并且包含有效数据,那么它只需要从缓冲区中读取数据,而无需再次从磁盘中
  • 2023-11-19第十一周学习笔记(学习笔记10)
    〇、思维导图一、知识总结解释块设备I/O的原理和I/O缓冲的优点介绍Unix的缓冲区管理算法利用信号量设计新的缓冲区管理算法,以提高I/O缓冲区的缓存效率和性能介绍简单的PV算法及其特点基本概念读写普通文件的算法依赖于两个关键操作,即get_block和put_block,这两个操作将磁
  • 2023-11-1820211316郭佳昊 《信息安全系统设计与实现(上)》 第十周学习总结 块设备I/O和缓冲区处理
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会
  • 2023-11-18学习笔记十
    学习笔记十一、任务详情自学教材第12章,提交学习笔记(10分),评分标准如下知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核
  • 2023-11-16学习笔记10——20211303
    一、学习任务自学教材第12章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:
  • 2023-11-152023-2024-1 20211211 《信息安全系统设计与实现(上)》第12章
    块设备I/O缓冲区文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。如果该缓冲区存在并且包含有效数据,那么它只需从缓冲区中读取数据,而无须再次从磁盘中读取数据块。大多数文件系统使用
  • 2023-11-12《Unix/Linux系统编程》教材学习笔记第十二章
    chapter12块设备I/O缓冲区读写普通文件的算法依赖于两个关键操作,即get_block和put_block,这两个操作将磁盘块读写到内存缓冲区中。由于与内存访问相比,磁盘I/O速度较慢,所以不希望在每次执行读写文件操作时都执行磁盘I/O。因此,大多数文件系统使用I/O缓冲来减少进出存储设备的物理I/
  • 2023-09-25bcm cli 命令
    查看端口当前芯片配置:Sundray-SW/var#bcmshportge3=excute:ovs-appctlplugin/bcmshportge3=Enable[True]AutoNeg[True]ADVert[1000full,100,10]SPeed[0]FullDuplex[False]LinkScan[HW]LeaRN[5]DISCard[None]VlanFilter[3]PRIOrity[0]PortFilterMode[2]PH
  • 2023-09-24crash —— 内核符号和地址直接相互转换
    通过sym可以将内核地址转换成内核符号,或者将内核符号转换成内核地址。根据地址转换为符号函数地址crash>symffffffff8166f300ffffffff8166f300(T)blk_update_request+16/home/pengdl/x86_64/linux-6.2/block/blk-mq.c:896全局变量crash>sym-qpanic_on_offfff
  • 2023-09-18每天一个linux命令(47):iostat命令
    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于s
  • 2023-08-16CF1648E 题解
    就是\(m\)组询问补图的最小生成树上的树链最大值。有两种基本思路求这棵树。第一种,Kruskal,基于找到最小的边使两端点不连通。考虑补图中\((x,y)\)的边权,它是原图最小生成树上的树链最大值。从小到大枚举补图的边,相当于从小到大枚举原图最小生成树的边\((u,v,w)\),然后:令原图
  • 2023-07-22kernel源码(二十二)块设备
    操作系统所有设备可分为两类:块设备和字符设备。块设备是一种可以以固定大小的数据块为单位进行寻址和访问的设备,例如硬盘、软盘。字符设备是一种以字符流作为操作对象的设备,不能进行寻址操作,例如打印机、网卡、终端设备。为便于管理,操作系统将这些设备统一的以设备号进行分类。
  • 2023-07-21Codeforces 1830E - Bully Sort
    这种题肯定首先要寻找不变量。显然后面排好序的后缀不会被改变。因此从整体上来看我们的流程肯定是,如果当前\(p_n=n\),就令\(n\)减一,否则你一步换的\(i\)肯定满足\(p_i=n\)。而显然\(\min\limits_{j=i}^np_j\lei\),因此我们考察\(\sum|i-p_i|\)和\(\sum\limits_{i<j}[p_
  • 2023-06-28end io callback
      ext4fsendiocallback(mpage_end_io)mpage_end_io+0x0/0x1c8bio_endio+0x1cc/0x22cblk_update_request+0x1e8/0x484mmc_blk_mq_complete_rq+0x28/0xb0mmc_blk_mq_complete+0x34/0x40blk_done_softirq+0x88/0xf8_stext+0x128/0x49c__irq_exit_rcu.llvm.4269462
  • 2023-06-22unix 计数器disk traffic含义补充
    LoadRunnerController菜单tools–>options中我们可以看到是3秒钟采集一次服务器的资源信息,如下图所示:这就等价于以下命令:iostat–d3n 输出的tps或者iostat–x3中的r/s+w/s iostat–d3n的输出类似如下:#iostat-d3nLinux2.6.18-194.el5(www2.×××.c
  • 2023-06-11CF121E Lucky Array
    思路正解是线段树?然而我太菜了不会啊。。。题目的数据范围是\(10^5\),于是我们可以从分块的角度去思考这个问题。打个表可以发现在题目给定的值域(\(10^4\))内满足条件的数一共只有三十个,于是这道题就简单了。先把数列分个块,然后对于每一块,维护一个区间加的标记和一个值域的
  • 2023-06-04__blk_run_queue
    1.aoe_end_request2.blk_delay_work3.blk_start_queue4.blk_run_queue5.__blk_drain_queue6.blk_queue_bio7.blk_insert_cloned_request8.queue_unplugged9.blk_post_runtime_resume10.blk_execute_rq_nowait11.cfq_rq_enqueued12.cfq_kick_queue13.__elv_add_re
  • 2023-06-03page flow in IO flow
     1.pageaddtobiointf2fs_submit_page_bio(structf2fs_io_info*fio)/*Allocateanewbio*/bio=__bio_alloc(fio,1);if(bio_add_page(bio,page,PAGE_SIZE,0)<PAGE_SIZE){bio_put(bio);return-EFAULT;}_
  • 2023-05-29pstore
    简介pstore文件系统(是的,这是个文件系统)是PersistentStorage的缩写,最早在2010年由TonyLuck设计并合入Linux主分支,设计的初衷是在内核Panic/Oops时能自动转存内核日志(log_buf),在Panic重启后,把转存的日志以文件形式呈现到用户空间以分析内核崩溃问题。这对分析那种小概率且没办