相关的系统调度
- fork(): 用于创建进程,Linux中进程的创建者与被创建者是父子关系
- clone():克隆,真正实现创建进程的操作,fork()是不带参数的,clone()是带参数的,通过不同的参数后,可以不仅仅做fork(),也能做其他的创建进程的方式
- exec():加载外部存储器的一段代码,把一个可执行文件,加载到当前的进程执行环境中。往往是和fork()和clone搭配使用的。
- exit():退出;进程生命周期结束就会执行exit(),消亡时exit()会把这个信息通知父进程,父进程根据这些信息做出相应的反映。
- wait4(): 子进程的运行情况需要通过一些方式将信息反馈给父进程,这个系统调用和反馈信息密切相关;等待相应的子进程反馈相应的数据状态信息
- waitpid():同上
进程描述符
进程描述符是用来在操作系统中标识一个进程的
slab机制
slab机制的linux进行进程描述符分配的一种机制。
比如土司面报被切成很多片,每一块就是slab.
内存区间通过动态分配机制分配下来,这个区间按照一定的结构尺寸切成若干份,在使用时就在若干份存储区间中去申请,每次去分配一块,每块对应的就是具体应用的数据结构的尺寸;应用在进程描述符时,每个slab的尺寸就是进程描述符的尺寸。
Linux为什么用这种机制而不是使用动态分配内存呢?
针对资源要被频繁使用归还的使用slab机制就可以提升很大的效率
分配进程描述符
2.6内核之前,在每个进程内核栈末端来分配。