模拟进程调度功能(操作系统原理实验)


0 💪实验目的

通过本实验,进一步掌握进程调度的功能和实现原理。


1 💪实验内容

  1. 设计进程调度功能,至少模拟两种以上调度算法。如:优先级调度算法、时间片调度算法等。

  1. 进程调度功能作为一个函数 scheduler,加入到实验题目一中。

  1. 进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。

  1. 若选上一个进程,以显示:进程名、状态、时间片、优先级等信息表示一个进程被执行。若运行完,应删除相应 PCB。


2 💪实验要求

  1. 在实验题目一中的主菜单中加入一个菜单项:6 调度,选择该菜单项后,系统进入进程调度。

  1. 进程调度的结构:


3 💪各功能简要说明

  1. 返回主菜单:当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。

  1. 优先级调度:选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行状态(将进程 PCB 的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的 PCB)

  1. 时间片调度:每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程的执行时间减去一个时间片,若某进程的剩余时间小于等于 0,则表明该进程运行结束,撤销该进程的 PCB。


4 💪实验代码


5 💪实验结果


6 💪实验总结

调试程序出现了下面的等诸多问题:

  1. 在写getch()函数时,系统报错

解决办法:缺少了#include<conio.h>头文件。

  1. 为了解决控制台杂乱的问题,我写了清屏函数,但是清屏函数的位置放错了。

解决办法:经过重新检查,放在了合适的位置,达到了预期的要求

  1. 在实现高优先权和时间片轮算法的过程中,代码运行出现了错误。

解决办法:通过翻书重新梳理两种算法的实现过程,然后,通过简要的梳理,重新分析了程序。

  1. 在写链表传递过程中,出现了错误。

解决办法:经过认真的分析,重新写代码,解决了这个问题。

  1. 在写创建进程函数时,未能按照要求实现

解决办法:根据老师所给的PPT,重新思考,重新写了代码,运行正确。


7 💪实验程序以及实验报告下载链接

操作系统原理实验:内含实验报告和实验视频希望能够给正在写实验报告的同学提供一定程度上的帮助如果需要讨论可以与我私信,相帮助-OS文档类资源-CSDN文库

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小航同学吖

制作不易,动动你的小手

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值