接下来我们将开始了解操作系统中最重要的概念——进程。正如书中所言,为进程给出一个确切的定义是十分困难的。
我们会不断的通过代码去了解进程,直到对其有一个较清晰的认识。
首先,要解决生存还是毁灭的大问题。即进程存在的标志是什么——我们怎末确定一个进程是否存在?
很简单,正如莱昂在书中强调的那样,每个进程都有其“私有的空间”——即PPDA所在的kernel page(kernel page #6)。
当分配了一个新的Kernel page #6(PPDA),则就诞生一个新进程。
除了PPDA外,系统还为每个进程准备了一个表格,即“进程描述表”,每个进程都将
占据其中一个表项。同PPDA不同,进程描述表是静态在数据结构,它常驻内存,不会被
swap出去。进程描述表在结构如下所示:
0358 struct proc
0359 {
0360 char p_stat;
0361 char p_flag;
0362 char p_pri; /* priority, negative is high */
0363 char p_sig; /* signal number sent to this process */
……
0371 char p_addr; /记录该进程“私有page”的开始