实验二进程调度
更新时间:2023-09-26 14:20:01 阅读量: 综合文库 文档下载
实验二、进程调度实验
【实验目的及要求】
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。要求选做实验内容中的一题。
【实验环境】
编程环境:Visual C++6.0环境下的C语言 操作系统软件:windows XP
【预习要求】
按照实验要求事先编好程序; 准备好需要输入的中间数据; 估计可能出现的问题; 预计可能得到的运行结果。
【实验内容】 实验题目:(3选一)
1、 设计一个先来先服务调度的算法。 提示:
(1) 假设系统有5个进程,每个进程有一个进程控制块
来标示。进程控制块内容有:
进程名 连接指针 到达时间 估计运行时间 进程状态 进程明:进程表识
链接指针:按照进程到达系统的时间将处于就绪状态的进程连接成一个就绪队列。指针指出下一个到达进程的进程控制块首地址。最后一个进程的连接指针为NULL。
估计运行时间:可由设计者任意指定一个时间值。
到达时间:进程创建时的系统是进或由用户指定。调度时,总是选择到达时间最早的进程。
进程状态:为简单起见,这里假定进程有两种状态:就绪和完成。并假定进程一创建就处于就绪状态,用 R表示。当一个进程运行结束时,就将其置成完成态,用C表示。
(2) 设置一个对手指针head用来指出最先进入系统的进
程。各就绪进程通过连接指针连在一起。
(3) 处理机调度时总是选择队首指针指向的进程投入运
行。由于本试验模拟试验,不失实际启动运行而是估计运行时间减一。省去进程的现场保护和恢复
(4) 在所设计的程序中应有显示和打印语句,能显示或打
印正运行进程的进程明、已运行时间、还剩时间、就绪队列中的进程等。所有进程运行完成时,给出各个进程的周转时间和平均周转时间。
2、 设计一个优先(权)级调度的算法。 3、 设计一个按时间片轮转法调度的算法
? 例题程序实验内容
1、设计一个有 N个进程共行的进程调度程序。
2、编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对3个进程进行调度。
【算法描述及实验步骤】
算法描述:
进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所有进程都完成为止。
“最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。
【调试过程及实验结果】 【总结】
例题:实验1【程序清单】//优先权调度算法
#include \#include
#define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0
struct pcb /* 定义进程控制块PCB */ {
char name[10]; char state; int super; int ntime; int rtime; struct pcb* link;
}*ready=NULL,*p; //P指针指向当前要插入的进程节点 typedef struct pcb PCB;
sort() /* 建立对进程进行优先级排列函数,优先级最大者位于队头,形成一个带头结点的链表队列*/ {
PCB *first, *second; int insert=0;
if((ready==NULL)||((p->super)>(ready->super))) /*如果ready头指针指向的是空链表,或者优先级最大者,插入队首*/
{
}
p->link=ready; ready=p;
else /* 进程比较优先级,插入适当的位置中即链中某一位置或者最后*/ {
first=ready; second=first->link; while(second!=NULL) {
if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,插入到当前进程前面*/
}
if(insert==0) first->link=p;
{ }
else /* 插入进程优先数最低,则插入到队尾*/ { }
first=first->link; second=second->link; p->link=second; first->link=p; second=NULL;
insert=1; //插入操作成功
}
}
input() /* 建立进程控制块函数*/ {
int i,num;
// clrscr(); /*清屏*/ }
printf(\请输入被调度的进程数目:\scanf(\for(i=0;i printf(\进程号No.%d:\\n\p=getpch(PCB); printf(\输入进程名:\scanf(\ printf(\输入进程优先数:\scanf(\ printf(\输入进程运行时间:\scanf(\printf(\ p->rtime=0;p->state='w'; p->link=NULL; sort(); /* 调用sort函数*/ int space() { } disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ { } check() /* 建立进程查看函数 */ { PCB* pr; printf(\printf(\printf(\printf(\printf(\printf(\printf(\ int l=0; PCB* pr=ready; while(pr!=NULL) { } return(l); l++; pr=pr->link; printf(\当前正在运行的进程是:%s\显示当前运行进程*/ } destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/ { } running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ { (p->rtime)++; if(p->rtime==p->ntime) destroy(); /* 调用destroy函数*/ printf(\进程 [%s] 已完成.\\n\free(p); disp(p); pr=ready; printf(\当前就绪队列状态为:\\n\显示就绪队列状态*/ while(pr!=NULL) { } disp(pr); pr=pr->link; else { (p->super)--; } } p->state='w'; sort(); /*调用sort函数*/ main() /*主函数*/ { int len,h=0; char ch; input(); len=space(); while((len!=0)&&(ready!=NULL)) { } ch=getchar(); h++; printf(\p=ready; ready=p->link; p->link=NULL; p->state='R'; check(); running(); printf(\按任一键继续......\ch=getchar(); }} printf(\进程已经完成.\\n\//ch=getchar();
正在阅读:
实验二进程调度09-26
如何当好一把手02-18
三人制篮球秩序册 - 图文05-05
国家安监总局73号令(煤矿作业场所职业病危害防治规定)09-29
第三章 方剂的组成05-15
经济法作业09-11
2016年海南省中考数学试卷(含答案)05-17
苏姓女孩名字大全,2017宝宝取名大全01-11
15-护理-本科《内科护理学》12-07
第七章 资源税法08-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 调度
- 进程
- 实验
- 财务管理之成本费用管理小结
- 最新2018党外中青年干部培训班心得体会-word范文(10页)
- 五年级综合实践活动课教案 - 上
- 淘宝又出新规了!食品经营许可证办理
- 八年级阶段性测试思品试题(2012.11.23)
- 三年级美术下册全册教案(湖南美术出版社)
- 《药剂学》题库
- 学校反恐防暴应急处置实施办法
- 略谈怎样才能作出有用的专利分析报告
- 07-11大连市中考英语试题及答案
- 数据库原理期中测试
- 真石漆买卖合同
- 注音《三字经》全文
- 鲍鹏山:商鞅 - 作法自毙的枭雄
- 个体工商户食品安全管理制度汇编
- 2005年全国高考物理试题全集12套 - 图文
- 会计职业道德考试试卷
- mba企业社会实践报告范例2篇
- 荧光光度法测定样品中维生素B2的含量
- 工程结构抗震设计电子教案