Linux 内核学习 -2. 过程的治理和调度(要点)
内核的工作
过程的治理和调度
过程优先级
过程优先级粗犷分为实时过程和非实时过程:
- 硬实时过程:有严格的工夫限度 /Linux 不反对硬实时 / 一些 linux 旁支版本 RTLinux 反对硬实时,次要起因是调度器没有做进内核中,内核作为一个独立的过程解决一些不仅要的工作。
- Linux 的工作优先满足吞吐量,所以弱化了过程调度。然而这些年人们也在升高内核提早下面做了很多钻研,比方提出可抢占机制、实时互斥内核锁还有齐全偏心调度器。
- 软实时过程:相似与写 CD 这种工作品种的过程,就算是写过程被临时中断也不会造成宕机之类的危险操作。
- 一般过程:没有具体的工夫束缚限度,然而会调配优先级来辨别重要性。
过程的生命周期
- 生命周期分为:运行、期待、休眠和终止。
- 过程的状态机由调度器来扭转状态。
- 不在于周期范畴内的过程:“僵尸过程”:子过程被 KILL 信号(SIGTERM 和 SIGKILL)杀死,父过程没有调用 wait4()。失常流程是,子过程被 KILL,父过程调用 wait4 零碎调用,告诉内核子过程已死。
-
处于僵尸过程状态过程:
- 还会在过程表中(ps/top 能刷出过程)
- 占用很少的资源
- 重启后能力刷掉该过程
-
抢占式多任务处理
- 过程执行分为内核态和用户态,最大区别在于,内存地址区域拜访划分不同。
- 进内核态办法一:如果用户态过程进入内核态:访问共享数据,文件系统空间,必须通过 零碎调用,能力进入到内核态。
- 进内核态办法二:中断触发进入内核态。
- 中断触发和零碎调用能够使用户态进入到内核态,但用户态是被动调用的,中断是内部触发的。
- 用户态 < 外围态 < 中断
-
过程抢占档次:
- 一般过程总会被抢占
- 如果