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

作业调度

作业调度
作业调度

作业调度实验报告

1、实验目的

作业管理是用户与操作系统的接口。作业调度的主要功能是检查系统是否能满足用户作业的资源要求以及按照一定的算法选取作业。

本实验的目的是通过模拟作业调度算法的设计加深对作业管理基本原理的理解。

2 实验用具

个人电脑

3、实验内容

⑴在后备作业队列中,输入5个作业的名称、状态、就绪时间、服务时间及存储空间。

①按先来先服务的原则进行调度,输出作业调度的顺序及等待的时间。

②按最短作业(即运行时间最短)优先的原则进行调度,输出作业调度的顺序及等待时间。

4 实习步骤

第一步:首先对整个题目进行分析,包括对作业、主存的定义类型。

第二步:对流程图进行分析,分析一些细节代码。

第三步:根据程序流程图写代码并调节一些细节错误。

第四步:运行看结果,这里主要看内存根据作业的要求对分配情况。

4.1 需求分析

本次实验是在预输入五道作业的基础上初始化,并通过作业的需求更改主存的输出显示情况,首先是输入5道作业,分别使用先来先服务算法和最短时间优先算法分配内存,最后进行内存的回收。

4.2 数据结构设计与说明

定义作业中的变量-资源需求:

typedef struct source

{

int size; //资源要求大小

int tape_count; //资源要求磁带数

}src;

定义作业:

typedef struct jobwork

{

char username[10]; //用户名

char jobname[10]; //作业名

char state[5]; //运行状态

int runtime; //运行时间

src source; //资源需求(结构体类型见上)

struct jobwork *next; //下一个指针

}job;

定义内存:

typedef struct memory

{

int size; //内存大小

int tape_count; //内存磁带数

char jobname[10]; //内存中存在的作业名(首次为空)

char username[10]; //内存中作业的用户名char state[5]; //内存中作业的状态 int job_count; //内存中作业个数struct memory *next; //内存下一个指针}mem;

4.3 算法设计

第一部分:初始化作业表

while(i<=2)

{

p=(job*)malloc(sizeof(struct jobwork));

//分配内存空间scanf("%s\t%s\t%s\t%d\t%d\t%d",p->username,p->jobn

ame,p->state,&(p->runtime),&(p->source.size),&(p->

source.tape_count));

p->next=NULL;

if(head==NULL)

head=p;

else

q->next=p;

q=p;

i++;

}

第二部分:统计合适的作业的个数

while(p!=NULL&&strcmp("",p->state)==0&&p->source.si ze<=mem1.size&&p->source.tape_count<=mem1.tape_count) {

mem1.job_count++;

p=p->next;

}

第三部分:执行先来先服务算法,为作业分配内存;最短作业优先算法采用的是一样的原理,链表指针由头往后指下去,只不过先前部分运用了冒泡方法,把时间由短到长拍了下顺序。

