> # ♻️ 资源
> **大小:** 386KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010769**](https://www.yuque.com/sxbn/ks/100010769)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87450278**](https://download.csdn.net/download/s1t16/87450278)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 基于C语言处理机调度算法的实现
## 实验目的
了解操作系统处理机调度的基本概念,处理机调度程序的功能,常用的处理机调度算法。C 或 C++ 编程方法与语句格式
## 实验内容(应包括实验题目、实验要求、实验任务等)
**实验题目:**
处理机调度算法的实现
**实验要求:**
1.设定系统中有五个进程,每一个进程用一个进程控制块表示。
\2. 输入每个进程的“优先数”和“要求运行时间”,
3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。
\4. 处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。
5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。
6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
**实验任务:**
实现动态优先数调度算法
**步骤:**
(1) 假定系统有 5 个进程,每个进程用一个 PCB 表示,格式为:
进程 id:可以为字符串
时间 time:进程需要运行的单位时间数
优先数 pty:赋予进程的优先数,调度时总是选取优先数大的进程先执行
状态 is_end:未结束(N),结束(Y)。未结束的进程为就绪态
就绪队列用 PCB 数组 proc 表示。proc[0]为队列的头部,proc[QLen-1]为队列的尾部。
(2)输入 PCB 信息后,将进程在数组中按优先数排序,将首进程运行一个时间片后,再调整进程的顺序,模拟队列的变化情况
(3)设计测试数据,分析程序运行情况,并进行调试
**算法描述:**
(1)输入每个进程的 PCB 信息,同时确定就绪队列的长度 Qlen
(2)按优先数大小,用冒泡排序将未结束的进程进行排序
(3)显示 PCB 数组
(4)若 proc[0].time!=1,选中首进程,执行一个时间片,即运行时间减 1,优先数减 1。
然后将 PCB 数组按优先数大小调整顺序
(5)若 proc[0].time==1,选中首进程,执行一个时间片,即运行时间减 1,优先数减 1。
然后再将 PCB 数组按优先数大小调整顺序,同时将 QLen 减 1
(6)若 Qlen==0,则就绪队列为空,结束。否则重复(3)
**流程:**
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979086-536f8f74-380e-4b66-b4bc-20ce24807e6b.png#averageHue=%23f4f4f4&from=url&id=IYN9i&originHeight=419&originWidth=666&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
测试结果:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979165-33d5f6ef-6ea5-4350-bddd-828276508d94.png#averageHue=%23181818&from=url&id=YeLJW&originHeight=739&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979242-b7c89949-2b31-4d1c-bde0-b7f3d28c3dee.png#averageHue=%23191918&from=url&id=OX2vN&originHeight=739&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979308-9d48227c-9bc9-4635-8aa6-3322f6d14724.png#averageHue=%23191818&from=url&id=XWR5M&originHeight=739&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979391-7910f624-d1c5-46d9-a438-e6cdc6fef221.png#averageHue=%23191818&from=url&id=Dkthn&originHeight=739&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560979482-19d55e53-a9e7-4a06-b531-19b70226b0af.png#averageHue=%23191818&from=url&id=L21RT&originHeight=739&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言处理机调度算法的实现【100010769】
共20个文件
pdb:2个
class:2个
cpp:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 99 浏览量
2023-02-14
11:11:09
上传
评论 1
收藏 386KB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010769 处理机调度算法的实现 1.设定系统中有五个进程,每一个进程用一个进程控制块表示。 2. 输入每个进程的“优先数”和“要求运行时间”, 3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。 4. 处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。 5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。 6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
资源推荐
资源详情
资源评论
收起资源包目录
100010769-基于C语言处理机调度算法的实现.zip (20个子文件)
tjut_projects
Priority_2_Java
Priority_2.class 3KB
Priority_2.java 2KB
PCB.class 275B
实验报告1.doc 278KB
LICENSE 1KB
Priority_2_CPP
Priority_2.dsp 3KB
Priority_2.dsw 499B
Priority_2.plg 695B
Priority_2.opt 48KB
Priority_2.cpp 2KB
Priority_2.ncb 41KB
Debug
Priority_2.ilk 331KB
vc60.pdb 52KB
Priority_2.obj 6KB
Priority_2.exe 160KB
Priority_2.pdb 433KB
vc60.idb 41KB
Priority_2.cpp 2KB
Priority_2.java 2KB
README.md 5KB
共 20 条
- 1
资源评论
神仙别闹
- 粉丝: 2705
- 资源: 7631
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功