下载此文档

实验一进程调度实验报告.docx


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验一进程调度实验
专业:嵌入式(软件)
学号:541013090210
姓名:郝春玲
实验日期:2012年12月27日
一、实验目的
通过对进程调度算法的模拟加深对进程概念和进程调度算法的理解。
二、实验要求
编写程序实现对5个进程的调度模拟,采用优先权的调度算法分别进行模拟调度。
三、实验方法内容
算法设计思路
用C语言实现对m个进程采用优先权进程调度算法(高度优先权调度)的调度。
(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:
1>进程号pid。
2>进程优先数pri,并规定优先数越大的进程,其优先权越高。
3>进程运行还需要的时间ptime。
优先数改变的原则:
1>进程每运行一个时间片后,其还需时间减1。
2>进程每运行一个时间片,优先数减3。
(4)为了能清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的运行情况显示出来,包括正在运行,处于就绪状态和已经完成的进程的进程。
(5)分析程序运行的结果,谈一下自己的认识。
四、实验结果及分析

(1)用C语言实现对m个进程采用优先权进程调度算法(高度优先权调度)的调度。
(2)分析程序运行的结果,谈一下自己的认识。
2:实验代码如下:
#include<>
#include<>
#include<>
#include<>
char sta[3][9]={"就绪状态","执行状态","完成状态"};
struct PCB{
int pid;//进程号
int pri;//进程优先数,其值越大的进程,对应的优先权越高
int ptime;//进程运行还需要的时间
};
struct PCB pcb[1024];//进程块pcb表示一个进程,并用结构体表示
int flk[1024]={0};//记录进程状态
void initpcb(int m)//初始化进程块,m为建立进程的个数
{
while(m)
{
m--;//进程坐标数
scanf("%d%d%d",&pcb[m].pid,&pcb[m].pri,&pcb[m].ptime);

}
}
int sortpcb(int m)//对各进程排序
{
int f[1]={-998};//默认最大优先权的进程
int j,i;
for(j=0;j<m;j++)//查找优先权值最大的进程
{
if(f[0]<pcb[j].pri)//默认进程的优先权小于第j个进程
{
f[0]=pcb[j].pri;//当前默认优先权的值为坐标为j的进程
i=j;//j值赋值给i
}
}
return i;//返回最大优先权的进程的坐标号
}
void print(int m)//打印出进程运行状态
{
int i;
printf("进程号进程优先权进程还需时间状态\n");
for(i=0;i<m;i++)
{

printf("%4d %8d %12d %18s\n",pcb[i].pid,pcb[i].pri,pcb[i].ptime,sta[flk[i]]);/

实验一进程调度实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小54 KB
  • 时间2017-08-16