while(p!=NULL&&strcmp("",p->state)==0&&p->source.size <=mem1.size&&p->source.tape_count<=mem1.tape_count) {

mem1.size=mem1.size-p->source.size; //分配主存空间

mem1.tape_count=mem1.tape_count-p->source.tape_count;

//分配磁带数

printf("%d\t%d\n",mem1.size,mem1.tape_count);

strcpy(p->state,"执行"); //将选到的作业状态改为执行

printf("%s\t%s\n\n",p->jobname,p->username);

第四部分:回收内存

while(p1!=NULL&&p!=NULL&&strcmp(p->state,"完成"))

{

mem1.size=mem1.size+p->source.size;

mem1.tape_count=mem1.tape_count+p->source.tape_count;

printf("%d\t%d\t\n",mem1.size,mem1.tape_count);

mem1.job_count--;

p=p->next;

p1=p1->next;

}

5 实习总结

1、本次实验过程中,通过此次题目,掌握了了作业调度内存分配的一些基本原理。对先来先服务、最短时间优先算法灵活的进行运用。是此次作业调度实验顺利完成。

2、实验中出现的问题:对单链表操作、malloc动态分配内存空间运用出现了问题,有好几次输出指针,产生错误,认识到了,指针是地址,不能以字符串的形式输入,真正应该输出的是指针里边的内容,指针只是个地址。经常出现内存溢出问题。

遇到的最棘手的问题是,malloc函数为单链表分配内存,指针的指向问题。不过,自己积极思考,在老师的帮助下,解决了这个问题。按照流程图的步骤,一步一步的往下写完了程序。最后,第二个程序,在第一个程序的基础上运用了冒泡法,对链表按运行时间进行了排序,实现了最短时间优先算法程序。

生产计划与调度

《生产计划与调度》课程研究报告

一、研究内容 此次课程研究,我以《基于协商的Mult-i Agent 生产计划与调度系统》[1]这篇论文为研究对象,探讨其所提出方法的核心思想并对其进行研讨。 1.1论文研究背景 这篇论文主要是解决生产计划与调度中ERP中当加工数量和工序的加工时间计算变动提前期时难以解决的提前期定义问题,提出了基于协商Multi-Agent的集成生产计划与调度的方法。 1.2论文研究方法的核心思想 生产计划与调度通常采用三层模型描述:1、战略层或高层计划;2、战术计划;3、生产调度(作业计划)。相应这些层分别与长期、中期和短期计划相对应。传统三层模型的缺点是每一层成为下一层的制约,结果导致计划的不可行。即使可行,这样的计划也不是优化的。不可行问题通常通过能力需求计划来解决,但不能保证计划的优化。这篇论文考虑通用的、离散、多场所的生成存货系统,这是知道企业中最典型的制造形式。生产计划与调度主要是对各个工作中心的负荷能力进行平衡,使企业资源得到合理利用。考虑到最终的生产定单是由工作中心完成, 调度也是对各工作中心的任务( 工序) 进行, 如果增加工作中心的智能, 把人的智能集成到工作中心中, 因此, 把工作中心封装为Agent, 通过各个工作中心Agent 与其它功能Agent 之间的交互和协商, 依据各自能力和成本最终达成协议并形成承诺, 生成生产计划( 定单) 以及详细的车间作业计划, 生成的计划是可行的且是优化的, 使得调度问题简单化。通过多Agent 间的协商, 实现分布式计算, 解决由于硬件和软件技术的限制而采取的分层的计划与调度模型中层与层之间的约束以及计划的不可行问题。 这篇论文中的系统有如下类型的功能Agent,如表1所示: 表 1 Agent 名称及其扮演的角色

电大计算机本科操作系统作业3及答案

《操作系统》课程作业 (三) 姓名班级学号 一、选择题(选择一个正确答案的代码填入括号中) 1.作业生存期共经历4个状态,它们是提交、后备、()和完成。A.等待 B.就绪 C.开始 D.执行 2.作业调度是()。 A.从输入井中选取作业进入主存 B.从读卡机选取作业进入输入井 C.从主存中选取作业进程占有CPU D.从等待设备的队列中选取一个作业进程 3.在操作系统中,JCB是指()。 A.文件控制块 B.进程控制块 C.作业控制块 D.程序控制块 4.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由()来决定。

1 / 9 A.设备管理 B.作业控制 C.进程调度 D.驱动调度 5.进程调度根据一定的调度算法,从()队列中挑选出合适的进程。A.阻塞 B.就绪 C.运行 D.等待 6.在操作系统中,作业处于()时,已处于进程的管理之下。 A.后备状态 B.阻塞状态 C.执行状态 D.完成状态 7.作业调度的关键在于()。 A.选择恰当的进程管理程序 B.选择恰当的作业调度算法 C.用户作业准备充分 D.有一个较好的操作环境 8.从系统的角度出发,希望批处理控制方式下进入输入井的作业()

尽可能小。 2 / 9 A.等待装入主存时间 B.周转时间 C.执行时间 D.平均周转时间 9.设某作业进入输入井的时间为S,开始运行的时间为R,得到计算结果的时间为E,则该作业的周转时间T为()。 A.T=E-S B.T=E-(S+R) C.T=(S+R)+ E D.T=E-R 1 ?现有3个作业同时到达,每个作业的计算时间都是1小时,它们在一台CPU上按单道方式运行,则平均周转时间为()。 A.1小时 B.2小时 C.3小时 D.6小时 1

作业调度实例(全部代码)

源代码: #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; //作业到达时间 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\t09软件+电子商务2班\n"); printf("\t\t\t\t\t\t黄才旺\n\n"); printf("\n\n\n\t\t请按任意键进入主菜单:"); getch(); } void inital() //建立作业控制块队列,先将其排成先来先服务的模式队列{ int i; printf("\n输入作业数:"); scanf("%d",&n); for(i=0;iname); getch();

操作系统作业二

1 填空题 1.设单CPU环境下,有三道作业,它们的提交时间及运行时间如下表: 若采用短作业优先调度策略,作业单道串行运行时的调度次序为 J1,J3,J2 ,平均周转时间= 8 。 2.进程间通信的类型有:基于内存通信、基于文件通信、基于网络通信 和基于报文传递通信。 3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短作业将得 到优先调度;当各个作业要求运行的时间相同时,等待时间长得到优先调度。 4.有三个同时到达的作业J1,J2和J3,它们的执行时间分别是T1,T2和T3,且T1

C、多个进程竞争,资源出现了循环等待 D、多个进程竞争共享型设备 3.( C )不是分时系统的基本特征: A、同时性 B、独立性 C、实时性 D、交互性 4.进程所请求的一次打印输出结束后,将使进程状态从(B D) A、运行态变为就绪态 B、运行态变为等待态 C、就绪态变为运行态 D、等待态变为就绪态 5.一作业进入内存后,则所属该作业的进程初始时处于( B C)状态。 A、运行 B、等待 C、就绪 D、收容 6.运行时间最短的作业被优先调度,这种企业调度算法是(C ) A.优先级调度 B.响应比高者优先C.短作业优先D.先来先服务 7.产生死锁的主要原因是进程运行推进的顺序不合适(C ) A.系统资源不足和系统中的进程太多B.资源的独占性和系统中的进程太多 C.进程调度不当和资源的独占性D.资源分配不当和系统资源不足 8. B 是指从作业进入系统到作业完成所经过的时间间隔; D 是从作业进入后备队列起,到被调度程序选中时的时间间隔。 A:响应时间;B:周转时间;C:运行时间; D:等待时间;F:触发时间。 9.CPU的调度分为高级、中级和低级三种,其中低级调度是指 C 调度。 A:作业B:交换C:进程 10. 批处理系统的主要缺点是( B )。 的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 11. 引入多道程序的目的在于( B A)。 A.充分利用CPU,减少CPU等待时间 B.提高实时响应速度 C 有利于代码共享,减少主、辅存信息交换量充分利用存储器 12. 在分时系统中,时间片一定,(B ),响应时间越长。 A.内存越多 B.用户数越多 C.后备队列 D.用户数越少 13. 我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用 SJF B ;为照顾紧急作

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

作业调度 一、实验目的 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=[]

作业调度实验报告

作业调度实验报告 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.什么是操作系统?可以从哪些角度阐述操作系统的作用? 答:操作系统是计算机系统中的一个系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行的一组程序模块的集合。 作用:控制管理计算机的全部硬软件资源,合理组织计算机内部各部件协调工作,为用户提供操作和编辑界面的程序集合。 2、简要叙述批处理操作系统、分时操作系统和实时操作系统的概念及特点。 答:批处理操作系统:通常是把一批作业以脱机方式输入到磁带(磁盘)上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理,直到磁带(磁盘)上所有的作业全部完成。其特点:(1)自动性;(2)顺序性。 分时操作系统:是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。其特点:(1)多路性;(2)独立性;(3)及时性;(4)交互性。 实时操作系统:是指系统及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。其特点:(1)多路性;(2)独立性;(3)及时性;(4)交互性;(5)可靠性。 3操作系统需要管理哪些资源?它的基本功能是什么? 答:硬件资源:CPU,打印机等,软件资源:数据,程序等 4操作系统对外提供了哪些接口? 答:(1)操作系统的命令接口 通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备发出一系列命令告诉操作系统执行所需功能,它包括了键盘操作命令和作业控制命令,称为作业一级的用户接口。命令接口的两种最普遍和主要的方式是直接命令方式(命令行)和间接命令方式(命令文件)。 (2)操作系统的程序接口 它是用户程序和操作系统之间的接口,用户程序通过它们使用系统资源及系统服务,这种接口方式通常采用若干系统调用组成。系统调用是操作系统对外提供的一批系统子功能,是一类特殊的过程调用,由机器指令完成。 (3)操作系统的交互界面

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

实验二作业调度 一.实验题目 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、出席生产部生产主管早会,安排当日工作; 3、收集、审核分析各生产线生产日报表,编制总生产日报表,报总经理办公室 4、检查各生产线生产状况,解决报表反应问题,调配、生产任务; 5、协调所属单位与其它部门之间工作; 6、上各生产线检查工作; 7、日生产例会,安排明天生产任务; 8、总结生产会议; 9、出席生产部主管晚作业碰头会; 10、工作日志填写; 11、完成领导交办的工作任务。 三、生产计划员每周工作内容 1、收集分析下属单位周记,及时协商解决周记中所反应的问题; 2、总结上周工作,安排下周工作计划。 四、生产计划员每月工作内容 1、评估各生产线生产能力,做出相应调整; 2、协助财务部做好月底车间盘存工作; 3、总结本月工作,安排下月生产计划工作。 五、生产计划员每年工作内容 1、做年终生产计划工作总结; 2、做明年生产计划工作。 六、生产计划员主要权力 1、下属单位的日常管理权; 2、本部门人员任免建议权。 七、生产计划员任职资格 1、具有较强的组织协调能力; 2、中专以上文凭,具有一定的计算机水平; 3、忠于职守,诚信待人。 岗位名称:生产计划员

直接上级:生产主管 直接下级:计划文员 本职工作:协调生产过程、生产流程,保证生产活动正常运行。 一、岗位职责 1、在生产部的领导下负责工厂生产月计划与周计划的编制与生产指令的发布及执行的进度跟踪直至达成; 2、做好订单的评审、生产前的打样安排、确认、生产各环节的进度物料供应、工艺组织布置、品质状况跟踪落实。 3、依据生产计划的完成情况、采购物资供应情况,合理调整生产计划达成出货要求; 4、做好生产现场转单的物料供应筹备工作与结单时产品数量物料清退跟进工作; 5、协调工厂内各部门,解决生产障碍,保证生产的顺利进行; 6、有关产销协调会议的召开及相关工作事项的办理; 7、依订单生产之要求,跟踪需料需求、备料催询、紧急催询的落实工作; 8、负责每周一次异常工作报备的编制与上报工作。 二、核准审核编制 1、负责每月提出对呆滞物料的处理建议; 2、完成上级临时交办的事项; 3、及时向生产主管及厂长汇报生产计划的真实情况与有关数据。 4、定期向生产主管述职。 三、主要权力 1、有权对生产计划的修正与变更; 2、有权对生产状况物料使用进行稽核;

SQL调度作业

-- 月报表调度作业 BEGIN TRANSACTION DECLARE @JobID BINARY(16) DECLARE @ReturnCode INT SELECT @ReturnCode = 0 IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1 EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]' -- 删除同名的警报(如果有的话)。 SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N'TestJob') IF (@JobID IS NOT NULL) BEGIN -- 检查此作业是否为多重服务器作业 IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0))) BEGIN -- 已经存在,因而终止脚本 RAISERROR (N'无法导入作业“TestJob”,因为已经有相同名称的多重服务器作业。', 16, 1) GOTO QuitWithRollback END ELSE -- 删除[本地]作业 EXECUTE msdb.dbo.sp_delete_job @job_name = N'TestJob' SELECT @JobID = NULL END BEGIN -- 添加作业 EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'TestJob', @owner_login_name = N'Machine1\Admin', @description = N'没有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- 添加作业步骤 EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Exec GenerateMothlyReport_Proc', @command = N'Exec GenerateMothlyReport_Proc', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

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

