操作系统头歌 课后作业3.3:进程的调度

本文详细解析了Linux1.2内核的进程调度过程,包括从不同输出阶段的调度次数及原因,以及如何通过GDB调试跟踪和分析系统调用对调度的影响。还介绍了如何修改schedule函数以实现两个进程的严格交替输出。
摘要由CSDN通过智能技术生成

第1关:版本1.2内核的进程调度过程分析

本关任务回答问题: 1.从输出第 2 个字符1到输出第 3 个字符1,产生了几次调度?各调度的原因是什么? 2.从输出第 3 个字符1到输出第 4 个字符1,产生了几次调度?各调度的原因是什么? 3.从各进程的第二次循环开始,在一次循环期间,0 号进程会产生几次调度?1 号进程会产生几次调度?

相关知识

为了完成本关任务,你需要掌握: 1.Linux 0.11 的进程调度算法是怎样的; 2.如何跟踪到输出第 2 个字符1; 3.如何判断产生进程调度的原因; 4.如果发生由系统调用中的延迟调度产生的进程调度,如何分析具体是由哪个系统调用的执行引发的; 5.在执行一次 pause 系统调用时,可能引发几次进程调度。

编程要求

根据相关知识,修改版本 1.2 内核回答问题:(gdb 调试过程中输入单词请一次输入正确,如果字母输入错误请重新输入整条命令,否则会影响评测结果!!!) 通过 gdb 调试查找答案,将第三关的答案填写在/data/workspace/myshixun/第三关.txt中。 第一次由时钟中断引发进程调度时: 1.从输出第 2 个字符 1 到输出第 3 个字符1,产生了几次调度?各调度的原因是什么? 2.从输出第 3 个字符 1 到输出第 4 个字符 1,产生了几次调度?各调度的原因是什么? 3.从各进程的第二次循环开始,在一次循环期间,0 号进程会产生几次调度?1 号进程会产生几次调度?

测试说明

平台会对你的操作进行检测,同时会对文档的内容进行检测。请完成操作并且填写文档内容之后再点击评测。

第2关:两个进程的严格交替输出

相关知识

为了完成本关任务,你需要掌握: 1.Linux 0.11 的进程调度算法是怎样的; 2.如何判断产生进程调度的原因; 3.如果发生由系统调用中的延迟调度产生的进程调度,如何分析具体是由哪个系统调用的执行引发的; 4.在执行一次 pause 系统调用时,可能引发几次进程调度。

编程要求

根据相关知识,只修改版本 1.2 内核的 schedule 函数,使得 0 号进程和 1 号进程严格交替输出信息。

单独做没有环境的话:

接着第一关的环境:

打开vscode打开如下文件夹路径:

改成这样

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值