初探Linux进程调度

已知:

父进程创建子进程后,父子进程同时运行

问题:

如果计算机只有一个处理器,父子进程以什么方式同时执行?

Linux 系统调度

内核具有进程调度的能力,多个进程可同时运行

微观上,处理器同一时间只能执行一个进程

同时运行多个进程时,每个进程都会获得适当的执行时间片

当执行时间片用完,内核调度下一个进程执行

进程调度原理

n 个进程 (n >= 2) 同时位于内存中

处理器执行每个进程,每个进程拥有一个时间片

时间片用完,通过时钟中断完成进程切换 (调度)

Linux 系统调度策略

普通调度策略

实时调度策略

如何验证 Linux 中的进程调度?

实验设计:

n 个进程同时运行,统计各个进程的执行时刻

进程运行方式:

每个 slice 时间记录如下值:进程编号,当前时间值,完成度

在 total 时间后结束运行,并输出记录的数据

通过记录的数据分析进程调度策略

实验中需要解决的问题

如何让进程每次 "固定" 工作 slice 时间 (单位毫秒)?

如何获取和改变进程的调度策略

如何记录数据并输出数据 (需要保存数据)?

如何图形化显示数据?

Linux 中的时间获取

"固定" 时间工作量估算

获取 / 改变 进程调度策略

chrt 命令简介

Linux 系统中可以使用 chrt 命令来查看、设置一个进程的优先级和调度策略

命令用法

  • chrt [options] [prio] [pid | command [arg]...]

主要参数

  • -p, --pid 操作一个已存在的 PID,不启动一个新的任务
  • -f, -fifo 设置调度策略为 SCHED_FIFO
  • -m, --max 显示最小和最大有效优先级,然后退出
  • -o, --other 设置调度策略为 SCHED_OTHER
  • -r, --rr 设置调度策略为 SCHED_RR

记录进程运行后产生数据

图形化数据显示与分析

相关推荐

  1. Linux- cron调度进程

    2024-01-02 11:34:01       9 阅读
  2. Linux进程初步理解

    2024-01-02 11:34:01       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-02 11:34:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-02 11:34:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-02 11:34:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-02 11:34:01       18 阅读

热门阅读

  1. GRU算法

    GRU算法

    2024-01-02 11:34:01      32 阅读
  2. ansible搭建和基本使用

    2024-01-02 11:34:01       42 阅读
  3. 数据库-期末考前复习-第1章-绪论

    2024-01-02 11:34:01       32 阅读
  4. React 实现 Step组件

    2024-01-02 11:34:01       44 阅读
  5. react怎么实现跨页面传参

    2024-01-02 11:34:01       40 阅读
  6. AtCoder Beginner Contest 297(A-E)

    2024-01-02 11:34:01       44 阅读