文档库 最新最全的文档下载
当前位置:文档库 › 作业调度实验报告,DOC

作业调度实验报告,DOC

作业调度实验报告,DOC
作业调度实验报告,DOC

实验二作业调度

一.实验题目

1、编写并调试一个单道处理系统的作业等待模拟程序。

作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。

(1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。

(2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。

(3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。

2、编写并调度一个多道程序系统的作业调度模拟程序。

作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。

对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。

二.实验目的:

本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解

三.实验过程

<一>单道处理系统作业调度

1)单道处理程序作业调度实验的源程序: zuoye.c

执行程序: zuoye.exe

2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业

完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。

2、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、

所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待

W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。

3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周

转时间,以及这组作业的平均周转时间及带权平均周转时间。

3)流程图:

float T1=0,T2=0; int times=0;

struct jcb //作业控制块 {

char name[10]; //作业名

int reachtime; //作业到达时间

int starttime; //作业开始时间

int needtime; //作业需要运行的时间

float super; //作业的响应比

int finishtime; //作业完成时间

float cycletime; //作业周转时间

float cltime; //作业带权周转时间

char state; //作业状态

struct jcb *next; //结构体指针

}*ready=NULL,*p,*q;

typedef struct jcb JCB;

void inize() //初始化界面

{

printf("\n\n\t\t*********************************************\t\t\n"); printf("\t\t\t\t实验二作业调度\n");

printf("\t\t*********************************************\t\t\n");

printf("\n\n\n\t\t\t\t\t计算机学院软件四班\n");

printf("\t\t\t\t\t蓝小花\n");

printf("\t\t\t\t\t3204007102\n");

printf("\t\t\t\t\t完成日期:2006年11月17号");

printf("\n\n\n\t\t请输入任意键进入演示过程\n");

getch();

}

void inital() //建立作业控制块队列,先将其排成先来先服务的模式队列{

int i;

printf("\n输入作业数:");

scanf("%d",&n);

for(i=0;i

{

p=getpch(JCB);

printf("\n输入作业名:");

scanf("%s",p->name);

getch();

p->reachtime=i;

printf("作业默认到达时间:%d",i);

printf("\n输入作业要运行的时间:");

scanf("%d",&p->needtime);

p->state='W';

p->next=NULL;

if(ready==NULL) ready=q=p;

else{

q->next=p;

q=p;

}

}

}

void disp(JCB* q,int m) //显示作业运行后的周转时间及带权周转时间等{

if(m==3) //显示高响应比算法调度作业后的运行情况

{

printf("\n作业%s正在运行,估计其运行情况:\n",q->name);

printf("开始运行时刻:%d\n",q->starttime);

printf("完成时刻:%d\n",q->finishtime);

printf("周转时间:%f\n",q->cycletime);

printf("带权周转时间:%f\n",q->cltime);

printf("相应比:%f\n",q->super);

getch();

}

else // 显示先来先服务,最短作业优先算法调度后作业的运行情况

{

printf("\n作业%s正在运行,估计其运行情况:\n",q->name);

printf("开始运行时刻:%d\n",q->starttime);

printf("完成时刻:%d\n",q->finishtime);

printf("周转时间:%f\n",q->cycletime);

printf("带权周转时间:%f\n",q->cltime);

getch();

}

}

void running(JCB *p,int m) //运行作业

{

if(p==ready) //先将要运行的作业从队列中分离出来

{

ready=p->next;

p->next=NULL;

}

else

{

q=ready;

while(q->next!=p) q=q->next;

q->next=p->next;

}

p->starttime=times; //计算作业运行后的完成时间,周转时间等等 p->state='R';

p->finishtime=p->starttime+p->needtime;

p->cycletime=(float)(p->finishtime-p->reachtime);

p->cltime=(float)(p->cycletime/p->needtime);

T1+=p->cycletime;

T2+=p->cltime;

disp(p,m); //调用disp()函数,显示作业运行情况

times+=p->needtime;

p->state='F';

printf("\n%s has been finished!\npress any key to continue...\n",p->name);

free(p); //释放运行后的作业

getch();

}

void super() //计算队列中作业的高响应比

{

JCB *padv;

padv=ready;

do{

if(padv->state=='W'&&padv->reachtime<=times)

padv->super=(float)(times-padv->reachtime+padv->needtime)/padv->needtime padv=padv->next;

}while(padv!=NULL);

}

void final() //最后打印作业的平均周转时间,平均带权周转时间

{

float s,t;

t=T1/n;

s=T2/n;

getch();

printf("\n\n作业已经全部完成!");

printf("\n%d个作业的平均周转时间是:%f",n,t);

printf("\n%d个作业的平均带权周转时间是%f:\n\n\n",n,s);

}

void hrn(int m) //高响应比算法