作业调度实验 一.实验目的及要求: 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。 二. 实验环境: 操作系统:Windows XP 编译环境:Visual C++ 6.0 三.算法描述 由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。 作业调度算法:采用先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。 每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。 作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。 各个等待的作业按照提交时刻的先后次序排队,总是首先调度等待队列中队首的作业。 每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。 四. 实验步骤: 1.、作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)调度算法。 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间。 2.程序流程图

3、程序源码结构: void main() { void fcfs(); void sjf(); ... while(1){ printf("\n\t\t/* 1、fcfs */"); printf("\n\t\t/* 2、sjf */"); printf("\n\t\t/* 0、Exit */\n"); printf("\n\n\t请选择:\t"); scanf("%d",&a); printf("\n"); switch(a){ case 1: fcfs();break; case 2: sjf();break; default: break; } if(a!=1&&a!=2) break; } }

生产计划与调度管理制度

生产计划与调度管理制度 1.目的: 提高生产效率,实现准时化生产,确保市场需要得到有效的反应,销售订单得到有效的执行,生产过程得到有效的控制,用户需求得到有效的满足。 2.职责: 2.1销售部 2.1.1负责销售合同/订单的下达,市场数据的收集并将收集到的数据整理为月、季、年需求提供给生产部。 2.1.2负责生产过程中与客户沟通信息的传递。 2.2生产部 2.2.1负责生产计划的编制、报批和下达。 2.2.2负责生产计划的组织实施及过程控制。 2.2.3负责根据销售部提供的需求数据,提供工装模具计划及生产所需材料计划给采购部。 2.2.4负责定期组织调度会和生产专题会。 2.2.5负责年、月、周、日生产数据的统计及报出。 2.2.6负责公司内部设备或生产能力不能满足生产进度需求时的外协加工。 2.2.7负责未完成计划的考核提报。及生产原因造成未完成计划的原因分析、责任认定及纠正预防措施的制定。

