linux内存管理——kmalloc和vmalloc

进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址是物理内存映射区域(该区域中包含了内核镜像、物理...

2016-09-23 15:26:35

阅读数:240

评论数:0

linux进程调度

进程从非TASK_RUNNING状态变为TASK_RUNNING状态,是由别的进程(也可能是中断处理程序)执行唤醒操作来实现的。执行唤醒的进程设置被唤醒进程的状态为TASK_RUNNING,然后将其task_struct结构加入到某个CPU的可执行队列中。于是被唤醒的进程将有机会被调度执行。 ...

2016-09-10 18:42:07

阅读数:155

评论数:0

IO模型(select, poll, epoll的区别和原理)

参考http://blog.csdn.net/blueboy2000/article/details/4485874 参考http://blog.csdn.net/suxinpingtao51/article/details/46314097 参考《unix网络编程》 五种I/O模型 阻塞...

2016-09-08 11:28:18

阅读数:2788

评论数:1

内核页表和进程页表

初学内核时,经常被“内核页表”和“进程页表”搞晕,不知道这到底是个啥东东,跟我们平时理解的页表有和关系。。 内核页表:即书上说的主内核页表,在内核中其实就是一段内存,存放在主内核页全局目录init_mm.pgd(swapper_pg_dir)中,硬件并不直接使用。 进程页表:每个进程自己的页表,放...

2016-09-07 15:52:57

阅读数:513

评论数:0

排序算法的总结

每种排序的总结见http://www.cnblogs.com/gaochundong/p/comparison_sorting_algorithms.html#intro_sort 内省排序(Introsort)是由 David Musser 在 1997 年设计的排序算法。这个排序...

2016-09-06 21:24:47

阅读数:138

评论数:0

B树、B+树和B*树

参考http://blog.csdn.net/v_july_v/article/details/6530142 大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁...

2016-09-04 12:03:17

阅读数:257

评论数:0

linux中process, kernel thread, user thread的区别

进程的contex switch开销较大:因为需要change 地址空间,但change address space is simply a register change in the CPU?改变页表寄存器中的地址即可啊,为什么开销大呢,其实是因为需要"flusing the tra...

2016-09-03 10:24:25

阅读数:1434

评论数:0

Linux内核同步方式总结

阅读《深入理解linux内核》笔记 内核抢占:如果进程正在执行内核函数时(即它在内核态运行时),允许发生内核切换(被替换的进程是正在执行内核函数的进程),这个内核就是抢占的。 运行在内核态的进程可以自动放弃cpu,称为计划性进程切换,抢占式内核中,进程被迫放弃CPU,称为强制性进程切换。抢占内核的...

2016-09-02 21:49:20

阅读数:1111

评论数:0

死锁及其解决方案(避免、预防、检测)

死锁的产生的条件

2016-09-02 11:00:14

阅读数:4234

评论数:0

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