下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大讲呼0大孽试睑报告学院(系)名称:计算机与通信工程学院【试验过程纪录(源程序、测试用例、测试结果及心得体会等)】姓名********学号*********专业计算机科学与技术(中加)班级2022级1班试验项目试验一:处理机调度算法的实现课程名称操作系统课程代码0660076试验时间2022-5-51-6节试验地点主校区7-215批改意见成果老师签字:试验内容:.设定系统中有五个进程,每一个进程用一个进程掌握块表示。.输入每个进程的“优先数”和“要求运行时间”。.为了调度便利,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接状况。.处理机调度总是选队首进程运行。采纳动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。.若某进程运行时间为零,则将其状态置为“结束”,且退出队列。.运行所设计程序,显示或打印逐次被选中进程的进程名,以及进程掌握块的动态变化过程。试验要求:.具体描述试验设计思想、程序结构及各模块设计思路;.具体描述程序所用数据结构及算法;.明确给出测试用例和试验结果;.为增加程序可读性,在程序中进行适当注释说明:.仔细进行试验总结,包括:设计中遇到的问题、解决方法与收获等;.试验报告撰写要求结构清楚、描述精确规律性强;.试验过程中,同学之间可以进行争论相互提高,但肯定禁止抄袭。源程序:#include"stdio.h"#include<stdlib.h>#inckide<conio.h>#definegetpch(type)(typc*)malloc(sizeof(type))#defineNULLOstructpcb{/*定义进程掌握块PCB*/charname[10];charstate;intsuper;intntime;intrtime;structpcb*link;}*ready=NULL,*p;typedefstructpcbPCB;voidsort。/*建立对进程进行优先级排列函数*/(PCB*first,"second;intinsert=0;if((ready==NULL)||((p->super)>(ready->super)))/*优先级最大者,插入队首*/(p->link=rcady;ready=p;)else/*进程比较优先级,插入适当的位置中*/(first=ready;second=first->link;while(second!=NULL)(if((p->super)>(second->super))/*若插入进程比当前进程优先数大,*/{尸插入到当前进程前面*/p->link=second;first->link=p;second=NULL;insert=I;else/*插入进程优先数最低,则插入到队尾*/{first=first->link;second=second->〕ink;))if(insert==O)first->link=p;)voidinpul()/*建立进程掌握块函数*/(inti,num;system("cls");/*清屏*/printf("\n请输入进程数:");scanf("%d".&nuin);for(i=1;i<=num;i++){printf("\n进程号No.%d:\n”,i);p=getpch(PCB);printf("\n输入进程名:");scanf('<%s",p->name);printf("\n输入进程优先数。;scanf("%d",&p->supcr);printf("\n输入进程运行时间巧;scanf("%d",&p->ntimc);printf(,,\nu);p->itime=O:p->state='W';p->link=NULL;sort();/*调用sort函数*/intspace()(int1=0;PCB*pr=ready;while(pr!=NULL){1++;pr=pr->link;return(l);voiddisp(PCB*pr)/*建立进程显示函数,用于显示当前进程*/{printf("\n进程名\t状态\t优先数\t需要运行时间\t已经运行时间\n”);printf("|%s\t",pr->name);printf("|%c\t",pr->state);printf("|%d\t",pr->supcr);printf("|%d\t\l",pr->n(ime);pnntf("|%d\t",pr->rtime);printf("\n");voidcheck()/*建立进程查看函数*/(PCB*pr;printf("\n****当前正在运行的进程是:\n");/*显示当前运行进程*/disp(p);pr=ready;printf(-\n****当前就绪队列状态为:\n”);/*显示就绪队列状态*/\vhile(pr!=NULL){disp(pr);pr=pr->link;1voiddestroy。/*建立进程撤消函数(进程运行结束,撤消进程)*/(printf("\n进程[%s]已完成.\n",p->name);free(p);voidrunningO/*建立进程就绪函数(进程运行时间到,置就绪状态*/((p->r(ime)++;if(p->rtime==p->ntime)destroyO;/*调用destroy函数*/else(p->super)-;p->state='W';sort();/*调用sort函数*/voidmain。/*主函数*/{intlcn,h=0;charch;input();len=space();while((len!=O)&&(ready!=NULL)){ch=getchar();h++;printf("");printf("\n现在是第%(1次运行:\n",h);p=ready;ready=p->link;p->link=NULL;p->state="R";chcck();runningO;printf("\n按任意键连续……\n");printf("\n\n进程已经完成An");测试用例:亘C:\DocumentsandSettings'stuc请输入进程数:5进程号No.1:输入进程名:输入进程优先数:6输入进程运行时间进程号No.2:输入进程名>i2输入进程优先数:5输入进程运行时间:5进程号No.3:输入进程名:xi3输入进程优先数:4输入进程运行时间:4进程号No.4;输入进程名=xi4输入进程优先数:3输入进程运行时间:3进程号No.5:输入进程名:xi5输入进程优先数:2输入进程运行时间:2
测试结果:现在是第3次运行:****当刖正在建仃的进程是:进程名状态优先数需要运行时间己经运行时间:xil!R:5:6:1****当前就绪队列状态为-进程名状态优先数需要运行时间已经运行时间Sxi3!U:4:4:0进程名状态优先数需要运行时间己经运行时间!xi2:W:4:5:1进程名状态优先数需要运行时间己经运行时间!xi4:u:3:3:0进程名状态优先数需要运行时间已经运行时间!xi5!U:2:2:0按任意键继续现在是笫4次运行******当刖正在运行的进程是:进程名状态优先数需要运行时间已经运行时间ixi3:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺租赁合同书参考
- 离婚合同协议书离婚协议书合同2024年
- 四年级英语教学计划
- 餐厅经营许可协议
- 上海市房产竞价协议
- 工程材料租赁合同模板
- 山西省棉花订购协议
- 家用电器购销协议案例
- 兼职工作劳务协议书范本样式
- 中信保险公司财产一切险保险合同相关资料
- XX小学学生心理健康档案(一生一案)
- 地质勘探中的安全生产考核试卷
- 期中(1-4单元)(试题)-2024-2025学年六年级语文上册统编版
- 【八上沪科版数学】安徽省合肥市蜀山区名校2023-2024学年八年级上学期期中模拟数学试卷
- 评标专家库系统系统总体建设方案
- 人教版美术八年级上册 第一单元 第1课《造型的表现力》 教案
- 数学-湖湘名校教育联合体2024年下学期高二10月大联考试题和答案
- 2024年上海市教育委员会科技发展中心拟聘人员历年高频难、易错点500题模拟试题附带答案详解
- 创新实践(理论)学习通超星期末考试答案章节答案2024年
- 2024-2030年中国共享汽车行业市场深度调研及发展趋势与投资前景研究报告
- 2024-2030年中国门禁机市场发展趋势及前景运行战略规划报告
评论
0/150
提交评论