版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6页共9页实验报告学院(系)名称:计算机与通信工程学院姓名宋雅楠学号20152578专业计算机科学与技术班级中加1实验项目实验一:处理机调度算法的实现课程名称操作系统课程代码0668036实验时间实验地点7-215批改意见成绩教师签字:实验内容:设定系统中有五个进程,每一个进程用一个进程控制块表示。输入每个进程的“优先数”和“要求运行时间”。为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。若某进程运行时间为零,则将其状态置为“结束”,且退出队列。运行所设计程序,显示或打印逐次被选中进程的进程名,以及进程控制块的动态变化过程。实验要求:详细描述实验设计思想、程序结构及各模块设计思路;详细描述程序所用数据结构及算法;明确给出测试用例和实验结果;为增加程序可读性,在程序中进行适当注释说明;认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;实验报告撰写要求结构清晰、描述准确逻辑性强;实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】#include<stdio.h>#include<sys/malloc.h>#include<stdlib.h>#defineNUM_OF_PROCESS
5/*
*进程控制块数据结构
*/typedefstruct__PCB__{
intpid;
//进程ID
intneed_time;
//进程需要的运行时间
intprior;
//进程优先级}PCB;/*
*链式队列结点
*存放一个PCB
*
和指向下一个PCB的指针
*/voidPrint_List_Queue(LIST_QUEUE*queue){
intsize=Size_Of_List_Queue(queue);
QUEUE_NODE*tmp=queue->front->next;
for(inti=0;i<size;++i){
printf("pid:%d,time:%d,prior:%d\n",tmp->data->pid,tmp->data->need_time,tmp->data->prior);
tmp=tmp->next;
}}/*
*模拟进程运行
*优先数-1
*需要时间-1
*/voidrun(PCB*pcb){
if(pcb->prior>0)
pcb->prior--;
pcb->need_time--;}/*
*判断进程是否运行完成
*是返回1
*否返回0
*/intIs_Finsihed(PCB*pcb){
return(pcb->need_time<=0);}/*
*进程调度
*/voidschedul(LIST_QUEUE*queue){
PCB*del=NULL;
printf("\n");
printf("P[%d]isrunning...",queue->front->next->data->pid);
printf("PID\tPrior\tTime\n");
printf("%d\t%d\t%d\n",
queue->front->next->data->pid,
queue->front->next->data->prior,
queue->front->next->data->need_time);
run(queue->front->next->data);
if(Is_Finsihed(queue->front->next->data))
{
printf("P[%d]isfinished!\n",queue->front->next->data->pid);
Out_List_Queue(queue,del);
free(del);
}
/*
*优先级发生变化,调整队列顺序
*/
Adjust_List_Queue(queue);}/*
*主函数
*/intmain(){
LIST_QUEUE
*process_pool=Init_List_Queue();
PCB
*pcb;
inti;
/*
*获取测试数据
*/
for(i=0;i<NUM_OF_PROCESS;i++){
pcb=(PCB*)malloc(sizeof(PCB));
pcb->pid=i+1;
printf("P[%d].prior=",i+1);
scanf("%d",&(pcb->prior));
printf("P[%d].needTime=",i+1);
scanf("%d",&(pcb->need_time));
In_List_Queue(process_pool,pcb);
free(pcb);
}
Adjust_List_Queue(process_pool);
/*
*进程调度
*/
while(!Is_Empty_List_Queue(process_pool))
{
schedul(process_pool);
}
//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年电容器用钽粉合作协议书
- 2024年年中国食品饮料项目发展计划
- 2024年有机肥料及微生物肥料合作协议书
- 2024年皮革、毛皮及其制品项目建议书
- 2024年旋片真空泵项目合作计划书
- 湘教版六年级上学期期末考试语文试卷C卷
- 父母感恩演讲稿合集10篇
- 励志的标语范文
- 给老师的一封感谢信4篇
- 初中物理提高题
- 餐饮业商铺租赁合同模板2024年
- 国开2024年秋《机电控制工程基础》形考任务1答案
- 2024年重庆市消防操作员《中级技能-监控方向》科目真题冲刺卷3月份B卷
- 少儿英语培训行业趋势预测及投资前景分析
- 2024年典型事故案例警示教育手册15例
- 2024年云南楚雄永仁县卫生健康系统紧缺人才招聘5人历年(高频重点复习提升训练)共500题附带答案详解
- 数据可视化的美学创新
- 兼职篮球教练劳务合同模板
- 中药学电子版教材
- 客室车门系统康尼车门结构原理
- 第四章 土地资源调查.ppt
评论
0/150
提交评论