自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 Cgroup之CFS调度

CFS调度器会根据从cgroup中配置的参数,控制进程对cpu的利用率。

2023-08-14 15:08:57 227

原创 cgroup之attach

本文主要介绍cgroup的结构,观察cgroup如何通过对外开放的文件系统接口,将进程和对应的资源控制(css)联系起来

2023-08-14 15:03:10 171

原创 Linux死锁检测:lockdep

对于大型系统而言,因为长调用链,多核调度,中断等一系列原因很难保证系统上锁遵循lock ordering,所以linux引用lockdep机制检查死锁。

2023-08-06 10:50:31 806 1

原创 Btrfs之NV(二):log root

如果采用cow,他需要等待所有线程都退出trans后将所有dirty data都落盘而不是只落盘inode,这样会导致fsync inode花费相当长的时间。所以在这种情况下Btrfs 会通过log_root进行journal的方式保证inode的一致性。

2023-07-28 13:46:51 209 1

原创 Btrfs之NV(一):COW

Btrfs采用了两种方法:COW和,保证磁盘能够在断电之后保证数据的一致性,以防止super或者meta_data数据被破环而导致整个文件系统的崩溃。

2023-07-28 13:43:29 436 3

原创 Btrfs之RAID(三):RAID应用

在Btrfs中由于Btree有着很好的扩展性,使得底层存储设备也能随之增添、移除或者替换。这些存储设备组成一个存储池,经过RAID抽象后供Btrfs使用。这会使得RAID在加快文件读写速度,设备失效后数据恢复的同时,也能使Btrfs在存储特性上更加。

2023-07-07 09:30:15 711 1

原创 文件的预读

为了优化读取文件的时间延迟,文件系统(FS)在去磁盘读取文件时会有一个read_ahead的动作。主要思路是:当FS发现用户读取文件是按照文件的顺序读取,FS就假定用户在下一次读取时大概率会读取下一个block。所以FS在把当前的block读取到内存后,会发送读取下一个block的命令,然后将当前block数据返回给用户。这样用户在处理数据的时候,磁盘IO也在并行的执行(如果是DMA的方式,磁盘IO在完成之后,会通过中断的方式告诉FS)

2023-06-12 08:52:40 309

原创 Btrfs之RAID(一):Chunk抽象和使用

将物理device抽象成上层逻辑chunk,让上层软件可以像访问数组一样访问device。这层封装既能并发的读写device,加快文件的读写速度;也能对device做备份,保证一定数量的device失效后数据仍然可以恢复。

2023-06-12 08:40:55 429

原创 Btrfs之RAID(二):RAID读写

Btrfs在读(__do_readpage)写(btrfs_writepages)文件时,会查询inode的逻辑地址到底层的映射(extent_map)。如果使用将device抽象成chunk,那么Btrfs在extent_map中查询到的是chunk的地址,所以需要RAID进一步将chunk的地址映射到device上,然后根据RAID类型对相应的device进行读写。

2023-06-12 08:34:27 412

原创 动态链接与可安装模块

动态链接与可安装模块

2022-07-10 15:34:13 614

原创 内存换出和缓冲区释放

linux2.4.0内存换出和缓冲区释放

2022-01-16 13:28:08 969

原创 C语言变参的实现

今天在群里突然看见有人询问printf的多个参数是怎么实现的,因为之前也没研究printf的源码,最近在研究linux,对这些底层实现比较感兴趣,所以研究了一下。1.普通传参的底层实现:1 将参数压入栈,call的函数通过读取栈中的数据进行传参,具体怎么调用2 参数通过寄存器传递,例如linux中的FASTCALL(eax edx ecx ...),inifinion单片机中参数传递(d2 d3 ...),这些都是编译器在汇编的时候约定好的。2....

2022-01-05 18:43:46 906

linux2.6.20内核网络协议栈流程图

1.文件可以通过Umlet打开 2.参考文档:Linux 内核源码剖析- TCP.IP 实现

2022-12-10

linux2.4.0流程图

1.文件可以通过Umlet打开 2.参考文档:Linux内核源代码情景分析 深入分析Linux内核源代码,主要是以第一本书为主。 3.这个流程图完全是通过看代码画出来的,没有经过任何调试,所以其中我的一些总结可能会有问题.

2022-01-05

linux0.11流程图

1.文件可以通过Umlet打开 2.参考文档:Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理 第2版 3.这个流程图完全是通过看代码画出来的,没有经过任何调试,所以其中我的一些总结可能会有问题.

2022-01-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除