Basic Data Structures and Algorithms in the Linux Kernel
来源:互联网 发布:ppt mac破解版下载 编辑:程序博客网 时间:2024/06/05 21:08
原文地址:http://luisbg.blogalia.com/historias/74062#677101
linux 2.6 : https://github.com/wusuopubupt/linux-2.6
Thanks to Vijay D'Silva's brilliant answer in cstheory.stackexchange.com I have been reading some of the famous data structures and algorithms used in the Linux Kernel. And so can you.
- Linked lists, doubly linked lists, lock-free linked lists.
- B+ Trees with comments telling you what you can't find in the textbooks.
- Priority sorted lists used for mutexes, drivers, etc.
- Red-Black trees are used are used for scheduling, virtual memory management, to track file descriptors and directory entries, etc.
- Interval trees.
- Radix trees, are used for memory management, NFS related lookups and networking related functionality.
- Priority heap, which is literally, a textbook implementation, used in the control group system.
- Hash functions, with a reference to Knuth and to a paper.
- Some parts of the code, such as this driver, implement their own hash function.
- Hash tables used to implement inodes, file system integrity checks, etc.
- Bit arrays, which are used for dealing with flags, interrupts, etc. and are featured in Knuth Vol. 4.
- Semaphores and spin locks.
- Binary search is used for interrupt handling, register cache lookup, etc.
- Binary search with B-trees.
- Depth first search and variant used in directory configuration.
- Breadth first search is used to check correctness of locking at runtime.
- Merge sort on linked lists is used for garbage collection, file system management, etc.
- Bubble sort is amazingly implemented too, in a driver library.
- Knuth-Morris-Pratt string matching.
- Boyer-Moore pattern matching with references and recommendations for when to prefer the alternative.
0 0
- Basic Data Structures and Algorithms in the Linux kernel
- Basic Data Structures and Algorithms in the Linux Kernel
- Basic Data Structures and Algorithms in the Linux Kernel--reference
- Algorithms and Data Structures: The Basic Toolbox
- Basic Structures and Algorithms
- Data Structures and Algorithms in Java
- Data Structures and Algorithms in Java
- Sesing the Data Structures & Algorithms in Java
- Data Structures and Algorithms
- Data Structures and Algorithms
- Data Structures and Algorithms Using Visual Basic.NET
- Sams Teach Yourself Data Structures and Algorithms in 24 Hours
- Data Structures & Algorithms in Java
- Algorithms and Data Structures: The Science of Computing
- The Tomes of Delphi: Algorithms and Data Structures
- BASIC DATA STRUCTURES IN C++
- 基于Problem Solving with Algorithms and Data Structures using Python的学习记录(3)——Basic Data Structures
- Data Structures & Algorithms in Java ---- Arrays
- shell脚本执行返回的状态码
- JAVA的StringBuffer类用法
- 网站访问量可视化
- Python爬虫整理(二)
- Oracle trunc()函数的用法
- Basic Data Structures and Algorithms in the Linux Kernel
- c#中list使用示例
- MYSQL mysql 无法创建外键约束 及 errno: 121错误
- iPhone程序开发 KVO/KVC实现机理分析
- error: relocation R_X86_64_32S against `vtable for hit' can not be used when making a shared object
- Keil、uVision、RealView、MDK、Keil C51之间的区别比较
- 典型递归问题
- 找不到servlet包
- 成为IT精英,我奋斗了7年