当前位置:首页 >> 其它课程 >> 普通本科实验报告模板操作系统实验二

普通本科实验报告模板操作系统实验二


山东英才学院
计算机电子信息工程学院实验报告
成绩________

课程名称 计算机操作系统 院(系)计算机学院 学生姓名
实验项目名称

指导教师

杨秀华

实验日期 2011年9月28、10月12 实验地点 B-4009

专业班级 09计算机

科学技术 学号

实验二 进程调度

一、实验目的和要求 用 C 或 C++语言编写和调试一个进程调度程序,以加深对进程的概念及进程调 度算法的理解. 二、实验原理

进程调度算法:
采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先 来先服务算法。 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进 程名、优先数、到达时间、需要运行时间、已用 CPU 时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生) 。 进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪 W(Wait) 、运行 R(Run)状态之一。 就绪进程获得 CPU 后都只能运行一个时间片。用已占用 CPU 时间加 1 来表示。 如果运行一个时间片后,进程的已占用 CPU 时间已达到所需要的运行时间,则撤消 该进程,如果运行一个时间片后进程的已占用 CPU 时间还未达所需要的运行时间, 也就是进程还需要继续运行,此时应将进程的优先数减 1(即降低一级) ,然后把它 插入就绪队列等待 CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,
操作系统实验二 进程调度 第 1 页 共 7 页

山东英才学院
以便进行检查。
重复以上过程, 直到所要进程都完 成为止。

三、主要仪器设 备或材料 PC机,C++环 境 四、实验方法与 步骤(可加附页)

1、主要数 据结构:
struct pcb { /* 定

义进程控制块 PCB */ char name[10]; //进程名字 char state; int super; int ntime; int rtime; struct pcb* link; } //进程状态 //进程的优先级 //进程需要运行的时间 //进程已经运行的时间

2、调度算法的流程图如上图 :
操作系统实验二 进程调度 第 2 页 共 7 页

山东英才学院
计算机电子信息工程学院实验报告(附页)

程序参考代码:
参考代码:
#include "stdio.h" #include <stdlib.h> #include <conio.h> #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; typedef struct pcb PCB; void sort() /* 建立对进程进行优先级排列函数*/

{ PCB *first, *second; int insert=0; if((ready==NULL)||((p->super)>(ready->super))) 队首*/ { p->link=ready; ready=p; }
操作系统实验二 进程调度 第 3 页 共 7 页

/*优先级最大者,插入

山东英才学院
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; } } void input() /* 建立进程控制块函数*/ { int i,num; printf("\n 请输入进程号?"); scanf("%d",&num); for(i=0;i<num;i++) { printf("\n 进程号 No.%d:\n",i); p=getpch(PCB); printf("\n 输入进程名:");
操作系统实验二 进程调度 第 4 页 共 7 页

山东英才学院
scanf("%s",p->name); printf("\n 输入进程优先数:"); scanf("%d",&p->super); printf("\n 输入进程运行时间:"); scanf("%d",&p->ntime); printf("\n"); p->rtime=0;p->state='w'; p->link=NULL; sort(); /* 调用 sort 函数*/ } } int space() { int l=0; PCB* pr=ready; while(pr!=NULL) { l++; pr=pr->link; } return(l); } Void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ { printf("\n qname \t state \t super \t ndtime \t runtime \n"); printf("|%s\t",pr->name); printf("|%c\t",pr->state); printf("|%d\t",pr->super); printf("|%d\t",pr->ntime); printf("|%d\t",pr->rtime); printf("\n"); }
操作系统实验二 进程调度 第 5 页 共 7 页

山东英才学院
Void check() /* 建立进程查看函数 */ { PCB* pr; printf("\n **** 当前正在运行的进程是:%s",p->name); /*显示当前运行进程 */ disp(p); pr=ready; printf("\n ****当前就绪队列状态为:\n"); /*显示就绪队列状态*/ while(pr!=NULL) { disp(pr); pr=pr->link; } } Void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/ { printf("\n 进程 [%s] 已完成.\n",p->name); free(p); } Void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ { (p->rtime)++; if(p->rtime==p->ntime) destroy(); /* 调用 destroy 函数*/ else { (p->super)--; p->state='w'; sort(); /*调用 sort 函数*/ }
操作系统实验二 进程调度 第 6 页 共 7 页

山东英才学院
} Void main() /*主函数*/ { int len,h=0; char ch; input(); len=space(); while((len!=0)&&(ready!=NULL)) { ch=getchar(); h++; printf("\n The execute number:%d \n",h); p=ready; ready=p->link; p->link=NULL; p->state='R'; check(); running(); printf("\n 按任一键继续......"); ch=getchar(); } printf("\n\n 进程已经完成.\n"); ch=getchar(); }

操作系统实验二 进程调度

第 7 页 共 7 页


更多相关文档:

《操作系统(CE)》实验报告模板I(第6周实验用)

操作系统实验报告模板 5页 2财富值 普通本科实验报告模板操作... 暂无评价 3页...2页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请...

操作系统实验报告模板

年月日 第 2实验 分项 1 实验目的 实验要求 具体题目 系统平台 实验原理步骤(算法流程) (写不完时,可另加附页。 ) 第 3 页 实验原理步骤(算法流程)...

杭电操作系统实验报告模板

杭电操作系统实验报告模板_电脑基础知识_IT/计算机_专业资料。操作系统课程设计报告...这里引起线程阻塞的 典型事件有两个:一是并发执行的线程间临界资源的竞争;二是...

操作系统实验报告内容格式模板

操作系统实验报告内容格式模板_调查/报告_表格/模板_应用文书。模板湖南商学院——操作系统实验报告 1、实验目的 2、实验要求 3、实验环境 4、实验内容 1)实现原理...

操作系统实验报告模板new

操作系统实验报告模板new_电脑基础知识_IT/计算机_专业资料。天津商业大学信息工程学院专业实验室学生实验报告实验日期:2014 年月 课程名称:操作系统 专业班级: 实验...

操作系统实验报告模板

操作系统实验报告模板_计算机软件及应用_IT/计算机_专业...//1 代表普通文件 2 代表目录文件 0 表示空 文件...普通本科实验报告模板操... 暂无评价 3页 免费 操...

操作系统实验报告样本

操作系统实验报告样本 27页 2下载券操​作​系​统​实​验​报​...PS1 主提示符,默认特权用户为#,普通用户 为$。 $0 $# $? $$ 表示当前 ...

操作系统课程设计实验报告模板

操作系统课程设计实验报告模板_计算机软件及应用_IT/计算机_专业资料。操作系统课程...2.做得不太好的地方,以及以后如何改正: 做得不太好的地方就是不能把自己所...

操作系统实验报告模板

操作系统实验报告模板_书信模板_表格/模板_实用文档。许昌学院 《操作系统》实验...2、利用Linux的文字编辑器编写一个计算机 100 个自然数和的C语言程序, 并用...

操作系统实验报告2

操作系统实验报告2_表格类模板_表格/模板_实用文档。操作系统实验报告2 《操作系统》实验报告实验序号:2 学号 1209030109 文波 331 姓 实验项目名称:哲学家算法 ...
更多相关标签:
操作系统实验报告模板 | 中大普通本科教务系统 | 中山大学普通本科系统 | 普通本科教务系统 | 管理系统模板 | easyui管理系统模板 | 企业管理系统模板 | 系统模板 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com