初探Linux进程调度
2024-01-02 17:29:45
已知:
父进程创建子进程后,父子进程同时运行
问题:
如果计算机只有一个处理器,父子进程以什么方式同时执行?
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
记录进程运行后产生数据
图形化数据显示与分析
文章来源:https://blog.csdn.net/qq_52484093/article/details/135334461
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!