(27)本条目开始, 开始分析 copy_process () 函数,其又会调用别的函数,故先分析别的函数。 get_free_page () ;
先 介绍汇编指令 scasb :
以及 指令 sstosd :
以及 get_free_page 的源码注释:
(28) 接着介绍全局变量,指向当前进程的 task_struct 的指针 current :
(29) 接着介绍另一个全局变量 jiffies , 记录开机到现在的滴答数,每 10 ms :
(30) 接着介绍另一个函数 sched . h / get_limit ( 段选择子 ) , 返回选择子指定的段的段长度:
(31)再给出另一个函数 get_base ( 段描述符) 的源代码,计算段描述符中的基地址:
(32) 接着介绍生成 新进程的 TCB 中的 LDT 表中的描述符的函数 _set_base ( 描述符地址 , 段的基地址 ) :
(33)接着介绍页目录表和页表的属性位,这关系到为新进程创建页目录结构:
+
(34)
谢谢