2.2.8负责厂区5S的检查。 2.2.9负责生产流程的优化。 2.2.10负责协助和监督车间的管理工作。 2.3采购部 2.3.1负责生产所需工装模具、原料、辅料等的供应,并保证生产不受影响。 2.4技术部 2.4.1负责产品图纸的解释、相关工艺文件及产品图纸的编制、下发等。 2.4.2负责为生产部提供必要的技术信息,配合完成原材料计划和模具计划的编制。 2.4.3负责大型工装、附具的设计。 2.4.4负责新产品的试制过程以及试制计划的编制。 2.4.5负责生产过程中技术、质量相关问题的解决。 2.4.6负责因技术问题造成未完成计划的责任认定及纠正预防措施的监督完成。 2.5质量部 2.5.1负责质量管理工作及质量异议的处理。 2.5.2负责组织对不合格品进行分析,并提出解决方案。 2.5.3负责质量管理体系的建立和维护工作 2.6装备部 2.6.1负责对全厂动力系统、机器设备的正常运行提供保障,根据实

作业调度

作业调度实验报告 1、实验目的 作业管理是用户与操作系统的接口。作业调度的主要功能是检查系统是否能满足用户作业的资源要求以及按照一定的算法选取作业。 本实验的目的是通过模拟作业调度算法的设计加深对作业管理基本原理的理解。 2 实验用具 个人电脑 3、实验内容 ⑴在后备作业队列中,输入5个作业的名称、状态、就绪时间、服务时间及存储空间。 ①按先来先服务的原则进行调度,输出作业调度的顺序及等待的时间。 ②按最短作业(即运行时间最短)优先的原则进行调度,输出作业调度的顺序及等待时间。

