多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
先不提出我的观点,先来一段出自《莱昂氏UNIX源代码分析》中对进程的描述:(纯手打,买的盗版书,不清晰,因为已经绝版了) >提出一种广为接受的“进程”定义是极其困难的。这与请哲学家回答“什么是生命?”这样的难题类似。如果我们不是钻在某些牛角尖里,那么面临的其他问题就比较容易解决。 前面已经给出了进程的定义,“正在执行的一道程序”,这在相当范围内是一个不错的定义。但是,对于#0进程的整个生命周期和#1进程的开始阶段,该定义却并不合适。系统中的所有其他进程则清清楚楚地与程序文件中的某一个或几个相关。 可以分成两个层次对操作系统进程进行讨论。 在较高的层次上,“进程”是一个重要的组织概念,用其说明一个计算机系统作为一个整体的活动。将计算机系统视作若干进程的组合活动是适当的,每一个进程与一道特定的程序相结合,例如“shell”或者“编辑程序”。里奇和汤姆森的论文“The UNIX Time-sharing System”的后半部分就在此层次上对UNIX进行了讨论。 在这一层次上,进程本身被视作系统中的活动实体,而真正活动部件本体,即处理机和外部设备则被消隐,不引起人们的注意。进程诞生、生长,然后死亡;它们存在的数量在不断变化;它们可以获得并释放资源;它们可以交互作用、合作、冲突、共享资源等等。 在较低层次上,进程是不活动的实体,它们依靠活动实体,例如处理机才起作用。借助于频繁地使处理机从一个进程映像的执行切换到另一个,就可以产生一种印象:每一个进程映像都连续发生变化,这就导致较高层次上的解释。 我们现在所关心的是较低层次上的解释:进程映像(process image)的结构、执行的细节以及在进程之间切换处理机的方法。 根据书上的这段话,不难发现,在早期对进程的定义中,经常出现:生命周期,活动实体,它们等等描述生命的词汇。后来我有一次灵光乍现,想到英语单词中的“alive”:活着的; 活泼的。当初记这个单词就理解不了活泼。。因为这是描述化学反应的一个词,弄得我真是好生纠结。然后我带着这个疑问,又去看了一遍上文。结果我发现了一个有趣的现实例子: 在医院中,医生是如何对待垂死的病人的?每个人的脑海中肯定会有一个护士,拿着一张表,每时每刻去记录病人的呼吸频率,心跳节奏等等信息。当这些信息全为零时,是不是可以认为这个病人去世了? 那么,由这些信息组成的“物体”,我可不可以看成是生命? 然而进程映像,就是这样一个记录进程信息的“物体”(进程实体)。 那么,大家觉得进程何时更名为生命好?