{

JCB *min;

int i,iden;

system("cls");

inital();

for(i=0;i

{

p=min=ready;iden=1;

super();

do{

if(p->state=='W'&&p->reachtime<=times)

if(iden)

{

min=p;iden=0;

}

else if(p->super>min->super) min=p;

p=p->next;

}while(p!=NULL);

if(iden)

{

i--;times++;

//printf("\ntime=%d:\tno JCB submib...wait...",time);

if(times>1000)

{printf("\nruntime is too long...error...");getch();}

}

else

{

running(min,m); //调用running()函数

}

} //for

final(); //调用running()函数

}

void sjf(int m) // 最短作业优先算法

{

JCB *min;

int i,iden;

system("cls");

inital();

for(i=0;i

{

p=min=ready;iden=1;

do{

if(p->state=='W'&&p->reachtime<=times)

if(iden){

min=p;iden=0;

}

else if(p->needtimeneedtime) min=p;

p=p->next;

}while(p!=NULL) ;

if(iden) {

i--; //printf("\ntime=%d:\tno JCB submib...wait...",time);

times++;

if(times>100){printf("\nruntime is too long...error");getch();} }

else{

running(min,m); //调用running()函数

}

} //for

final(); //调用running()函数

}

void fcfs(int m) //先来先服务算法

{

int i,iden;

system("cls");

inital();

for(i=0;i

{

p=ready;iden=1;

do{

if(p->state=='W'&&p->reachtime<=times) iden=0;

if(iden)p=p->next;

}while(p!=NULL&&iden) ;

if(iden)

{

i--;

printf("\n没有满足要求的进程,需等待");

times++;

if(times>100){printf("\n时间过长");getch();}

}

else{

running(p,m); //调用running()函数

}

}

final(); //调用running()函数

}

void mune()

{

int m;

system("cls");

printf("\n\n\t\t*********************************************\t\t\n");

printf("\t\t\t\t作业调度演示\n");

printf("\t\t*********************************************\t\t\n");

printf("\n\n\n\t\t\t1.先来先服务算法.");

printf("\n\t\t\t2.最短作业优先算法.");

printf("\n\t\t\t3.响应比高者优先算法");

printf("\n\t\t\t0.退出程序.");

printf("\n\n\t\t\t\t选择所要操作:");

scanf("%d",&m);

switch(m)

{

case 1:

fcfs(m);

getch();

system("cls");

mune();

break;

case 2:

sjf(m);

getch();

system("cls");

mune();

break;

case 3:

hrn(m);

getch();

system("cls");

mune();

break;

case 0:

system("cls");

break;

default:

printf("选择错误,重新选择.");

getch();

system("cls");

mune();

}

}

main() //主函数

{

inize();

mune();

}

5)调试结果:

1.选择操作的界面

2.输入操作初始信息:

3.先来先服务算法作业调度结果: (调度顺序:a->b->c->d->e)

4.最短作业优先算法作业调度结果(调度顺序: a->d->b->e->c)

5.高响应比算法作业调度结果: (调度顺序 a->b->d->c->e)

<二>多道处理系统作业调度

1)多道处理程序作业调度实验的源程序: duodao.c

执行程序: duodao.exe

2)实验分析:

采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。

采用先来先服务算法算法模拟设计作业调度程序。

(1)、作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。

(2)假定某系统可供用户使用的主存空间共100k,并有5台磁带机。

3)流程图:

4)源程序:

#include

#include

#include

#define getpch(type) (type*)malloc(sizeof(type))

#define NULL 0

int j=0;

int n,i; //n为需要输入的作业数量

float T1=0,T2=0; //初始化周转时间,带权周转时间.

int times=0; //初始化开始运行时间

int freesa=100,disksa=5; //预定内存的大小为100k,磁带数量为5个.

struct jcb //作业控制块

{

char username[10]; //用户名

char name[10]; //作业名

int reachtime; //作业到达时间

int starttime; //作业开始时间

int runtime; //已经运行了的时间

int needtime; //作业需要运行的时间

int frees; //作业要占用的内存

int disks; //作业所需磁带

int finishtime; //作业完成时间

float cycletime; //作业周转时间

float cltime; //作业带权周转时间

char state; //作业状态

struct jcb *next; //结构体指针

}*ready=NULL,*start=NULL,*p,*q,*r,*s,*t;

typedef struct jcb JCB;

void inital() //建立作业控制块队列,先将其排成先来先服务的模式队列{

int i;

printf("\n输入作业数:");

scanf("%d",&n);

for(i=0;i

{

p=getpch(JCB);

printf("\n输入用户名:");

scanf("%s",p->username);

printf("输入作业名:");

scanf("%s",p->name);

getch();

p->reachtime=i;

printf("作业默认到达时间:%d",i);

printf("\n输入作业要运行的时间:");

scanf("%d",&p->needtime);

printf("输入作业运行要占用的内存:");

scanf("%d",&p->frees);

printf("输入作业运行所需磁带:");

scanf("%d",&p->disks);

p->runtime=0;

p->state='W';

p->next=NULL;

if(ready==NULL) ready=q=p;//先将其按到达的先后顺序排成后备序列 else{

q->next=p;

q=p;

}

}

}

int space() //计算内存中作业的个数

{

int l=0; JCB* pr=start;

while(pr!=NULL)

{

l++;

pr=pr->next;

}

return(l);

}

void apply() //把符合条件的作业调用内存,并给他们分配资源, {

int len;

p=ready;

while(p!=NULL)

{

if(p->frees<=freesa&&p->disks<=disksa)

{

freesa-=p->frees;

disksa-=p->disks;

r=p;

p=p->next;

if(r==ready) //先将符合条件的作业从队列中分离出来 {

ready=r->next;

r->next=NULL;

}

else

{

q=ready;

while(q->next!=r) q=q->next;

q->next=r->next;

}

if(start==NULL) start=s=r; // 将其插到start队列, else{

s->next=r;

s=r;

}

}

else

{

p=p->next;

}

}

len=space();

printf("\n\t此时有%d道作业在内存\n\n",len);

}

void disp(JCB * pr) /*建立作业显示函数 */

{

printf("|%s\t",pr->username);

printf("|%s\t",pr->name);

printf("|%c\t",pr->state);

printf("|%d\t",pr->reachtime);

printf("|%d\t",pr->needtime);

printf("|%d\t",pr->runtime);

printf("|%d\t",pr->frees);

printf("|%d\t",pr->disks);

printf("\n");

}

void check() //显示作业状况

