试验一进程控制与处理机调度综合试验_第1页
试验一进程控制与处理机调度综合试验_第2页
试验一进程控制与处理机调度综合试验_第3页
试验一进程控制与处理机调度综合试验_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、实验一进程控制与处理机调度综合实验一、实验目的通过模拟进程控制方法及单处理机系统的进程调度,了解进程的结构,进程的创建与撤消,进程的组织及进程的状态及其转换,掌握进程调度策略。二、实验内容本实验为单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS(先来先服务),SPF (短进程优先),RR (时间片轮转法),优先级算法等,模拟进行进程调度。每进行一次调度,都打印一次运行进程、就绪队列、以及各个进程的PCB并能在进程完成后及时撤消该进程。三、算法描述1进程及进程的运行状态进程是现代计算机中的

2、基本要素,是系统分配资源和调度的基本单位。进程与程序不同, 进程是系统中动态的实体,有它的创建、运行和撤销的过程。PC破是系统感知进程存在的唯一实体。进程的创建必须首先创建进程的pcbm而进程的运行也伴随着 pc破的变化,进城撤销也要同时撤销它的PCBM所以本实验的任务就是通过模拟调度进程的PCB块来调度进程。 进程的PCBtfe包含以下四方面的内容: a)进程标示符 b)处理及状态信息 c)进程调度信息 d)进程控制信息 进程在运行中存在三种基本状态,分别是运行状态、就绪状态和阻塞状态。2进程调度一个运行进程的时间片用完或发生阻塞时,系统就会选择一个就绪进程调度执行。进程的调度算法有很多如

3、FCFS SPF、优先级调度和时间片轮转方法。进程调度算法模拟试验就是通 过调度进程的PCB块来模拟调度进程。在系统中PCB块就表现为一个结构体,PCB块之间的连接方式存在两种,一种是连接方式,一种是索引方式。本试验中可选择任意一种连接方式。3例程设计一个有N个进程共行的进程调度程序。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。每个进程有一个进程控制块(PCB表示。进程控制块可以包含如下信息:进程名、优先数、 到达时间、需要运行时间、已用 CP叫间、进程状态等等。进程的优先数及需要的运行时间 可以事先人为地指定 (也可以由随机数产生)。进程的到达时间为进程输

4、入的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F (Finish )三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占 用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU寸间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1 (即降低一级),然后把它插入就绪队列等待 CPU每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。调

5、度算法的流程图如下:初始化进程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->su

6、per)>(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"#defin

7、e 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.退出 *&

8、quot;<<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<

9、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<&l

10、t;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

11、()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(jobli

12、neb.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<

13、<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;七、实验出现的问题及其解决方案编写程序过程中,没有思路,在冯慧媛同学的指导帮助下,终于理清楚了思路,顺利 的完成了这第一次的实验报告。八、实验感想通过这第一次的软件工程实验, 通过模拟进程控制方法及单处理机系统的进程调度, 了解进程的结构,进程的创建与撤消, 进程的组织及进程的状态及其转换,我

温馨提示

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

评论

0/150

提交评论