欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

试验一进程控制与处理机调度综合试验

  • 资源ID:53534693       资源大小:41.47KB        全文页数:5页
  • 资源格式: DOCX        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

试验一进程控制与处理机调度综合试验

实验一进程控制与处理机调度综合实验一、实验目的通过模拟进程控制方法及单处理机系统的进程调度,了解进程的结构,进程的创建与撤消,进程的组织及进程的状态及其转换,掌握进程调度策略。二、实验内容本实验为单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS(先来先服务),SPF (短进程优先),RR (时间片轮转法),优先级算法等,模拟进行进程调度。每进行一次调度,都打印一次运行进程、就绪队列、以及各个进程的PCB并能在进程完成后及时撤消该进程。三、算法描述1进程及进程的运行状态进程是现代计算机中的基本要素,是系统分配资源和调度的基本单位。进程与程序不同, 进程是系统中动态的实体,有它的创建、运行和撤销的过程。PC破是系统感知进程存在的唯一实体。进程的创建必须首先创建进程的pcbm而进程的运行也伴随着 pc破的变化,进城撤销也要同时撤销它的PCBM所以本实验的任务就是通过模拟调度进程的PCB块来调度进程。 进程的PCBtfe包含以下四方面的内容: a)进程标示符 b)处理及状态信息 c)进程调度信息 d)进程控制信息 进程在运行中存在三种基本状态,分别是运行状态、就绪状态和阻塞状态。2进程调度一个运行进程的时间片用完或发生阻塞时,系统就会选择一个就绪进程调度执行。进程的调度算法有很多如 FCFS SPF、优先级调度和时间片轮转方法。进程调度算法模拟试验就是通 过调度进程的PCB块来模拟调度进程。在系统中PCB块就表现为一个结构体,PCB块之间的连接方式存在两种,一种是连接方式,一种是索引方式。本试验中可选择任意一种连接方式。3例程设计一个有N个进程共行的进程调度程序。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。每个进程有一个进程控制块(PCB表示。进程控制块可以包含如下信息:进程名、优先数、 到达时间、需要运行时间、已用 CP叫间、进程状态等等。进程的优先数及需要的运行时间 可以事先人为地指定 (也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F (Finish )三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占 用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU寸间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1 (即降低一级),然后把它插入就绪队列等待 CPU每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。调度算法的流程图如下:初始化进程PCB输入进程信息各进程按优先数从高到低排列是运行进程的优先数减1把运行进程插入就绪队列图1-1流程图四、参考程序void sort()(PCB *first, *second;优先级最大者,插入队首*/int insert=0;if(ready=NULL)|(p->super)>(ready->super) /*(p->link=ready;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=1; else /*插入进程优先数最低,则插入到队尾*/first=first->link;second=second->link; if(insert=0) first->link=p; 五、选做题完成FCFS SPF算法。#include "string"#include "iostream"#define N 10using namespace std;struct Gzuo char Id;int Runtime;Gzuo joblineN;void Menu() cout<<"*欢迎使用作业调度模拟程序*"<<endl;cout<<"* a.输入 *"<<endl;cout<<"* b.FCFS *"<<endl;cout<<"* c.SJF *"<<endl;cout<<"* d.退出 *"<<endl;cout<<"请输入 ad:")void Input()(for(int b=0;b<N;b+)(cout<<" 作业编号(19,按0键结束):"cin>>joblineb.Id;if(joblineb.Id='0')break;cout<<"运行时间(单位为分钟):"cin>>joblineb.Runtime;)void FCFS()(int b=0,j,time=0;float t=0;(for(b=0;b<N;b+)(for(j=0;j<b;j+)(int temp;if(joblineb.Id='0')break;if(joblineb.Id>joblinej.Id)(temp=joblineb.Id;joblineb.Id=joblinej.Id;joblinej.Id=temp;temp=joblineb.Runtime;joblineb.Runtime=joblinej.Runtime;joblinej.Runtime=temp;)cout<<"FCFS 运行顺序是:”; for(int b=0;b<N;b+) cout<<joblineb.Id<<"")cout<<endl;for(b=0;b<N;b+) if (joblineb.Id = '0')break;cout<<joblineb.Id<<""for (j = 0; j <= b; j+)time+=joblinej.Runtime;) ) cout<<endl; cout<<"平均周转时间是:"<<time/b<<endl; )void SJF()void main()char n;while(1)Menu();cin>>n;switch(n)case 'a':Input();continue;case 'b':FCFS();continue;case 'c':SJF();continue;case 'd':exit(0);default:cout<<"输入错误,请重新输入"<<endl;continue;void SJF()int b=0,j,time=0;float t=0;(for(b=0;b<N;b+) (if(joblineb.Id='0')break;for(j=0;j<b;j+) (int temp;if(joblineb.Runtime<joblinej.Runtime) ( temp=joblineb.Id;joblineb.Id=joblinej.Id; joblinej.Id=temp;temp=joblineb.Runtime;joblineb.Runtime=joblinej.Runtime; joblinej.Runtime=temp; cout<<"SJF运行顺序是:"for(int b=0;b<N;b+) cout<<joblineb.Id<<""cout<<endl;for(b=0;b<N;b+) (if (joblineb.Id = '0')break; cout<<joblineb.Id<<"" for (j = 0; j <= b; j+) ( time+=joblinej.Runtime; cout<<endl;cout<<"平均周转时间是:"<<time/b<<endl;七、实验出现的问题及其解决方案编写程序过程中,没有思路,在冯慧媛同学的指导帮助下,终于理清楚了思路,顺利 的完成了这第一次的实验报告。八、实验感想通过这第一次的软件工程实验, 通过模拟进程控制方法及单处理机系统的进程调度, 了解进程的结构,进程的创建与撤消, 进程的组织及进程的状态及其转换,我对软件工程的实践有了更深的了解,单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。 实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS (先来先服务),SPF (短进程优先),RR (时间片轮转法),优先级算法等,模 拟进行进程调度。 每进行一次调度,都打印一次运行进程、 就绪队列、以及各个进程的 PCB 并能在进程完成后及时撤消该进程。相信通过努力我会更好的学习。

注意事项

本文(试验一进程控制与处理机调度综合试验)为本站会员(ai****ue)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!