{

printf("\n作业%s于完成%d个作业后运行完毕,其完成后的情况:",q->name,j);

j++;

printf("\n用户名****作业名****状态****到达时间*需运行时间*已运行时间*需占用内存*需磁带数量 \n");

disp(q);

s=start;

printf("\n\t\t*********当前进入内存的作业状态*********");

printf("\n用户名****作业名****状态****到达时间*需运行时间*已运行时间*需占用内存*需磁带数量 \n");

while(s!=NULL)

{

disp(s);

s=s->next;

}

r=ready;

printf("*\n\n\t\t*********当前后备作业表中作业的状态**********"); printf("\n用户名****作业名****状态****到达时间*需运行时间*已运行时间*需占用内存*需磁带数量 \n");

while(r!=NULL)

{

disp(r);

r=r->next;

}

}

void running() //运行作业

{

for(t=start;t!=NULL;)

{

start=t->next;

q=t;

q->next=NULL;

q->state='R';

q->runtime++;

t=start;

times++;

if(q->runtime==q->needtime)

{

q->finishtime=times;

q->starttime=q->finishtime-q->needtime;

q->cycletime=q->finishtime-q->reachtime;

q->cltime=(q->cycletime)/(q->needtime);

T1+=q->cycletime;

T2+=q->cltime;

freesa+=q->frees;

disksa+=q->disks;

check();//调用check()显示正在运行的,就绪的以及后备的作业信息 free(q); //释放作业

apply(); //分配作业

getch();

}

else

{

for(s=start;s->next!=NULL;) s=s->next;

s->next=q;

}

}

}

main() //主函数

{

int m;

printf("\n\n\t\t*********************************************\t\t\n"); printf("\t\t\t\t实验三(2) 多道作业调度\n");

printf("\t\t*********************************************\t\t\n");

printf("\n\t\t1.多道作业调度演示.");

printf("\n\t\t0.退出程序");

printf("\n\t\t\t选择所要的操作:");

printf("\n\n\n\t\t\t\t\t计算机学院软件四班\n");

printf("\t\t\t\t\t蓝小花\n");

printf("\t\t\t\t\t3204007102\n");

printf("\t\t\t\t\t完成日期:2006年12月");

scanf("%d",&m);

switch(m)

{

case 1:

system("cls");

inital();

apply();

running();

getch();

system("cls");

main();

break;

case 0:

system("cls");

break;

default:

system("cls");

main();

}

}

5)调试结果:

1) 界面跟前面的其他几个实验的界面大同小异,这里就不在重复出现界面.下面输出的

是作业的初始信息:

2)调度作业,此时的作业情况如下:

3)按回车键,相当于作业继续调度,如下:

4)重复3>,直至作业运行结束;

四.思考题:

1.写出每种算法的调度策略,最后比较各种算法的优缺点。

答:①FCFS算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。

优点:实现简单. 缺点:没考虑进程的优先级

②SJF算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机。

该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根

据每一个进行的执行历史来预测。

③ HRN算法既照顾了短作业,又照顾了作业顺序,不会使长作业长期得不到运行,但调度

前,必须计算响应比,增加了系统的开销.

2.选择调度算法的依据是什么?

答:面向用户的准则:周转时间短;响应时间快;截止时间的保证;优先权准则面向系统的准则:系统吞吐量高;处理机利用率好;各类资源的平衡利用

五.心得体会

每个人对作业调度的算法都存在着一定的理解,这也就是很多同学的算法实现不同的原因.可能是自己理解的不够透彻,我总觉得自己的实验不够完善,还有,可能是自己掌握c语言还不够深,总觉得自己的想法与实现的算法存在着很大差距.希望通过更多的实验,让自己有更大的提高.

电力系统调度自动化试验-电气工程试验教学中心

电力系统调度自动化实验指导书 电气工程实验教学中心

电力系统调度自动化实验 一、实验目的 1.了解电力系统自动化的遥测,遥信,遥控,遥调等功能。 2.了解电力系统调度的自动化。 二、基本原理 电力系统是由许多发电厂,输电线路和各种形式的负荷组成。由于元件数量大,接线复杂,因而大大增加了分析计算的复杂性。作为电力系统的调度和通信中心担负着整个电力网的调度任务,以实现电力系统的安全优质和经济运行的目标。 “PS-5G型电力系统微机监控实验台”相当于电力系统的调度和通信中心。针对5个发电厂的安全、合理分配和经济运行进行调度,针对电力网的有功功率进行频率调整,针对电力网的无功功率的合理补偿和分配进行电压调整。 微机监控实验台对电力网的输电线路、联络变压器、负荷全采用了微机型的标准电力监测仪,可以显示各支路的所有电气量。开关量的输入、输出则通过可编程控制器来实现控制,并且各监测仪和PLC通过RS-485 通信口与上位机相联,实时显示电力系统的运行状况。 所有常规监视和操作除在现地进行外,均可在远方的监控系统上完成,计算机屏幕显示整个电力系统的主接线的开关状态和潮流分布,通过画面切换可以显示每台发电机的运行状况,包括励磁电流、励磁电压,通过鼠标的点击,可远方投、切线路或负荷,还可以通过鼠标的操作增、减有功或无功功率,实现电力系统自动化的遥测、

遥信、遥控、遥调等功能。运行中可以打印实验接线图、潮流分布图、报警信息、数据表格以及历史记录等。 三、实验项目和方法 1.电力网的电压和功率分布实验。 2.电力系统有功功率平衡和频率调整实验。 3.电力系统无功功率平衡和电压调整实验。 同学们自己设计实验方案,拟定实验步骤以及实验数据表格。 四、实验报告要求 1.详细说明各种实验方案和实验步骤。 2.认真整理实验数据。 3.比较各项的实验数据,分析其产生的原因。 五、思考题 1.电路系统无功功率补偿有哪些措施?为了保证电压质量采取了哪些调压手段? 2.何为发电机的一次调频、二次调频? 3.电力系统经济运行的基本要求是什么?

实验五-页面调度算法模拟实验报告

