日期:2014-05-16  浏览次数:20663 次

Linux内核设计与实现总结。

1.进程管理。

??????? 本章主要是介绍进程的一个静态的状态,包括系统如何组织进程。创建,启动,到最后死亡的一个概念性认识,没有更加深刻的知识。

2.进程调度。

????????本章比较重要。

???????????1.? 抢占式调度策略。

???????????2. 俩进程间上下文切换? 有俩函数 switch_mm 和 switch_to俩函数完成此功能。(具体细节需要阅读其他书籍)

?3.系统调用。

???????????1.系统调用处于进程上下文(此概念很模糊,大概的意思是说,内核代表进程在运行

???????????2.陷入内核 是一个重要的概念(如何重要,没有讲,知识说linux陷入内核特别快。)

? 4.中断和中断处理,以及下半部。(驱动程序一般分为上半部和下半部,讲得很浅薄

???????????? 1? .中断 不会被当前中断? 抢占(原因不详)

???????????? 2. 软中断不会被所有软中断抢占(原因不详)

? 5.内核同步(讲得很浅薄

????????????? 1.需要保护什么很重要也很难。一条规则是几乎所有的内核数据结构都需要加锁。【:只要别的代码能访问到】

????????????? 2.死锁。(悲催 十字路口车辆问题,都在等其他车,结果两辆车都走不动)

? 6.内核同步方法(想到特殊的volatile修饰符)

???????????? 1.原子操作

?????????????2.顺序性

???????????? 3.自旋锁

?????????????4.信号量

?????????????5.完成变量

???????????? 6.禁止抢占 来保持高效,(有时候不需要自旋锁(注解:本身会禁止抢占),只需要禁止抢占就够了)

???????????? 7.顺序和屏障

?7.内存管理

???????????? 1.MMU以page为单位进行管理

???????????? 2.三种区 DMA区(内存地址固定的硬件使用),普通区,高端内存(无法访问)

8.块I/O层,就是说 块设备

??????????? 1.块和扇区。块必须是扇区的大小(512Byte)的整数倍,但是小于页面大小。

???????????? 2.用bio来管理。

???????????? 3.电梯调度程序

9.进程地址空间

??????????? 1.代码段,数据段(已经初始化),未初始化的全局变量(0页)。

???????????? 2.进程的用户空间栈

??????????? 3.各种库的内存映射

??????????? 4.内存映射文件

??????????? 5.共享内存段

??????????? 6.malloc分配的匿名内存映射。

10.页高速缓存和页回写

??????????? 1.主要是缓存磁盘的。临时局部原理。

??????????? 2.同时也可以缓存 磁盘本身的IO缓冲区。

11.模块(未阅读)