Linux内核工程导论——数据结构:其他
来源:互联网 发布:下载windows系统的网站 编辑:程序博客网 时间:2024/06/05 19:02
KFIFO
缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,B每次冲缓冲区中取。这是典型的生产者和消费者模型,缓冲区中数据满足FIFO特性,因此可以采用队列进行实现。Linux内核的kfifo正好是一个环形队列,可以用来当作环形缓冲区。生产者与消费者使用缓冲区如下图所示:
优先级堆
位数组bitmap
位数组叫做bitmap,是以位为单位存储值的方式。很多情况下,一些值只有两个取值,而这些值又很多,就可以用位数组,也可以看成是bool类型的数组,但是提供了更多的相关操作。
位数组可以用来执行排序算法,利用的就是数组中的索引值,对某个索引值进行设置1,就表示记录,然后顺序输出索引值就是排序后的结果。更多的,位数组用在文件系统中充当位图。几乎大部分的文件系统都有位图的概念,例如ext2中就有inode位图和数据块位图,用来表示对应序号的inode或者数据块有没有被使用。还有在raid系统中,例如raid1的数据一致性保障,由于系统有两份拷贝,不一致的情况就有可能发生,当保证一致时就会设置对应的位图位。如此后续的更新都是增量的,只需要查看位图就知道哪些是未能保证一致的数据。
llist
0 0
- Linux内核工程导论——数据结构:其他
- Linux内核工程导论——数据结构:树
- Linux内核工程导论——前言
- Linux内核工程导论——进程
- Linux内核工程导论——UIO
- Linux内核工程导论——数据结构:链表与哈希
- Linux内核工程导论——内核调试
- Linux内核工程导论——网络:内核特性
- Linux内核工程导论——如何贡献内核代码
- Linux内核工程导论——内核架构概览
- Linux内核工程导论——内核种类
- Linux内核工程导论——Linux的启动
- Linux内核工程导论——总线:Linux PCI
- Linux内核工程导论——内存管理(一)
- Linux内核工程导论——内存管理(二)
- Linux内核工程导论——内存管理(三)
- Linux内核工程导论——CGroup子系统
- Linux内核工程导论——基础架构
- javascript事件冒泡
- BitmapFactory.decodeFile内存溢出和变相解决方案
- 基于nginx tomcat redis分布式web应用的session共享配置
- leetcode题目:Word Pattern (Javascript版)
- C++学习---析构函数-2
- Linux内核工程导论——数据结构:其他
- MySQL 5.7并行复制实现原理与调优
- PHP 实现MySQL事务操作
- apex:dataTable
- iptables的interface更新
- android应用框架搭建------AppManager
- 数字证书及CA的扫盲介绍
- 扒一扒HTTPS网站的内幕
- 关于意见反馈