《计算机操作系统》实验报告 实验五:页面调度算法模拟 学校:╳╳╳ 院系:╳╳╳ 班级:╳╳╳ 姓名:╳╳╳ 学号:╳╳╳

指导教师:╳╳╳ 目录 一、实验题目 (3) 二、实验学时 (4) 三、指导老师 (4) 四、实验日期 (4) 五、实验目的 (4) 六、实验原理 (4) 6.1页面的含义 (4) 6.2 页面置换算法的含义 (4) 6.3 置换算法 (4) 6.3.1最佳置换算法(Optimal) (5) 6.3.2先进先出(FIFO)页面置换算法 (5) 6.3.3 LRU置换算法 (5) 七、实验步骤及结果 (5)

7.1 验证最佳置换算法 (5) 7.1.1 实验截图 (5) 7.1.2 实验分析 (6) 7.2 验证先进先出(FIFO)页面置换算法 (7) 7.2.1 实验截图 (7) 7.2.2 实验分析 (7) 7.3 验证LRU置换算法 (8) 7.3.1 实验截图 (8) 7.3.2 实验分析 (8) 八、报告书写人 (9) 附录一最佳置换算法(Optimal) (9) 附录二先进先出(FIFO)页面置换算法 (15) 附录三LRU置换算法 (20) 实验五:页面调度算法模拟 一、实验题目 页面调度算法模拟

二、实验学时 2学时 三、指导老师 ╳╳╳ 四、实验日期 2018年12月10日星期一 五、实验目的 (1)熟悉操作系统页面调度算法 (2)编写程序模拟先进先出、LRU等页面调度算法,体会页面调度算法原理 六、实验原理 6.1页面的含义 分页存储管理将一个进程的逻辑地址空间分成若干大小相等的片,称为页面或页。 6.2 页面置换算法的含义 在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page_Replacement Algorithms)。 6.3 置换算法 一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面换出,或将那些在较长时间内不会再访问的页面调出。

作业调度_实验报告

实验名 称 作业调度 实验内容1、设计可用于该实验的作业控制块; 2、动态或静态创建多个作业; 3、模拟先来先服务调度算法和短作业优先调度算法。 3、调度所创建的作业并显示调度结果(要求至少显示出各作业的到达时间,服务时间,开始时间,完成时间,周转时间和带权周转时间); 3、比较两种调度算法的优劣。 实验原理一、作业 作业(Job)是系统为完成一个用户的计算任务(或一次事物处理)所做的工作总和,它由程序、数据和作业说明书三部分组成,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。 二、作业控制块J C B(J o b C o nt r o l Bl o ck) 作业控制块JCB是记录与该作业有关的各种信息的登记表。为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块,如同进程控制块是进程在系统中存在的标志一样,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。 三、作业调度 作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。 四、选择调度算法的准则 1).面向用户的准则 (1) 周转时间短。通常把周转时间的长短作为评价批处理系统的性能、选择作业调度方式与算法的重要准则之一。所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称

实时监控功能分析实验报告

实时监控功能分析实验报告 一.实验目的 1.对实时监控功能的基本作用有一个感性认识:电力系统的安全、可靠运行是发电、 供电和保障人民生产和生活用电的基本任务,发电厂和变电站当前运行状态信息必须及时准确地送到电力调度控制中心,以便调度人员进行调度。 2.掌握实时监控SCADA的基本功能、实现原理和操作方法。 3.了解表征发电厂和变电站当前运行状态的参数类型和特点、获取方式、表现形式。 如母线电压、有功功率、无功功率、电流和开关状态等。 4.了解改变发电厂和变电站当前运行方式的控制命令信息的类型和特点、下发方式。 5.了解非正常状态信息的表现形式。 二.实验要求 1.已对调度教材中有关调度自动化系统基本结构和功能以及状态信息的处理章节进 行了学习,建立了基本概念。 2.实验前认真阅读实验指导书;实验中,根据实验内容,做好实验记录;实验后,写 出实验报告。 3.认真上机操作,建立感性认识。 4.严格按照教师的指导进行操作。 5.在实验过程中做好记录。 三.系统结构

发电厂模拟一次控制屏变电站模拟一次控制屏 图1-1 系统结构

四.实验步骤及内容 1.了解实时监控控制台的硬件结构。 (1)调度自动化实验系统配置两台实时监控控制台,一台调度专用投影仪; (2)实时监控控制台联接在调度主站计算机网络系统中; (3)在实时监控控制台上运行实时监控软件; 2.启动系统 (1)启动厂站一次控制模拟屏和远方采集终端RTU; (2)启动HUB; (3)启动前置通信控制台及其软件; (4)启动服务器; (5)启动实时监控控制台及其软件。 3.了解实时监控控制台的软件配置情况 (1)IP地址 (2)共享目录的映射关系 (3)实时监控软件运行状况,菜单功能,多画面显示 4.实时画面显示 (1)分别调出系统接线图、发电厂和变电站主接线图;

进程调度算法实验报告

操作系统实验报告(二) 实验题目:进程调度算法 实验环境:C++ 实验目的:编程模拟实现几种常见的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较 各种算法的性能优劣。 实验内容:编程实现如下算法: 1.先来先服务算法; 2.短进程优先算法; 3.时间片轮转调度算法。 设计分析: 程序流程图: 1.先来先服务算法 开始 初始化PCB,输入进程信息 各进程按先来先到的顺序进入就绪队列 结束 就绪队列? 运行 运行进程所需CPU时间 取消该进程 2.短进程优先算法

3.时间片轮转调度算法 实验代码: 1.先来先服务算法 #include #define n 20 typedef struct { int id; //进程名

