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

作业调度实验报告

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

作业调度实验报告 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)

代替

代替

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

else

{

running(min,m); .wait...",time);

times++;

if(times>100){printf("\nruntime is too

long...error");getch();}

}

else{

running(min,m); 来先服务算法.");

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() 择操作的界面

2.输入操作初始信息:

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

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

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

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

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

执行程序:

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; int times=0; struct jcb 道作业调度演示."); 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\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.实验预备知识 进程的概念; 进程的组织方式; 进程的创建; 进程的调度。 3.实验内容

编写程序完成单处理机系统中的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所作工作进程测试。 4.提示与讲解 这个实验主要要考虑三个问题:如何组织进程、如何创建进程和如何实现处理器调度。 考虑如何组织进程,首先就要设定进程控制块的内容。进程控制块PCB 记录各个进程执行时的情况。不同的操作系统,进程控制块记录的信息内容不一样。操作系统功能越强,软件也越庞大,进程控制块记录的内容也就越多。这里的实验只使用了必不可少的信息。一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类: ①标识信息 每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,它必须是操作系统分配的。在后面给出的参考程序中,采用编号方式,也就是为每个进程依次分配一个不相同的正整数。 ②说明信息

用于记录进程的基本情况,例如进程的状态、等待原因、进程程序存放位置、进程数据存放位置等等。实验中,因为进程没有数据和程序,仅使用进程控制块模拟进程,所以这部分内容仅包括进程状态。 ③现场信息 现场信息记录各个寄存器的内容。当进程由于某种原因让出处理器时,需要将现场信息记录在进程控制块中,当进行进程调度时,从选中进程的进程控制块中读取现场信息进行现场恢复。现场信息就是处理器的相关寄存器内容,包括通用寄存器、程序计数器和程序状态字寄存器等。在实验中,可选取几个寄存器作为代表。用大写的全局变量AX、BX、CX、DX模拟通用寄存器、大写的全局变量PC模拟程序计数器、大写的全局变量PSW模拟程序状态字寄存器。 ④管理信息 管理信息记录进程管理和调度的信息。例如进程优先数、进程队列指针等。实验中,仅包括队列指针。 因此可将进程控制块结构定义如下: struct pcb {int name; int status;

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

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

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

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

七段数码管驱动实验报告

班级_08网络__ 学号20080611052______ 姓名_袁晓洋__ 七段数码管驱动实验 [实验目的] 深入理解单片机IO口编程原理 掌握七段数码管的原理和驱动方法 掌握7段数码显示编码的方法 [实验内容] 采用单片机的IO驱动共阳极七段数码管,采用灌电流的方式使对应的LED 发光,并采用代码延时的方式实现七段数码管循环显示从0-9的数字,数字变化的间隔大约为1秒钟。 [实验步骤] 在此填写在proteus中的操作步骤,并附绘制的电路图 在此填写keil C51代码并附详细注释 这是一个共阳极七段数码管将端口接至单片机P0 在共阳极接一个电源!及可实现; #include //添加头文件 #define SEG P0 //定义七段数码管LED连接P0 Char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//定义数字数组 0--9 void delay(int); //声明delay函数 main() //主函数 { unsigned char i; while(1) 不停地循环 for(i=0;i<10;i++) { SEG=TAB[i]; 显示数字 delay(1000); 延时1秒 }

} void delay(int x) //延时X*1ms { int i,j; for(i=0;i

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

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

指导教师:╳╳╳ 目录 一、实验题目 (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.掌握实时监控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)分别调出系统接线图、发电厂和变电站主接线图;

单片机实验报告-蜂鸣器驱动实验

本科实验报告 课程名称:单片机原理与接口技术实验项目:蜂鸣器驱动实验 实验地点:电机馆 专业班级:学号: 学生姓名: 指导教师: 2015年 6 月9 日

蜂鸣器驱动实验 一、实验目的 1、学习输入/输出端口控制方法 2、了解音频发声原理 二、实验说明 本实验是利用89C51端口定时器输出控制端口,驱动扬声器发声,声音的频率高低由延时快慢控制。本实验是利用单片机唱歌的声音控制程序,请用户思考如何修改程序,可以让蜂鸣器发出不同频率,不同长短的声音。 三、实验原理 1、通过单片机控制驱动信号使蜂鸣器发出不同音调的声音,驱动方波的频率越高,音调就越高;驱动方波频率越低,音调越低。由此,我们可以根据驱动方波的频率使蜂鸣器凑出各种音调的声音。 2、由于单片机I/O口的输出电流较小,因此需要三极管放大电路驱动蜂鸣器。 四、主要仪器设备 单片机仿真试验箱,THKL-C51型单片机仿真器,计算机 五、实验内容及步骤 INT1输出音频信号接音频驱动电路,使蜂鸣器的发声。 1、使用单片机最小应用系统和蜂鸣器模块。蜂鸣器模块的短路帽J1插到VCC方向,用导线将INT1接到蜂鸣器输入端。 2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“MUSIC.ASM”源程序,进行编译,直到编译无误。 4、全速运行程序,扬声器周期性的发出“八月桂花开”歌曲。(添加“MUSIC1.ASM”程序为“祝你平安”歌曲) 5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)

进程调度算法实验报告

操作系统实验报告(二) 实验题目:进程调度算法 实验环境: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、运行监视

嵌入式系统IO驱动实验报告

嵌入式系统实验报告(五) --IO接口驱动 138352019陈霖坤 一实验目的 学习嵌入式Linux操作系统设备驱动的方法。 二实验内容与要求 根据硬件接口资料,实现任意一个设备的基本控制功能,包括驱动程序和用户程序。 三从外设到用户空间 1内核空间与用户空间 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。内核空间和用户空间都是指虚拟空间,也就是虚拟地址。 这个概念的由来,跟CPU的发展有很大关系,在目前CPU的保护模式下,系统需要对其赖以运行的资料进行保护,为了保证操作系统内核资料,我们把内存空间进行划分,一部分为操作系统内核运行的空间,另一部分是应用程序运行的空间,所谓空间就是内存的地址。在386以前的CPU实模式下,操作系统内核与用户程序的内存空间是不做区分的,也就不存在内核空间和用户空间的说法了。 CPU的保护模式的一个重大特点,也就是硬件直接支持的内存访问模式,虚拟地址空间到物理地址空间的映射。这种工作模式与内核空间用户空间在技术上的相辅相成,也是促成内存空间划分的原因。操作系统为了保护自己不被普通程序的破坏,对内核空间进行了一些定义,比如访问权限,换入换出,优先级等等。也就是说内核空间只允许内核访问,用户程序如果要访问内核空间就需要经过内核的审核。 2ioremap 几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 处理器(如X86)为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O 端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。 (2)内存映射方式(Memory-mapped)

作业调度实验报告

作业调度实验报告 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) 代替 代替

操作系统实验报告(进程调度算法)

操作系统实验报告(进程调度算法)

实验1 进程调度算法 一、实验内容 按优先数调度算法实现处理器调度。 二、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。 三、实验原理 设计一个按优先数调度算法实现处理器调度的程序。 (1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为: 进程名 指针 要求运行时 间 优先数

状态 其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。 指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。 要求运行时间——假设进程需要运行的单位时间数。 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。 (3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。例: 队首标志 K2

1P1 K 2 P2 K 3 P3 K 4 P4 K 5 P5 0 K4K5K3K1 2 3 1 2 4 1 5 3 4 2 R R R R R PC B1 PC B2 PC B3 PC B4 PC B5 (4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行: 优先数-1 要求运行时间-1 来模拟进程的一次运行。 提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。

配网自动化实验报告

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

一.实验名称: 馈线自动化功能分析 二.实验目的: 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 主界面

北京科技大学控制实验报告

实验三 利用MATLAB 进行时域分析 一、实验目的 (1) 学会使用MATLAB 编程绘制控制系统的单位阶跃响应曲线; (2) 研究二阶控制系统中,?、?n 对系统动态特性和时域指标的影响; (3) 掌握准确读取动态特性指标的方法; (4) 分析二阶系统闭环极点和闭环零点对系统动态性能的影响; (5) 研究三阶系统单位阶跃响应及其动态性能指标与其闭环极点的关系; (6) 研究闭环极点和闭环零点对高阶系统动态性能的影响; (7) 了解高阶系统中主导极点与偶极子的作用; (8) 了解系统阶跃响应、脉冲响应和斜坡响应输出曲线之间的联系与差别。 二、实验原理及内容 1. 求系统的特征根 若已知系统的特征多项式D (s),利用roots ( ) 函数可以求其特征根。若已知系统的传递函数,利用eig ( ) 函数可以直接求出系统的特征根。 2、求系统的闭环根、ζ和ωn 函数damp ( ) 可以计算出系统的闭环根、ζ和?n 。 3、零极点分布图 可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,调用格式为: pzmap(num,den) 【范例3-1】给定传递函数: 2 72436 4523)(2 345234+++++++++=s s s s s s s s s s G 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如错误!未找到引用源。所示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den) title(1Pole-Zero Map1) % 图形标题。

图3- 1 MATLAB 函数零、极点分布图 4、求系统的单位阶跃响应 step ( ) 函数可以计算连续系统单位阶跃响应(impulse( ) 函数可以计算连续系统单位脉冲响应): step (sys) 或step ( sys , t ) 或step (num , den) 函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys 可以由tf ( ),zpk ( ) 函数中任何一个建立的系统模型。第二种格式中t 可以指定一个仿真终止时间,也可以设置为一个时间矢量(如t =0 : dt : Tfinal ,即dt 是步长,Tfinal 是终止时刻)。 如果需要将输出结果返回到MATLAB 工作空间中,则采用以下调用格式: c=step(sys) 此时,屏上不会显示响应曲线,必须利用plot()命令查看响应曲线。plot 可以根据两个或多个给定的向量绘制二维图形。 【范例3-2】已知传递函数为:25 425 )(2++= s s s G 利用以下MATLAB 命令可得阶跃响应曲线如错误!未找到引用源。所示。 >> num=[0,0,25]; den=[1,4,25]; step(num,den) grid % 绘制网格线。 title(1Unit-Step Response of G(s)=25/(s^2+4s+25) 1) % 图像标题

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

作业调度 一、实验目的 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.编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程 进行调度。 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),直到就绪队列为空。

LED点阵显示屏实验报告

16?16点阵LED电子显示屏的设计 摘要:文章介绍了基于单片机AT89C51的16?16点阵LED电子显示屏的设计。分别阐述了显示屏显示的基本原理,硬件设计、控制方法及其程序的实现。经过调试和分析,设计的结果能够实现对汉字的静态和动态显示,动态显示的内容有多种方式,同时又可通过上位机更新显示的内容。 关键字:AT89C51;16?16点阵;LED;显示屏 一绪论 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 1 LED点阵显示屏概述 LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。 目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。 2 LED显示屏控制技术状况 显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。

实验一处理器调度实验报告

处理器调度一、实验内容 选择一个调度算法,实现处理器调度。 二、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。 当就绪状态进程 个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下处理器调度,帮助学生加深了解处理器调度的工作。 三、实验题目 设计一个按优先数调度算法实现处理器调度的程序 提示: (1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进 程控制块的格 式为: 其中,进程名----作为进程的标识,假设五个进程的进程名分别是R, P2, P3, P4,R。 指针—按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块

首地址,最后一个进程中的指针为“ 0”。 要求运行时间-- 假设进程需要运行的单位时间数。 优先数-赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态-可假设有两种状态,“就绪”状态和“结束“状态,五个进程的初 始状态都为 “就绪“状态,用“ R”表示,当一个进程运行结束后,它的状态变为“结束”, 用“ E”表示。 (2)在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数” 和“要求运行时间”。 (3)为了调度方便,把五个进程按给定的优先数从大到小连成队列,用一单元指出队首 进程,用指针指出队列的连接情况。例: 队首标志 (4)处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优 先数就减“ 1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的 启动运行,而是执行: 优先数- 1 要求运行时间-1 来模拟进程的一次运行提醒注意的是:在实际的系统中,当一个进程被选中运

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

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 //平均带权周转时间主程序的流程: 变量初始化

显示器的实验报告

单片机实验报告 实验一:输出端口应用实验 实验作者:王锦锋实验成绩: 专业班级/学号:应用电子(1)班1006010141 合作者:邹凯专业班级/学号:应电(1)班1006010101 指导教师: 实验时间:2012-3-14

驱动七段LED数码管的实验 一、实验目的 1.学习Proteus软件的使用方法 2.学习Keil软件的使用方法 3.学习端口输出的使用方法 4.掌握延时程序的设计 二、实验说明 1、如下图所示,由P0驱动七段LED数码管,其中使用220欧姆电阻器作为限流电阻。 2、七段LED数码管上所显示的数字从0到9循环不停。每隔0.5s变化一次。 3、 三、硬件原理图及程序设计 (一)硬件原理图设计 (二)程序流程图设计 开始 声明驱动信号数组 声明延迟函数 顺序显示数字 (三)程序设源代码 七段LED数码管从9开始显示,递减到0,再从头开始 #include #define uchar unsigned char

#define uint unsigned int uchar code pattern_P2[]= { 0x98,0x80,0xf8,0x83,0x92,0x99,0xb0,0xa4,0xf9,0xc0//数字9,8,7,6,5,4,3,2,1,0 }; uchar code pattern_P3[]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67 }; void DelayMS(uint x) { uchar t; for(x=0;x<1000;x++) { for(t=0;t<125;t++); } } 从0开始显示到9;再递减到0,然后从头开始 #include #define uchar unsigned char #define uint unsigned int uchar code pattern_P2[]= { 0x00,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98 }; void DelayMS(uint x) { uchar t; for(x=0;x<1000;x++) { for(t=0;t<125;t++); } } main() { uchar i; while(1) { for(i=1;i<11;i++) { P2=pattern_P2[i]; DelayMS(150);

相关文档