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

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


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

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

指导教师

杨秀华

实验日期 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 页


更多相关文档:

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

普通本科实验报告模板操作系统实验二 隐藏>> 山东英才学院计算机电子信息工程学院实验报告成绩___ 课程名称 计算机操作系统 院(系)计算机学院 学生姓名实验项目名称 ...

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

普通本科实验报告模板操作系统实验一 隐藏>> 山东英才学院计算机电子信息工程学院实验报告 计算机电子信息工程学院实验报告 学院成绩___ 课程名称 计算机操作系统 指导...

实用操作系统实验报告书写模板

普通本科实验报告模板操作... 7页 2财富值 操作系统(本科)实验报告模... 暂无...实验一实验报告书写模板仅供参考课程名称:实用操作系统 实验名称:Linux 操作系统基...

操作系统实验报告样本

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

操作系统实验报告模板

操作系统实验报告实验 1 分析实验结果参照实验指导书回答下面的问题: 5: 6: 从实验中得到了两次不同的结果 原因是程序采用了多线程的写法 , 两个线程同时抢占 ...

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

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

《操作系统》课程实验报告样本

中央广播电视大学 计算机科学与技术专业操作系统(本科) 实验报告 学班 校:___...1/2 相关文档推荐 操作系统实验报告样本 27页 2下载券 操作系统课程实验报告...

操作系统实验报告模板

许昌学院计算机科学与技术学院《操作系统》实验报告 实验二实验时间: 【实验目的...普通本科实验报告模板操... 暂无评价 3页 免费 《操作系统(CE)》实验报......

操作系统实验报告实验二

表格/模板 调查/报告操​作​系​统​实​验​报​告​实​验...( 2012 —2013 课程名称:操作系统 年级、 专业、 班 实验项目名称 教师评语 ...

操作系统实验报告模版

操作系统实验报告模版_调查/报告_表格/模板_实用文档。操作系统实验报告班级: 此...实用操作系统实验报告书... 6页 2下载券 普通本科实验报告模板操... 7页 ...
更多相关标签:
操作系统实验报告模板 | 中大普通本科教务系统 | 普通本科教务系统 | 后台管理系统模板 | 网站后台管理系统模板 | 管理系统模板 | 后台系统模板 | html后台管理系统模板 |
网站地图

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