int atime; //进程到达时间 int runtime; //进程运行时间 }fcs; void main() { int amount,i,j,diao,huan; fcs f[n]; cout<<"请输入进程个数:"<>amount; for(i=0;i>f[i].id; cin>>f[i].atime; cin>>f[i].runtime; } for(i=0;if[j+1].atime) {diao=f[j].atime; f[j].atime=f[j+1].atime; f[j+1].atime=diao; huan=f[j].id; f[j].id=f[j+1].id; f[j+1].id=huan; } } } for(i=0;i #define n 5 #define num 5 #define max 65535 typedef struct pro { int PRO_ID; int arrive_time;

电力系统动态模拟实验-上海交通大学电气工程实验中心

电气系统综合实验(下)电力系统动态模拟实验 实验模版 任务编号

电力系统调度自动化实验 一、实验目的 1.了解电力系统自动化的遥测,遥信,遥控,遥调等功能。 2.了解电力系统调度的自动化。 二、原理与说明 电力系统是由许多发电厂,输电线路和各种形式的负荷组成的。由于元件数量大,接线复杂,因而大大地增加了分析计算的复杂性。作为电力系统的调度和通信中心担负着整个电力网的调度任务,以实现电力系统的安全优质和经济运行的目标。随着微电子技术、计算机技术和通信技术的发展,综合自动化技术也得到迅速发展。 电网调度自动化是综合自动化的一部分,它只包括远动装置和调度主站系统,是用来监控整个电网运行状态的。为使调度人员统观全局,运筹全网,有效地指挥电网安全、稳定和经济运行,实现电网调度自动化已成为调度现代电网的重要手段,其作用主要有以下三个方面: 1、对电网安全运行状态实现监控 电网正常运行时,通过调度人员监视和控制电网的周波、电压、潮流、负荷与出力;主设备的位置状况及水、热能等方面的工况指标,使之符合规定,保证电能质量和用户计划用电、用水和用汽的要求。 2、对电网运行实现经济调度 在对电网实现安全监控的基础上,通过调度自动化的手段实现电网的经济调度,以达到降低损耗、节省能源,多发电、多供电的目的。 3、对电网运行实现安全分析和事故处理 导致电网发生故障或异常运行的因素非常复杂,且过程十分迅速,如不能及时预测、判断或处理不当,不但可能危及人身和设备安全,甚至会使电网瓦解崩溃,造成大面积停电,给国民经济带来严重损失。为此,必须增强调度自动化手段,实现电网运行的安全分析,提供事故处理对策和相应的监控手段,防止事故发生以便及时处理事故,避免或减少事故造成的重大损失。 二、电网调度自动化的基本内容 现代电网调度自动化所设计的内容范围很广,其基本内容如下: 1、运行监视

作业调度实验报告

作业调度实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

实验二作业调度 一.实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。 (3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。 2、编写并调度一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 二.实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解三 .实验过程 <一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: 执行程序: 2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。 2、每个作业由一个作业控制块JCB 表示,JCB 可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W 。 3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。 3)流程图: 二.最短作业优先算法 三.高响应比算法 图一.先来先服务流程图 4)源程序: #include <> #include <> #include <> #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 int n; float T1=0,T2=0; int times=0; struct jcb .\n",p->name); free(p); .wait...",time); if(times>1000) 代替 代替

先来先服务FCFS和短作业优先SJF进程调度算法_实验报告材料

先来先服务FCFS和短作业优先SJF进程调度算法 1、实验目的 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 2、需求分析 (1) 输入的形式和输入值的范围 输入值:进程个数Num 范围:0