4 实习步骤 第一步:首先对整个题目进行分析,包括对作业、主存的定义类型。 第二步:对流程图进行分析,分析一些细节代码。 第三步:根据程序流程图写代码并调节一些细节错误。 第四步:运行看结果,这里主要看内存根据作业的要求对分配情况。 4.1 需求分析 本次实验是在预输入五道作业的基础上初始化,并通过作业的需求更改主存的输出显示情况,首先是输入5道作业,分别使用先来先服务算法和最短时间优先算法分配内存,最后进行内存的回收。

4.2 数据结构设计与说明 定义作业中的变量-资源需求: typedef struct source { int size; //资源要求大小 int tape_count; //资源要求磁带数 }src; 定义作业: typedef struct jobwork { char username[10]; //用户名 char jobname[10]; //作业名 char state[5]; //运行状态 int runtime; //运行时间 src source; //资源需求(结构体类型见上) struct jobwork *next; //下一个指针 }job; 定义内存: typedef struct memory { int size; //内存大小 int tape_count; //内存磁带数 char jobname[10]; //内存中存在的作业名(首次为空) char username[10]; //内存中作业的用户名char state[5]; //内存中作业的状态 int job_count; //内存中作业个数struct memory *next; //内存下一个指针}mem; 4.3 算法设计 第一部分:初始化作业表

实习九 作业调度

实习九作业调度 一、实习内容 模拟批处理多道操作系统的作业调度。 二、实习目的 每个用户请求计算机计算的一个计算任务叫做一个作业。一个作业从输入初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工步骤的方式称作业控制方式,作业控制方式有两种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。 在批处理控制方式下,用户采用系统提供的作业控制语言(JCL)写好作业说明书,说明作业加工的步骤。操作员把一批作业组织成输入流,通过“预输入”手段使每个作业的信息(包括作业说明书、源程序、初始数据等)暂存在辅助存储器的“输入井”中。 批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。 本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用。 三、实习题目 采用先来先服务算法和运行时间最短者优先算法模拟设计作业调度程序。 [提示]: (1) 作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。运行时间最短者优先算法总是按作业要求运行的时间来选择作业,每次挑选要求运行时间短且资源要求能满足的作业先进入主存执行。 (2) 为了表示暂存在输入井中的各个作业的情况(作业信息在输入井中的位置、作业的资源要求等),常常采用二级目录结构:作业表和预输入表。例如: 作业表 “预输入” (源程序文件、数据文件等)登记在预输入表中。“预输入”程序工作时还把作业控制语句集中,作为作业说明书文件存放在输入井并登记在预输入表的第一栏中,同时把用户在作业说明书中提出的资源要求登记在作业表中。 本实习模拟作业调度,所以可不考虑有关“预输入”程序的工作。假定“预输入”程序

操作系统第2阶段练习题

江南大学现代远程教育第二阶段练习题 考试科目:《操作系统》第5章至第7章(总分100分) ______________学习中心(教学点)批次:层次: 专业:学号:身份证号: 姓名:得分: 一、名词解释(12分) 1、死锁 2、逻辑地址 3、物理地址 4、地址重定位 二、试举例说明死锁?(6分) 三、采用静态资源分配预防死锁时,有哪些缺点?(6分) 四、有序资源分配法破坏的是产生死锁必要条件中的什么条件?(5分) 五、作业调度和进程调度的任务各是什么?(6分) 六、进程调度的时机有哪几种?(5分) 七、为什么要进行逻辑地址到物理地址的转换?(6分) 八、某系统的进程状态变迁图如图所示(该系统的进程调度方式为非剥夺方式),请说明: (20分) (1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么? (2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生? (3)(a)2→1;(b)3→2;(c)4→5;(d)4→2;(e)3→5 (4)根据此状态变迁图叙述该系统的调度策略、调度效果。 九、在单道批处理系统中,有下列三个作业用先来先服务调度算法和最短作业优先调度算法 进行调度,哪一种算法调度性能好些?请完成下表中未填写的各项。(8分)

十、 分区分配方法中的主要缺点是什么?如何克服这一缺点?(6分) 十一、 如图,主存中有两个空白区,现有这样一个作业序列: 作业1 要求50KB 作业2 要求60KB 作业3 要求70KB 若用首次适应算法和最佳适应算法来处理这个作业序列,试问哪一种算法可以分配得下,为什么?(10分) 十二、 选择填空题(10分) 1、死锁的四个必要条件是__________、不剥夺条件、__________和环路条件。 2、在分区存储管理中,最佳适应算法要求对空闲区表项按( )进行排列。 A.地址从大到小 B.地址从小到大 C.尺寸从大到小 D.尺寸从小到大 3、进程调度又称为( ) A 、线程 B 、宏观 C 、微观 D 、作业 4、段式存储管理中的地址格式是( )地址。 A .线性 B .一维 C .二维 D .三维 参考答案 一、 名词解释 015KB 25KB

操作系统实验 FCFS和短作业优先SJF调度算法模拟

. 题目先来先服务FCFS和短作业优先SJF进程调度算法 姓名: 学号: 专业: 学院: 指导教师:林若宁 二零一八年十一月

一、实验目的 模拟单处理器系统的进程调度,分别采用短作业优先和先来先服务的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解. 二、实验内容 1. 短作业优先调度算法原理 短作业优先调度算法,是指对短作业或断进程优先调度的算法。它们可以分别可以用于作业调度和进程调度。短作业优先调度算法,是从后备队列中选择一个或若干个运行时间最短的作业,将它们调入内存运行。短进程优先调度算法,是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。 2. 先来先服务调度算法原理 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。 三、程序设计 1.概要设计 程序包括主函数、FCFS算法函数、SJF算法函数、输出函数;主函数流程:输入文件中的数据—显示各进程数据—选择算法—调用相应算法的函数—输出结果 2.算法流程

SJF算法流程图:

3.详细设计 (1)定义一个结构体 typedef struct PCB { char job_id[10]; //作业ID float Arr_time; //到达时刻 float Fun_time; //估计运行时间 float Wait_time; //等待时间 float Start_time; //开始时刻 float Fin_time; //完成时刻 float Tur_time; //周转时间 float WTur_time; //带权周转时间 int Order; //优先标记 }list; (2)先来先服务算法函数 void fcfs(list *p,int count) //先来先服务算法{ list temp; //临时结构体变量int i; int j;

操作系统-作业调度

操作系统-作业调度

一.各作业情况如下: 作业号到达时 刻 开始 时刻 运行 需时 结束 时刻 次 序 优先级 别 1 0 2 4 2 1 5 9 3 2 8 1 4 3 3 8 优先级为小值优先,求平均周转时间和带权平均周转时间? 1.先来先服务 2.短作业优先 3.静态优先 答: 1. 先来先服务 作业号到达时 刻 开始 时刻 运行 需时 结束 时刻 次 序 优先级 别 1 0 0 2 2 1 4 2 1 2 5 7 2 9 3 2 7 8 15 3 1 4 3 1 5 3 18 4 8 0时刻只有作业1到达,所以先执行1;2时刻作业2和3都到达,2先到所以执行2;7时刻

作业3和作业4都到达,3先所以执行3,再执行4 平均周转时间=[(2-0)+(7-1)+(15-2)+(18-3)]/4=9 平均带权周转时间=[(2-0)/2+(7-1)/5+(15-2)/8+(18-3)/3]/4 2.短作业优先 作业号到达时 刻 开始 时刻 运行 需时 结束 时刻 次 序 优先级 别 1 0 0 2 2 1 4 2 1 2 5 7 2 9 3 2 10 8 18 4 1 4 3 7 3 10 3 8 0时刻只有作业1到达,所以先执行1;2时刻作业2和3都到达,2短所以先执行2;7时刻作业3和4都到达,4短所以执行4,最后执行3 平均周转时间=[(2-0)+(7-1)+(18-2)+(10-3)]/4=7.75 平均带权周转时间=[(2-0)/2+(7-1)/5+(18-2)/8+(10-3)/3]/4 3.静态优先级

作业号到达时 刻 开始 时刻 运行 需时 结束 时刻 次 序 优先级 别 1 0 0 2 2 1 4 2 1 1 3 5 18 4 9 3 2 2 8 10 2 1 4 3 10 3 13 3 8 0时刻只有作业1到达,所以先执行1;2时刻作业2和3都到达,3优先值小所以先执行3;10时刻作业2和4都到达,4优先值小所以执行4,最后执行2 平均周转时间=[(2-0)+(18-1)+(10-2)+(13-3)]/4=9.25 平均带权周转时间=[(2-0)/2+(18-1)/5+(10-2)/8+(13-3)/3]/4 二.各进程情况如下: 进程号到达时 刻 开始 时刻 运行 需时 结束 时刻 次 序 优先级 别

作业调度

实习九 作业调度 一、实习内容 模拟批处理多道操作系统的作业调度。 二、实习目的 每个用户请求计算机计算的一个计算任务叫做一个作业。一个作业从输入初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工步骤的方式称作业控制方式,作业控制方式有两种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。 在批处理控制方式下,用户采用系统提供的作业控制语言(JCL )写好作业说明书,说明作业加工的步骤。操作员把一批作业组织成输入流,通过“预输入”手段使每个作业的信息(包括作业说明书、源程序、初始数据等)暂存在辅助存储器的“输入井”中。 批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。 本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用。 三、实习题目 采用先来先服务算法和运行时间最短者优先算法模拟设计作业调度程序。 [提示]: (1) 作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。运行时间最短者优先算法总是按作业要求运行的时间来选择作业,每次挑选要求运行时间短且资源要求能满足的作业先进入主存执行。 (2) 为了表示暂存在输入井中的各个作业的情况(作业信息在输入井中的位置、作业的资源要求等),常常采用二级目录结构:作业表和预输入表。例如: 作业表

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