Linux内核学习-2. 进程的管理和调度

Linux内核学习-2. 进程的管理和调度(要点)

内核的任务

进程的管理和调度

进程优先级

进程优先级粗暴分为实时进程和非实时进程:

  • 硬实时进程:有严格的时间限制/Linux不支持硬实时/一些linux旁支版本RTLinux支持硬实时,主要原因是调度器没有做进内核中,内核作为一个独立的进程处理一些不仅要的任务。
  • Linux的任务优先满足吞吐量,所以弱化了进程调度。但是这些年人们也在降低内核延迟上面做了很多研究,比如提出可抢占机制、实时互斥内核锁还有完全公平调度器。
  • 软实时进程:类似与写CD这种工作种类的进程,就算是写进程被暂时中断也不会造成宕机之类的风险操作。
  • 普通进程: 没有具体的时间约束限制,但是会分配优先级来区分重要性。

进程的生命周期

  • 生命周期分为:运行、等待、休眠和终止。
  • 进程的状态机由调度器来改变状态。
  • 不在于周期范围内的进程:“僵尸进程”:子进程被KILL信号(SIGTERM和SIGKILL)杀死,父进程没有调用wait4()。正常流程是,子进程被KILL,父进程调用wait4系统调用,通知内核子进程已死。
  • 处于僵尸进程状态进程:

    • 还会在进程表中(ps/top能刷出进程)
    • 占用很少的资源
    • 重启后才能刷掉该进程
  • 抢占式多任务处理

    • 进程执行分为内核态和用户态,最大区别在于,内存地址区域访问划分不同。
    • 进内核态方法一:如果用户态进程进入内核态:访问共享数据,文件系统空间,必须通过系统调用,才能进入到内核态。
    • 进内核态方法二:中断触发进入内核态。
    • 中断触发和系统调用可以使用户态进入到内核态,但用户态是主动调用的,中断是外部触发的。
    • 用户态 < 核心态 < 中断
  • 进程抢占层次:

    • 普通进程总会被抢占
    • 如果

你可能感兴趣的:(linux)