三千大世界,五千小世界,却是由生命组成 - XXXX
进程类似于人类,它们被产生,有或多或少的有效生命。可以产生一个或者多个子进程,最终都要走向”死亡”。为什么说进程是操作系统的灵魂?因为它之于操作系统就犹如生命对于自然,犹如人之于家。
一、透过现象看本质
从用户程序的角度看,进程就是一次运行活动,是程序的执行实体!
从内核的角度看,进程就是担当分配系统资源(CPU资源时间,内存,位置等)的实体,页被称之为任务/线程!
下面我们主要在内核的角度去探索进程。
1、概念
当一个进程被创建的时候,它会继承(拷贝)父进程的内容信息,虽然父子进程可以共享程序代码之间的页,但是始终不要忘记父子毕竟是两个实体,故而它们都拥有自己独立的空间!那就意味着子进程对一个内存单元的修改,父进程是可不见的。反之亦然!
线程呢又是进程的组成单元,在现代操作系统上,一个进程必然是由好几个线程组成的!线程是进程的执行流。
2、轻量级进程
轻量级进程是一种对多线程支持的库,两个轻量级进程基本上可以共享一些资源,诸如地址空间,打开的文件等!只要其中一个改变内容,两一个立马就会看到这种修改!而后执行一个同步!
3、进程描述符
很形象的一个词语,描述符即描述一组对象的符号简称!
内核在某一时间需要知道某一个进程的一些状态,比如想知道进程的优先级,进程的状态,进程是否占用很多内存,允许它可以访问的文件啊等等!很多可以被描述出来的东西!
4、进程描述符的处理
一个进程的生命周期可能是1s,也可能是一天/一月/一年!而内核需要处理N多个这样的进程。既然每个进程都是一个实体,那么反之也就是每个进程都被动态嵌入到一块内存地址的(线性/物理地址可能是连续,也肯不连续)空间(32位一般位于3GB之上),我们称之为动态内存。对于每个进程而言,内核把两个不同的数据结构紧凑的放在一个单独为进程分配的存储区域,一个是内核