当前位置: 首页 > news >正文

Linux(25)——进程调度

目录

一、Linux 进程调度:

二、进程优先级:

1、普通调度策略:

2、完全公平调度程序:

三、nice 值:

1、nice 值范围: 

2、nice 值修改权限:

(1)降低:

(2)升高:

3、查看 nice 值:

(1)top 命令:

(2)ps 命令:

4、启动具有不同 nice 值的进程:

(1)从命令行启动进程:

(2)使用 nice 命令启动进程:

5、更改现有进程的 nice 值:

(1)renice 命令:

(2)top 命令:


一、Linux 进程调度:

        现代计算机系统有一个共同点:需要运行的进程线程数量超出了其 CPU 的数量。

        通过使用 time-slicing(时间片)或 multitasking(多任务)的技术,Linux 和其他操作系统的进程调度程序可在每个 CPU 核心上的进程之间快速切换,从而给人一种有多个进程在同时运行的印象,以运行超出其处理单元数的进程。

二、进程优先级:

        进程优先级设置每个进程的重要性用户通过设置进程优先级,系统可以针对不同的进程,采用不同的调度策略。

        用户可为采用 SCHED_NORMAL 策略运行的进程指定相对优先级,优先级值即 priority 值,此值将映射到 nice 值

1、普通调度策略:

         系统上运行的大多数进程所使用的普通调度策略称为 SCHED_OTHER或 SCHED_NORMAL ,在此策略下运行的进程将被分配一个静态实时优先级0,以确保所有的系统实时进程优先级高于普通进程。

2、完全公平调度程序:

        完全公平调度程序CFS将等待 CPU 时间的进程组织到二进制搜索树中,而此二进制树的顺序受 nice 值影响。

         

三、nice 值:

1、nice 值范围: 

        对于任何进程,有 40 种不同级别的 nice 值可以设置,范围介于 -20(最高优先级)到 19(最低优先级)之间nice 值越高,表示的优先级越低(该进程更容易将其的 CPU 使用量让给其他进程);nice 值越低,表示的优先级越高(该进程更加不倾向于让出其 CPU )。

        默认情况下,创建进程时,进程将继承其父进程的 nice 值,通常为 0 。

注:如果不存在资源争用(例如,活动进程数少于可用 CPU 核心数)时,即使 nice 值高(优先级低)的进程也将使用尽可能多的 CPU 资源。

2、nice 值修改权限:

(1)降低:

        只有 root 用户可以降低进程的 nice 值。

注:1)此时进程将被重复放置在二进制树的较高位置,调用频率更高;

       2)若是在饱和系统上执行此操作,其他进程可用的总 CPU 时间将减少。

(2)升高:

        普通用户只能提高自己进程的 nice 值,使自己的进程更加友好。

3、查看 nice 值:

(1)top 命令:

        top 命令可通过交互方式查看和管理进程,可以查看 nice 值(NI)和 priority 值(PR)等内容。

注:nice 值 -20 映射至 PR 值时为 0 。

(2)ps 命令:

        ps 命令可列出所有进程,这些进程按照 nice 值降序排列。

注:1)在 CLS 列中,TS 表示时间共享(普通调度策略的另一名称)。其他 CLS 值( FF 表示先进先出、 RR 表示循环)表示实时进程;

       2)实时进程不分配 nice 值,如 NI 列中的短划线( - )。

4、启动具有不同 nice 值的进程:

(1)从命令行启动进程:

        从命令行启动进程时,进程将从启动它的 shell 进程那里继承 nice 值,通常,nice 值为 0 。

注:使用 ps 命令时注意使用 PID 选项以指定所请求的输出。

(2)使用 nice 命令启动进程:

        所有用户都可以使用 nice 命令来启动具有默认或更高 nice 值的命令,默认为 10。

        -n 选项可以设置特定的 nice 值

5、更改现有进程的 nice 值:

(1)renice 命令:

        用户通常使用 renice 命令来更改现有进程的 nice 级别。

(2)top 命令:

        用户也可使用 top 命令以更改现有进程的 nice 值,更改过程如下:

        在 top 交互式界面中,单击 r 键访问 renice 命令,此时输入进程 ID( PID )。

        然后输入新的 nice 值。

        使用 ctrl + c 退出 top 命令,查看此进程的 nice 值,确已更改。

相关文章:

  • SQL Server :可用性组 automatic seeding
  • Visual Studio Code配置自动规范代码格式
  • 大语言模型智体的综述:方法论、应用和挑战(上)
  • 随性研究c++-智能指针
  • 扫描仪+文档pdf编辑器+pdf格式转换器
  • 电力系统惯量及其作用解析
  • 移动端动态化建设的演进与实践:从技术革新到生态繁荣
  • DAY 33 leetcode 383--哈希表.赎金信 49--字母异位词分组
  • 如何本地部署RWKV-Runner尝鲜CPU版
  • odrive环境构筑问题
  • R语言绘图 | 使用scplotter包绘制细胞间通信图
  • 【超详细】一文解决更新澎湃2.0后LSPose失效问题
  • STM32 FATFS - 在flash上运行fatfs
  • 文章记单词 | 第15篇(六级)
  • Java笔记2——编程基础
  • 高效内存位操作:如何用C++实现数据块交换的性能飞跃?
  • STM32技能综合巩固
  • 使用 Vue 重构 RAGFlow 实现聊天功能
  • 第十二届蓝桥杯省赛软件类(cc++组)
  • 一场国际安全厂商的交流会议简记
  • 事关政府信息公开,最高法发布最新司法解释
  • 每一笔都是对的!再读周碧初画作有感
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 香港今年新股集资额已超600亿港元,暂居全球首位
  • 私家车跑“顺风”出事故,意外险赔不赔?
  • 墨西哥海军帆船纽约撞桥事故已致2人死亡19人受伤