说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。 4、详细设计 5、调试分析 (1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析 ○1开始的时候没有判断进程是否到达,导致短进程优先算法运行结果错误,后来加上了判断语句后就解决了改问题。 ○2 基本完成的设计所要实现的功能,总的来说,FCFS编写容易,SJF 需要先找到已经到达的进程,再从已经到达的进程里找到进程服务时间最短的进程,再进行计算。 (2)算法的改进设想 改进:即使用户输入的进程到达时间没有先后顺序也能准确的计算出结果。(就是再加个循环,判断各个进程的到达时间先后,组成一个有序的序列) (3)经验和体会 通过本次实验,深入理解了先来先服务和短进程优先进程调度算法的思想,培养了自己的动手能力,通过实践加深了记忆。 6、用户使用说明 (1)输入进程个数Num

配网自动化实验报告

配网自动化实验报告 学院:电气信息学院 学生: 学号: 班级: 任课教师:

一.实验名称: 馈线自动化功能分析 二.实验目的: 1.对馈线自动化功能的基本作用有一个感性认识:配电网的安全、可靠运 行是发电、供电和保障人民生产和生活用电的重要任务,馈线的运行方 式和负荷信息必须及时准确地送到配网监控中心,以便运行管理人员进 行调度控制管理;当故障发生后,能及时准确地确定故障区段,迅速隔 离故障区段并恢复健全区域供电。 2.掌握配网SCADA的基本功能、实现原理和操作方法。 3.了解表征馈线当前运行状态的参数类型和特点、获取方式、表现形式。 如馈电点电压、有功功率、无功功率、电流和开关状态等。 4.了解改变馈线当前运行方式的控制命令信息的类型和特点、下发方式。 5.了解非正常状态信息的表现形式。 6.掌握故障判断、隔离和健全区域恢复供电功能的原理和实现。 三.实验要求: 1.已对配网教材中有关馈线自动化系统基本结构和功能以及状态信息的 处理章节进行了学习,建立了基本概念。 2.实验前认真阅读实验指导书;实验中,根据实验内容,做好实验记录; 实验后,写出实验报告。 3.认真上机操作,建立感性认识。 4.严格按照教师的指导进行操作。 5.在实验过程中做好记录。 四.系统结构:

FTU FTU 图4-1 系统结构 五.系统功能:

图4-2 系统功能

六.实验步骤及内容: 1.了解馈线自动化的硬件结构 (1)调度自动化实验系统配置两台实时监控控制台,一台调度专用投影仪; (2)实时监控控制台联接在调度主站计算机网络系统中; (3)在实时监控控制台上运行实时监控软件,既监控输电网又监控配电网的运行情况; (4)本实验将连接在调度主站计算机网络系统中的多台微机控制台安装并运行实时监控软件,以满足更多同学同时上机操作的需要。 2.启动系统 (1)启动厂站一次控制模拟屏和远方采集终端RTU; (2)启动HUB; (3)启动服务器; (4)启动前置通信控制台及其软件; (5)启动实时监控控制台及其软件。 3.了解实时监控控制台的软件配置情况 (1) IP地址 (2)共享目录的映射关系 (3)实时监控软件运行状况,菜单功能,多画面显示 图4-3 主界面

操作系统实验报告-作业调度

作业调度 一、实验目的 1、对作业调度的相关内容作进一步的理解。 2、明白作业调度的主要任务。 3、通过编程掌握作业调度的主要算法。 二、实验内容及要求 1、对于给定的一组作业, 给出其到达时间和运行时间,例如下表所示: 2、分别用先来先服务算法、短作业优先和响应比高者优先三种算法给出作业的调度顺序。 3、计算每一种算法的平均周转时间及平均带权周转时间并比较不同算法的优劣。

测试数据 workA={'作业名':'A','到达时间':0,'服务时间':6} workB={'作业名':'B','到达时间':2,'服务时间':50} workC={'作业名':'C','到达时间':5,'服务时间':20} workD={'作业名':'D','到达时间':5,'服务时间':10} workE={'作业名':'E','到达时间':12,'服务时间':40} workF={'作业名':'F','到达时间':15,'服务时间':8} 运行结果 先来先服务算法 调度顺序:['A', 'B', 'C', 'D', 'E', 'F'] 周转时间: 带权周转时间:

短作业优先算法 调度顺序:['A', 'D', 'F', 'C', 'E', 'B'] 周转时间: 带权周转时间:1. 响应比高者优先算法 调度顺序:['A', 'D', 'F', 'E', 'C', 'B'] 周转时间: 带权周转时间: 五、代码 #encoding=gbk workA={'作业名':'A','到达时间':0,'服务时间':6,'结束时间':0,'周转时间':0,'带权周转时间':0} workB={'作业名':'B','到达时间':2,'服务时间':50} workC={'作业名':'C','到达时间':5,'服务时间':20} workD={'作业名':'D','到达时间':5,'服务时间':10} workE={'作业名':'E','到达时间':12,'服务时间':40} workF={'作业名':'F','到达时间':15,'服务时间':8} list1=[workB,workA,workC,workD,workE,workF] list2=[workB,workA,workC,workD,workE,workF] list3=[workB,workA,workC,workD,workE,workF] #先来先服务算法 def fcfs(list): resultlist = sorted(list, key=lambda s: s['到达时间']) return resultlist #短作业优先算法 def sjf(list): time=0 resultlist=[] for work1 in list: time+=work1['服务时间'] listdd=[] ctime=0 for i in range(time): for work2 in list: if work2['到达时间']<=ctime: (work2) if len(listdd)!=0: li = sorted(listdd, key=lambda s: s['服务时间']) (li[0]) (li[0]) ctime+=li[0]['服务时间'] listdd=[]

作业调度实验报告

实验二作业调度 一. 实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS,最短作业优先(SJF)、响应 比高者优先(HRN的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业, 先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准, 总是优先选取执行时间最短的作业。 (3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。 2、编写并调度一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进 行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 二. 实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解 三. 实验过程 < 一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: zuoye.c 执行程序: zuoye.exe 2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资 源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到 满足,它所占用的CPU时限等因素。 2、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、 提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业 的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一 每个作业的最初状态总是等待W 3、对每种调度算法都要求打印每个作业幵始运行时刻、完成时刻、周转时 间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间 3) 流程图: .最短作业优先算法 三.高响应比算法 图一.先来先服务流程图 4) 源程序: #in elude #in elude #in elude vconi o.h> #defi ne getpeh(type) (type*)malloc(sizeof(type)) #defi ne NULL 0 int n; float T1=0,T2=0; int times=0;

广工大操作系统实验报告-进程调度

进程调度模拟实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 1.编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程 进行调度。 2.每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、到 达时间、需要运行时间、已运行时间、进程状态等等。 3.进程的到达时间及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程 的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 4.每个进程的状态可以是就绪 W(Wait)、运行R(Run)两种状态之一。 5.就绪进程获得 CPU后都只能运行一个时间片。用运行时间加1来表示。 6.如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该 进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应分配时间片给就绪队列中排在该进程之后的进程,并将它插入就绪队列队尾。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。 7.重复以上过程,直到所要进程都完成为止。 三、实验主要仪器设备和材料 硬件环境:IBM-PC或兼容机 软件环境:C语言编程环境 四、实验原理及设计方案 1.进程调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后, 首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。 2.实验步骤: (1)按先来先服务算法将进程排成就绪队列。 (2)检查所有队列是否为空,若空则退出,否则将队首进程调入执行。 (3)检查该运行进程是否运行完毕,若运行完毕,则撤消进程,否则,将该进程插入到下一个逻辑队列的队尾。 (4)是否再插入新的进程,若是则把它放到第一逻辑队列的列尾。 (5)重复步骤(2)、(3)、(4),直到就绪队列为空。

时间片轮转调度算法实验报告

xx大学操作系统实验报告 姓名:学号:班级: 实验日期: 实验名称:时间片轮转RR进程调度算法 实验二时间片轮转RR进程调度算法 1.实验目的:通过这次实验,理解时间片轮转RR进程调度算法的运行原理,进一步 掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 2.需求分析 (1) 输入的形式和输入值的范围; 输入:进程个数n 范围:0

(4) 测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。正确输入: 错误输入:

2、概要设计 所有抽象数据类型的定义: static int MaxNum=100 int ArrivalTime //到达时间 int ServiceTime //服务时间 int FinishedTime //结束时间 int WholeTime //周转时间 double WeightWholeTime //带权周转时间double AverageWT //平均周转时间double AverageWWT //平均带权周转时间主程序的流程: 变量初始化

作业调度算法(先来先服务算法,短作业算法)

《操作系统》实验报告 题目:作业调度算法 班级:网络工程 姓名:朱锦涛 学号:E31314037

一、实验目的 用代码实现页面调度算法,即先来先服务(FCFS)调度算法、短作业优先算法、高响应比优先调度算法。通过代码的具体实现,加深对算法的核心的理解。 二、实验原理 1.先来先服务(FCFS)调度算法 FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行的时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然后把它放入就绪队列。 2.短作业优先算法 SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。SJF算法可以分别用于作业和进程调度。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存。 3、高响应比优先调度算法

高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间的算法,因此既照顾了短作业,又不致使长作业等待的时间过长,从而改善了处理机调度的性能。 如果我们引入一个动态优先级,即优先级是可以改变的令它随等待的时间的延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。该优先级的变化规律可以描述为: 优先权 = (等待时间 + 要求服务时间)/要求服务时间 三、实验内容 源程序: #include #include #include struct work { i nt id; i nt arrive_time;

实验一、进程调度实验报告

实验一、进程调度实验报告

广东技术师范学院实验报告 学院:计算机科学学 院 专业: 计算机科学与 技术(师范) 班级:成绩: 姓名:学号:组别:组员: 实验地点:实验日期:指导教师签名: 实验名称:实验一、进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解 二、实验类别 综合性实验。综合高级语言编程、进程调度模型、进程调度算法及数据结构等多方面的知识 三、实验内容和步骤 1.编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等 该题根据老师给的代码用Visual C++运行,结果以及分析如下: 预习情况操作情况考勤情况数据处理情况

结果分析:根据上述输入的三个进程的信息可以得到:优先级最高的是进程cc 最先调度进程cc的状态为运行态,需要执行的时间为10当前就绪队列状态为:进程aa先级比较高,处于就绪队列前面,而进程bb先级是三者中最低的,所以处于就绪队列的最后。而此时这两个进程的状态都为就绪态。

结果分析:当进程cc了一个时间片之后而它已占用CPU时间已达到所需要的运行时间,则将它的优先级减1之后,再将三个进程按优先级的大小排列,从中选择优先级大的进程进入运行状态,则该次进入运行态的是进程aa 按照这种方式一直运行下去: 直到:

FCFS和SJF进程调度算法实验报告

FCFS和SJF进程调度算法实验报告 【实验题目】:编写程序,实现FCFS和SJF算法,模拟作 业调度过程,加深对作业调度的理解。 【实验内容】 实现FCFS和SJF调度算法。 –数据结构设计(JCB,后备作业队列) –算法实现与模拟(排序、调度) –输出调度结果,展示调度过程并解释 【实验要求】 1. 设计作业控制块(JCB)的数据结构 –应包含实验必须的数据项,如作业ID、需要的服务时间、进入系 统时间、完成时间,以及实验者认为有必要的其他数据项。 2. 实现排序算法(将作业排队) –策略1:按“进入系统时间”对作业队列排序(FCFS) –策略2:按“需要的服务时间”对作业队列排序(SJF) 3. 实现调度过程模拟 (1)每个作业用一个JCB表示,如果模拟FCFS,按策略1将作业排队,如果模拟SJF,按策略2将作业排队(2)选择队首的作业,将其从后备队列移出 (3)(作业运行过程,在本实验中,无需实现,可认为后备队列的 作业一但被调度程序选出,就顺利运行完毕,可以进入第4步) (4)计算选中作业的周转时间 (5)进行下一次调度(去往第2步) 4.实现结果输出 –输出作业状态表,展示调度过程 ?初始作业状态(未调度时) ?每次调度后的作业状态 设计作业控制块(JCB)的数据结构 每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。具体结构如下:typedef struct jcb{ char name[10]; /* 作业名*/ char state; /* 作业状态*/ int ts; /* 提交时间*/ float super; /* 优先权*/ int tb; /* 开始运行时间*/ int tc; /* 完成时间*/ float ti; /* 周转时间*/ float wi; /* 带权周转时间*/ int ntime; /* 作业所需运行时间*/ char resource[10]; /* 所需资源*/ struct jcb *next; /* 结构体指针*/ } JCB; JCB *p,*tail=NULL,*head=NULL; 作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。,组成一个后备队列等待,总是首先调度等待队列中队首的作业。

电力系统自动装置课程大纲

电力系统自动装置课程大纲 (2014级使用) 院(部):机械与电气工程学院______ 编制人: 审核人: 适用专业:电气工程及其自动化 2014年 5月 15日

《电力系统自动装置》课程大纲课程编码:2301441005 学分:3 总学时:48 课堂教学学时:48 实验(上机)学时:0 适用专业:电气工程及其自动化 先修课程:电力系统分析、电力系统继电保护 一、课程的性质、目的与任务: 本课程是电气工程及其自动化专业本科生的专业核心选修课程。掌握电力系统中几种主要常规自动装置,特别是自动准同期装置和自动调节励磁装置的工作原理,性能以及它们在电力系统运行中所起作用,通过对自动装置基本环节构成原理的学习,能对具体的自动装置有一定的分析能力。了解上述自动装置试验调整的一般方法。 通过本课程的学习,在知识、能力和素质上应达到的基本要求如下:基本掌握电力系统自动装置的基本工作原理,特别是微机型自动装置,了解备用电源和设备自动投入、输电线路三相自动重合闸、自动并列装置、同步发电机的励磁调节系统、电力系统自动调频、自动按频率减负荷和其他安全自动装置和故障滤波装置。 二、教学进程安排: 三、教学内容与要求: 第一章绪论 1.教学目标:通过本章学习使学生了解电力系统的特点及对其运行的要求、电力系统自 动化的重要性及自动装置的分类、电力系统自动化发展趋势。

2.教学重点和难点:电力系统自动化的重要性及自动装置的分类。 3.教学内容和要求:电力系统的特点及对其运行的要求、电力系统自动化的重要性及自 动装置的分类、电力系统自动化发展趋势。 4.教学过程与方法:理论讲解、例题分析教学与随堂提问相结合。 5.课外阅读资料:《电力系统自动装置原理(第5版)》杨冠城编著,中国电力出版社, 2012.7;《电力系统自动装置》王伟编著,北京大学出版社,2014.8; 《电力系统自动装置》李凤荣编著,机械工业出版社,2017.11;《电 力系统自动装置》张瑛编著,中国电力出版社,2018.8;学生在阅读 时应按照课堂讲授内容进度看参考书目,通过广泛的阅读可以拓宽学 生的专业知识面,有利于学生更好的理解和掌握本课程。 第二章微机监控系统基础知识 1.教学目标:通过本章学习使学生了解微机监控系统的组成、模拟量输入/输出通道、 开关量输人/输出通道、干扰及其抑制、数字滤波、数据预处理、交流 采样的电量计算等基础知识。 2.教学重点和难点:交流采样的电量计算。 3.教学内容和要求:微机监控系统的组成、模拟量输入/输出通道、开关量输人/输出 通道、干扰及其抑制、数字滤波、数据预处理、交流采样的电量计 算。 4.教学过程与方法:理论讲解、例题分析教学与随堂提问相结合。 5.课外阅读资料:《电力系统自动装置原理(第5版)》杨冠城编著,中国电力出版社, 2012.7;《电力系统自动装置》王伟编著,北京大学出版社,2014.8; 《电力系统自动装置》李凤荣编著,机械工业出版社,2017.11;《电 力系统自动装置》张瑛编著,中国电力出版社,2018.8;学生在阅读 时应按照课堂讲授内容进度看参考书目,通过广泛的阅读可以拓宽学 生的专业知识面,有利于学生更好的理解和掌握本课程。 第三章同步发电机的自动并列 1.教学目标:通过本章学习使学生了解同步发电机的自动并列、模拟式自动准同期装置 及数字型自动准同期装置,掌握准同期并列原理。 2.教学重点和难点:准同期并列原理。 3.教学内容和要求:同步发电机的自动并列概述、准同期并列原理、模拟式自动准同期 装置、数字型自动准同期装置。 4.教学过程与方法:理论讲解、例题分析教学与随堂提问相结合。 5.课外阅读资料:《电力系统自动装置原理(第5版)》杨冠城编著,中国电力出版社, 2012.7;《电力系统自动装置》王伟编著,北京大学出版社,2014.8; 《电力系统自动装置》李凤荣编著,机械工业出版社,2017.11;《电 力系统自动装置》张瑛编著,中国电力出版社,2018.8;学生在阅读 时应按照课堂讲授内容进度看参考书目,通过广泛的阅读可以拓宽学 生的专业知识面,有利于学生更好的理解和掌握本课程。

操作系统作业调度实验报告

实验二作业调度 一.实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。 二.实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解 三.实验过程 <一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: zuoye.c 执行程序: zuoye.exe 2)实验分析: 1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业 完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。 2、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、 所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待 W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。 3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周 转时间,以及这组作业的平均周转时间及带权平均周转时间。 3)流程图:

