• 2019-2020-1 20199302《Linux内核原理与分析》第九周作业


    一、进程调度的时机

    硬中断和软中断

    中断:程序执行过程中的强制性转移到操作系统内核相应的处理程序,起到切出指令流的作用。
    中断处理程序:与进程无关的内核指令流。
    进程切换:切换两个进程的内核堆栈。
    硬中断:CPU两根引脚,检测电平高低,以确定有无中断请求。
    软中断/异常:特殊情况导致的异常导致程序无法继续执行。 故障,退出,陷阱

    进程调度时机

    schedule函数:进程主动调用、松散调用

    上下文

    CPU状态:

    运行于用户状态:执行用户进程上下文
    运行于内核状态:内核线程上下文或者中断上下文

    内核进程以进程上下文的形式运行在内核空间,可以调用内核代码。

    进程调用时机

    用户进程通过特定的系统调用主动主动调用CPU
    中断处理程序在内核返回用户态时进行调度
    内核线程主动调用schedule函数让出CPU
    中断处理程序主动调用schedule函数让出CPU

    linux系统在用户态实现的线程库pthread是通过在内核中多个进程共享一个地址空间实现的。

    调度策略与算法

    进程的分类

    分类1

    I/O消耗进程:CPU负载小,大量时间等待读写数据。
    CPU消耗型进程:CPU占用率为100%

    分类2

    交互式进程:大量人机交互,进程不断睡眠,要求系统响应时间快。(完全公平)
    批处理进程:占用大量系统资源(完全公平)
    实时进程(linux采用FIFO或者时间片轮转调度策略)

    调度策略

    linux中优先级0-139,实时进程处于0-99,普通进程在100-139。子进程会继承父进程的优先级
    实时进程:SCHED_FIFO SCHED_RR 优先级静态设定
    普通进程:SCHED_NORMAL 按照优先级占不同比例来占用时间,CPU时间占比会根据系统负载的变化而变化。

    CFS调度算法

    基于权重的动态优先级调度算法
    其核心思想

    1、调度周期:进程越多,调度周期越长
    2、理论运行时间:进程获取CPU后最长可占用时间为理论运行时间
    3、虚拟运行时间:每次从运行队列中拥有最小虚拟运行时间的进程来执行

    进程上下文

    进程执行环境的切换

    恢复进程执行前必须装入寄存器的一组数据,称为硬件上下文
    进程切换:

    切换全局目录
    切换内核态堆栈和硬件上下文

  • 相关阅读:
    线程、进程、死锁
    堆和栈的区别
    用winrar解压时提示无法设置安全数据 拒绝访问的解决方法
    句子迷
    【Sublime Text3】sublime 推荐必备插件与常用快捷键说明
    【计算机科学】知乎上关于计算机科学、程序语言一些有用的回答~(不定期更新)
    【SQL 函数】日期函数、类型转换、字符串函数
    【Sql Server函数】日期时间函数、日期查询今天、昨天、7天内、30天的数据
    【JAVA环境配置免安装】如何由jdk的安装版本改成非安装版本
    【SQL 社区】一些有用的SQL社区!(持续更新~~)
  • 原文地址:https://www.cnblogs.com/eosmomo/p/11865025.html
Copyright © 2020-2023  润新知