1.进程死亡后变为僵尸进程的原因
Linux和UNIX总有着剪不断理还乱的亲缘关系,僵尸进程的概念也是从UNIX上继承来 的,而UNIX的先驱们设计这个东西并非是因为闲来无聊想烦烦其他的程序员。僵尸进程中保存着很多对程序员和系统管理员非常重要的信息,首先,这个进程是 怎么死亡的?是正常退出呢,还是出现了错误,还是被其它进程强迫退出的?其次,这个进程占用的总系统CPU时间和总用户CPU时间分别是多少?发生页错误 的数目和收到信号的数目。这些信息都被存储在僵尸进程中,试想如果没有僵尸进程,进程一退出,所有与之相关的信息都立刻归于无形,而此时程序员或系统管理 员需要用到,就只好干瞪眼了。
2.执行程序分为fork()与exec()
在运行程序的系统调用的过程中,不需要详细说明新程序环境中的每一个细节,新程序只运行于他们所在的环境。如果父进程想要修改新程序运行的环境,它可以派生一个新进程,然后在子进程中继续运行原先的程序,在最终新程序运行前使用系统调用来修改子程序。
3.C语言中i++与++i
PDP-11所使用的指令集结构影响了C语言的语法。例如在c语言中,有着暂存器定址模式的增值与减值语法 ++i 与 i–。 如果 i 与 j 都是暂存器变数,那么 (–i) = (j++) 这样子的表示式就可以编译为单一机器码指令。由于对单精确与双精确浮点数没有不同的运算码,也造成C语言中缺乏单精确浮点数运算的运算模式。