代替 二.最短作业优先算法 代替 三.高响应比算法 图一.先来先服务流程图 4)源程序: #include #include #include #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 int n; float T1=0,T2=0; int times=0; struct jcb //作业控制块 { char name[10]; //作业名 int reachtime; //作业到达时间

华北电力大学电力系认识实习实验报告

一、实习目的 认识实习是我们在大三第一学期末进行的一次认识性实践性活动。 本次实习目的: 1、对电力生产和传输进行直观的了解,提高对电力专业学习的兴趣, 2、建立有关电力生产过程,电力系统原理和对电力设备的感性认识,初步了解电力系统和电力设备的作用和控制和操作流程,认识电力企业工作的性质,提高实践能力,为以后的专业基础课提供针对性的指导。 3、初步了解本我国电力事业的现状、发展前景,培养我们树立正确的专业思想和学习态度,帮助我们明确学习的方向,了解当今电力行业所面临的机遇与挑战。 二、实习过程 1、通过视频录像学习 通过视频录像我们学习了电力生产过程与电力系统、火电厂的生产过程及其电气设备、高压断路器、水力发电厂、电力变压器、及输配电的相关知识。

2、上网检索学习 (1)检索我国电力工业现状 (2)上网检索发电厂的类型、构成及生产过程 (3)上网检索变电站类型、结构及各设备的基本原理 3、参观实践部分 (1)2016年12月29日,我们在指导老师的带领下来到教十二楼的动力系模型实验室参观电力生产设备,老师在现场为我们详细讲解各种发电模型及当前我国电力生产现状; (2)2016年12月30日,我们在指导老师的带领下,乘车前往国家电网河北省电力公司培训中心35kV 实训变电站。指导老师在现场为我们详细讲解电能的传过程中的电气设备,如变压器、高压母线、隔离开关、断路器、电压互感器、电流互感器、避雷器、继电保护装置等。 三、上网检索内容 1、我国电力现状 (一)电力系统构成 电力系统:由发电厂中的电气部分、各类变电所及输电、配电线路及各种类型的用电设备组成的统一体,称为电力系统。具体组成如下:

相关文档
相关文档 最新文档