实验二模拟进程调度算法.doc_第1页
实验二模拟进程调度算法.doc_第2页
实验二模拟进程调度算法.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 模拟进程调度算法一、实验目的 1、为了更好的配合操作系统有关进程调度章节的教学。 2、加深和巩固学生对于进程调度的了解和掌握。 3、使学生通过本实验能够初步的了解和掌握进程调度的整个过程及常用算法。 4、提高学生的上机和编程过程中处理具体问题的能力二、实验内容1、学习进程调度的基本方法。2、学习时间片轮转调度算法、先来先服务算法、最短作业优先算法。3、画出调度图。4、试用c语言编写先来先服务算法调度算法。三、实验要求 实验课时2学时。要求画出进程调度图,并比较算法的性能。程序编写可选作。*编制先来先执行进程调度算法;注意:1、将算法中的相关的量定义在一个结构体中; 2、使用结构体数组存储参加调度的进程;3、编制算法是要确定终止进程的输入。#include /*定义一个进程*/struct pcb int id; int arr_time;/*到达时间*/ int req_time;/*进程执行时间*/ int end_time; int cir_time;/*进程周转时间*/;struct pcb p10,temp_p;/*定义结构体数组和变量*/int q;int num,sum_cir_time;/*定义进程周转时间*/main() int i,j; for(i=0;i10;i+) pi.id=999; pi.end_time=0; pi.cir_time=0; printf(nPlease input Process info:id,arr_time,req_timen); for(i=0;i10;i+) scanf(%d,%d,%dn,&pi.id,&pi.arr_time,&pi.req_time); if (pi.id=-999) pi.id=999;break; for (i=0;i9;i+) for (j=i+1;jpj.arr_time) temp_p=pi; pi=pj; pj=temp_p; sum_cir_time=p0.arr_time; num=0; for(i=0;i10;i+) if (pi.id999) num+;/*如果ID999,则总进程数+1*/ sum_cir_time=pi.req_time + sum_cir_time; pi.end_time=sum_cir_time; pi.cir_time=pi.end_time-pi.arr_time; for(i=0;i10;i+) printf(%5d%9d%9d%9d%9dn,pi.id,pi.arr_time,pi.req_time,pi.end_time,pi.cir_time); sum_cir_time=sum_cir_time-p0.arr_time; printf(Schedule Result:n); printf(id arr_time req_time end_time cir_time:n); for(i=0;i10;i+) if (pi.id999) printf(%5d%9d%9d%9d%9dn,pi.id,pi.arr_time,pi.req_time,pi.end_time,pi.cir_time); printf(Total Cir_t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论