操作系统课设 两道批处理 二级调度

合集下载

计算机操作系统调度问题

计算机操作系统调度问题

有一个具有两道作业的批处理系统,作业调度采用短作业的调度算法,进程调度采用以优先数为基础的抢占式调度算法,有如下表所示的作业序列(表中所列作业优先数为进程优先数,数值越小,优先级越高)。

(1)列出所有作业进入内存的时刻及结束时刻。

(2)计算平均周转时间
作业名到达时间预计用时优先数
A 10:00 40 5
B 10:20 30 3
C 10:30 50 4
D 10:50 20 6
解答:
10:00 A到达,无竞争,开始运行;
10:20 B到达,进入主存,优先数为3,优于A,B开始运行
10:30 C到达,不可进入;
10:50 B结束,同时D到达,同C争夺内存,D运行时间短,被调度进入内存;A的优先数高,开始运行;
11:10 A结束,C进入内存,C的优先数高于D,开始运行;
12:00 C结束, D开始运行;
12:20 D结束。

请同学们计算平均周转时间
平均周转时间=(70+30+50+90)/4=240/4=60分钟。

操作系统之处理机调度

操作系统之处理机调度
习题
有5个运行作业J1…J5,各自运行时间分别为9\6\3\5\7,假定作业同时到达,试比较最短作业优先和最高响应比优先算法的平均周转时间? 为什么说多级反馈调度算法能较好满足交互类、短批处理类和长批处理类等应用? 设周期性任务P1/P2/P3的周期T1/T2/T3分别为100/150/350,执行时间20/40/100,问是否可以采用频率单调调度算法进行调度 进程调度其主要功能是: 选择一个作业调入内存 选择一个主存中的进程调出到外存 选择一个外存中的进程调入到主存 将一个就绪的进程投入运行
30
15
60
DA(3)
60
15
90
DB(1)
0
38
75
DB(2)
75
38
150
DB(3)
150
38
225
频率单调调度算法 基本原理:频率越低(周期越长)优先级越低 使用频率单调调度算法的必要条件: C1/T1 + C2/T2 + +Cn/Tn ≦n(21/n-1) 例:三个周期组成的实时任务序列,其执行时间与周期比 ≦0.799
实时调度算法的分类 1)静态表格驱动 对可能的调度条件和参数进行静态分析 结果作为实际调度结果 2)静态优先级驱动抢先式调度算法 先进行静态分析,但结果只作为任务的优先级 3)动态计划调度算法 在调度任务执行之前排出调度计划,并分析计划的调度结果是否使得任务所要求的处理时限得到满足,能满足就按计划执行,否则修改调度计划 4)尽力而为调度算法 不进行可能性分析,只按优先级进行调度
最短作业优先法
最高响应比优先法
例:某操作系统采用三级调度策略,一级队列时间片10ms,二级100ms,三级1000ms, 有若干进程按以下顺序进入队列: 进程 进入时刻 运行时间 0 100 10 20 50 150 200 1300 500 20 700 100

多道批系统基本特征

多道批系统基本特征

多道批处理系统是一种操作系统类型,它的基本特征包括以下几点:
多道性:多道批处理系统可以在内存中同时存放多个作业,形成一个作业队列,即后备队列。

系统会根据一定的调度原则,每次从后备作业队列中选取一个或多个作业进入内存运行,从而实现在内存中的多道程序运行。

无序性:在多道批处理系统中,作业的进入内存的顺序并不一定按照提交的顺序进行。

系统会根据作业调度原则,选择最适合运行的作业进入内存。

自动性:在多道批处理系统中,作业的装入和执行都由系统自动管理,用户无需进行干预。

当一个作业完成后,系统会自动将下一个作业调入内存运行,从而实现了作业的连续处理。

批量性:多道批处理系统主要目的是提高系统资源的利用率和系统的吞吐量。

因此,它通常会一次性将多个作业提交给系统,并按照一定的顺序将它们组织起来,形成一批作业进行批量处理。

调度性:多道批处理系统包括作业调度和进程调度两个层次。

作业调度负责从后备作业队列中选取作业进入内存,进程调度则负责在内存中选取进程占用处理器。

总的来说,多道批处理系统的基本特征是实现了在内存中的多道程序运行,并提高了系统资源的利用率和系统的吞吐量。

计算机操作系统 第四章 处理机调度

计算机操作系统 第四章 处理机调度

实时调度方法
实时系统调度算法 1)单比率调度算法 规定:运行频率越高的进程其优先
就数越高。 调度时总是选中优先数最高的就绪
进程,并采取剥夺式分配策略。 可以证明该算法是最优的。
实时调度方法
实时系统调度算法 2)限期调度算法 基本思想:进程就绪队列按截止期
限排序。对于一个周期性事件,其截 止期限即为事件下一次发生的时间。
选估计计算时间最短的作业投入运行。 这是一种非剥夺式算法,用户提交作
业的同时给出估计计算时间。 这个算法显然有利于短作业。
调度算法
最短作业优先SJF(Shortest Job First ) 主要不足:
1)估计计算时间难以精确; 2)长作业可能会出现饥饿现象;
该算法仅适用于作业调度。
调度算法
最高响应比(HRRF,Highest Response Ratio First)算
先来先服务(FCFS) 在实际操作系统中,尽管很少单独使
用FCFS算法,但和其他一些算法配合 起来,FCFS算法在os中均有实现。
例如: 基于优先级的算法中对于相同 优先级的作业即采用FCFS方式。
调度算法
最短作业优先SJF(Shortest Job First ) 算法以作业的估计计算时间为依据,

响应比定义:响应比的计算公式与?差不多?
响应比=作业等待时间/作业计算时间
每当调度时,先计算每个作业的响应比值, 选择响应比最高者运行。
该算法属于非剥夺式算法。
调度算法
最高响应比算法 该算法既考虑作业等待时间,又考虑作业
的计算时间。同等条件优待短作业,同时又 不使长作业的等待时间过长,改进了调度性 能。
120
8:00
10:00

第6章 操作系统处理机调度

第6章 操作系统处理机调度

第6章 处理机调度
完成 运行 提交 后备 就绪 作业 调度 执行 等待 作业 调度
作业 录入
第6章 处理机调度
6.2.2 作业调度的功能
1. 确定数据结构 建立作业控制块jcb 建立作业控制块 (job control block)。 。 作业控制块记录了每个作业类型、状态、 作业控制块记录了每个作业类型、状态、资源请求及分配情况 。 2. 确定调度策略与调度算法 3. 分配资源 为选中的作业分配所需要的系统资源。 为选中的作业分配所需要的系统资源。 4. 善后处理 收回该作业所占用的全部资源, 收回该作业所占用的全部资源,撤消作业控制块以及与该作业 有关的全部进程。 有关的全部进程。
作业 提交时间 计算时间 开始时间 完成时间 周转时间 带权周转时间
1 2 3 4 5
9:00 9:20 9:30 10:00 10:20
1小时 小时 0.5小时 小时 0.4小时 小时 0.3小时 小时 0.2小时 小时
第6章 处理机调度
3. 高响应比优先作业调度算法 高响应比优先作业调度算法(HRN)
这是一种折衷算法, 这是一种折衷算法,是为了克服上述两种算法的不 足而提出来的。它既考虑到作业进入系统的先后次序, 足而提出来的。它既考虑到作业进入系统的先后次序, 又顾及到作业的运行长度。 又顾及到作业的运行长度。 响应比为: 作业等待时间/作业执行时间 响应比为: RP=1+作业等待时间 作业执行时间 作业等待时间 该调度算法在调度作业时首先计算后备作业的响应 值从大到小的顺序调度作业运行。 比RP,然后按 值从大到小的顺序调度作业运行。从公 ,然后按RP值从大到小的顺序调度作业运行 式可见,作业的RP与作业执行时间成反比 与作业执行时间成反比, 式可见,作业的 与作业执行时间成反比,作业的执行 时间越短,其RP越高,同时作业的RP会随着它的等待时 时间越短, 越高,同时作业的 会随着它的等待时 越高 间的增加而增加,只要等待时间足够长, 间的增加而增加,只要等待时间足够长,该作业总会由 于响应比高而被调度。 于响应比高而被调度。

操作系统作业调度实验报告 多道批处理

操作系统作业调度实验报告 多道批处理

计算机学院计算机科学与技术专业07班姓名 ___ 学号—教师评定_____________________实验题目 __________________ 作业调度______________________一、实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。

二、实验内容和要求1、为单道批处理系统设计一个作业调度程序(1) 、编写并调试一个单道处理系统的作业调度模拟程序。

(2) 、作业调度算法:分别采用先来先服务( FCFS),最短作业优先(SJF)的调度算法。

(3) 、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。

(4) 、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。

作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。

每个作业的最初状态总是等待W。

(5) 、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。

2、模拟批处理多道操作系统的作业调度(1)写并调试一个作业调度模拟程序。

(2)作业调度算法:分别采用先来服务( FCFS)调度算法。

(3 )在批处理系统中,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求,所需要的资源是否得到满足。

作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理机运行。

作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。

但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业要求,那么,作业调度必须按一定的算法在这些作业中作出选择。

《操作系统》课程设计报告-多道批处理调度的模拟

《操作系统》课程设计报告-多道批处理调度的模拟

课程设计课程名称操作系统____ 题目名称多道批处理调度的模拟学生学院计算机学院专业班级 2007 级计科(5)班2010年07月 03日广东工业大学课程设计任务书一、课程设计的内容本课程设计要求模拟实现一个的多道批处理系统的两级调度。

通过具体的作业调度、进程调度、内存分配等功能的实现,加深对多道批处理系统的两级调度模型和实现过程的理解。

二、课程设计的要求与数据1.要求作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。

作业调度是高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。

进程调度是低级调度,它的主要功能是根据一定的算法将CPU 分派给就绪队列中的一个进程。

2.假定某系统可供用户使用的主存空间共100KB,并有4台磁带机。

主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,作业调度分别采用先来先服务算法和最小作业优先算法,进程调度采用先来先服务和最短进程优先算法。

(能增加实现更多的调度算法则可以获得加分)。

3.假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。

测试数据如下:作业到达时间估计运行时间内存需要磁带机需要JOB1 10:00 25分钟15K 2台JOB2 10:20 30分钟60K 1台JOB3 10:30 10分钟50K 3台JOB4 10:35 20分钟10K 2台JOB5 10:40 15分钟30K 2台4.分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况。

比较不同算法作业的选中次序及作业平均周转时间。

5.选用程序设计语言:C、C++等。

三、课程设计应完成的工作1.充分理解设计的任务,完成设计的基本要求。

然后根据自己的基础和能力选择不同难度的算法和实现方式,以取得更高的分数。

2. 独立完成系统的分析、设计、编码、测试工作。

操作系统试题及答案

操作系统试题及答案

计科专业计算机操作系统资料一、选择题(选择最确切的一个答案,将其代码填入括号中,每空2分,共20分)1.某进程在运行过程中需要等待从磁盘上读人数据,此时该进程的状态是( C )。

A. 从就绪变为运行B. 从运行变为就绪C. 从运行变为阻塞D. 从阻塞变为就绪2.可重定位内存分区分配目的为( A )。

A.解决碎片问题B.便于多作业共享内存C.回收空白区方便D. 摆脱用户干预3.原语是( B )。

A.一条机器指令B. 若干条机器指令组成C.一条特定指令D. 中途能打断的指令4. 设备I/O方式有如下三种:( B )、( D )和( E )。

A.假脱机B. 询问C.联机D. 中断E.通道F. 脱机5.文件目录的主要作用是( A )。

A. 按名存取B. 提高速度C. 节省空间D. 提高外存利用率6.单机操作系统的共享资源是指( A )。

A. 内存、CPU、打印机B. 内存C. CPUD. 打印机7.操作系统负责为方便用户管理计算机系统的( C )。

A. 程序B. 文档资料C.资源D. 进程8.没有下列设备计算机无法工作( C )。

A. 软盘B. 硬盘C. 内存D. 打印机二、是非题(正确的划√,错误的划×,20分)(√)1.进程的互斥和同步的相互制约一般不会同时发生。

(√)2.多用户操作系统在单一硬件终端硬件支持下仍然可以工作。

(√)3,作业同步面向用户,而进程同步面向计算机内部资源管理控制。

(×)4.实时操作系统的响应系数最小,设备利用率最低。

(√)5.UNIX或Linux操作系统的最大特点是分时、多用户、多任务和倒树型文件结构。

(√) 6.常用的缓冲技术是解决慢速设备与快速CPU处理之间协调工作。

(√)7.死锁是指两个或多个进程都处于互等状态而无法继续工作。

(√)8. 多用户操作系统一定是具有多道功能的操作系统。

(√)9.一般的分时操作系统无法做实时控制用。

(√)10.一个物理硬盘可以分成多个逻辑硬盘分区进行面向用户文件系统的管理。

南邮《操作系统教程》课后答案

南邮《操作系统教程》课后答案

第一章1. 什么是操作系统?计算机系统中配置操作系统的主要目标是什么?答(p1):操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的一种系统软件。

配置操作系统的主要目标可归结为:(1) 方便用户使用(2) 扩大机器功能(3) 管理系统资源(4) 提高系统效率(5) 构筑开放环境。

2.计算机系统的资源可分成哪几类?试举例说明。

资源包括两大类:硬件资源和信息资源。

硬件资源分为处理器、存储器、I/O设备等;信息资源则分为程序和数据等。

*5、操作系统有哪些类型?它们有什么特征?7.什么是多道程序设计?采用多道程序设计技术有什么特点?答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一道程序。

操作系统在引入多道程序设计技术后,使得系统有了多道,宏观上并行,微观上穿行的特点。

采用多道程序设计减少了CPU时间的浪费,增加了系统吞吐量,提高了系统的效率。

第二章2.操作系统提供给用户的接口主要有哪些?答:主要通过程序接口和操作接口两种方式把他的服务和功能提供给用户。

3.什么事系统调用?系统调用与普通调用的区别是什么?答:系统调用本质上是应用程序请求操作系统内核完成某功能的一种过程调用,但它是一种特殊的过程调用,他与一般的过程调用有以下几方面明显差别:①调用形式不同②被调代码的位置不同③提供方式不同④调用的实现不同*4、系统调用有哪几种类型?第三章2.请描述进程的定义和属性。

答:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的独立单位。

进程的属性有:结构性•共享性•动态性•独立性•制约性•并发性3.请描述进程与程序的区别及关系。

答:程序是静止的,进程是动态的。

进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。

操作系统第六处理机调度

操作系统第六处理机调度
p_cpu=p_cpu-10; if(p_cpu-SCHMAG < 0 )
p_cpu = 0;
其中:SCHMAG 调度魔数10
这种负反馈的效果使得系统中在用户态下运行的进程能
均衡地得到处理机
可编辑ppt
27
第六章 小结
一. 处理机的二级调度
二. 作业调度
三. 进程调度
1. 作业的状态 2. 作业控制块 3. 作业调度的功能 4. 周转时间、带权周转时间:
可编辑ppt
7
2. 调度性能的衡量
通常采用平均周转时间和带权平均周转时间来衡量作 业调度算法性能的好坏。
(1) 周转时间:
一个作业提交给计算机系统到该作业的结果返回给 用户所需要的时间。
定义: ti = tci-tsi ti :作业周转时间 tci:作业完成时间 tsi: 作业提交时间
意义:说明作业i在系统中停留的时间长短
法本身的开销有时会远远大于先来先服务和小作业优先 调度算法的不足,这也是这两种算法被众多系统采用的 最根本的原因。
可编辑ppt
14
(三) 进程调度
一. 调度/分派结构
处理机分配由调度和分派两个功能组成。
1. 调度:
组织和维护就绪进程队列。包括确定调度算法、按 调度算法组织和维护就绪进程队列。(按调度原则 选择进程)
定义、物理意义
5. 常用的作业调度算法 先来先服务 短作业优先
1. 进程调度的功能
2. 调度方式: 非剥夺方式 剥夺方式
3. 常用的进程调度算法: 优先数调度 循环轮转调度
4. 调度用的进程状态变迁图
(多种进程状态及变迁)
可编辑ppt
28
带权周 转时间
可编辑ppt

操作系统 调度算法

操作系统 调度算法
磁带机剩余: 磁带机剩余:2 磁带机剩余: 磁带机剩余:0
最短作业(进程) 最短作业(进程)优先
• 11:30 JOB4完成,JOB3调入内存,执行。 : 完成, 调入内存, 完成 调入内存 执行。 JOB3 50K
磁带机剩余: 磁带机剩余:1
• 11:40 JOB3完成。 : 完成。 完成
作业 JOB1 JOB2 JOB3 JOB4 JOB5
到达时间
进入内存
开始执行
完成 10:25 10:55 11:40 11:30 11:10
周转 25 35 70 55 30
10:00 10:20 10:30 10:35 10:40
10:00 10:20 11:30 10:35 10:55
10:00 10:25 11:30 11:10 10:55
答案: 答案: 先来先服务: 先来先服务: (25+35+70+40+50)/5=44 + + + + ) 最短作业优先: 最短作业优先: (25+35+70+55+30)/5=43
• 10:25 JOB1完成,JOB2开始执行。 : 完ห้องสมุดไป่ตู้, 开始执行。 完成 开始执行 15K JOB2 60K • 10:30 JOB3到达,未能调入内存。 : 到达,未能调入内存。 到达
磁带机剩余: 磁带机剩余:3
最短作业(进程) 最短作业(进程)优先
• 10:35 JOB4进内存,等待。 : 进内存, 进内存 等待。 JOB4
60分钟 分钟 110分钟 分钟 110分钟 分钟
1.0 11/6 110/15
平均周转时间: 平均周转时间:93.33分钟 分钟 平均带权周转时间: 平均带权周转时间:3.39

模拟批处理多道操作系统的作业调度

模拟批处理多道操作系统的作业调度

石家庄经济学院实验报告(学院)系: 信息工程学院专业: 网络工程**: ***班级: 网络2班学号: ****************: ***日期:2010 年 1月 22 日printf("第%d个作业:状态:",i+1);scanf("%s",&w[i].state);printf("第%d个作业:主存:",i+1);scanf("%d",&w[i].store);printf("第%d个作业:磁带:",i+1);scanf("%d",&w[i].tape);}2、算法设计:(1)算法选择函数:int choice()函数功能:根据要求选择FCFS或SFJ。

入口参数:c出口参数:i流程图见图1图1 作业调度算法选择流程图(2)先来先服务函数(FCFS):int FCFS()函数功能:FCFS的运算过程入口参数:F出口参数:j或-1流程图见图2所示:图2 先进先出算法流程图(3)短作业优先服务函数(SFJ):int SFJ()函数功能:SFJ的运算过程入口参数:S出口参数:j或-1流程图见图3所示:图3 短作业优先算法流程图(4)随机数算法操作函数功能:输入随机数模拟处理器调度入口参数:time_t和k出口参数:p和q流程图:无(5)撤离作业算法操作函数功能:主存中的作业按运行的时间来决定撤离的先后次序入口参数:h 和l出口参数:H和L流程图见图4所示:图4 撤离作业算法流程图(6)主功能函数:void Administer()函数功能:实现函数要求。

入口参数:无出口参数:无流程图见图5所示:图5 主功能算法流程图2.随机函数不大于0.5,转入主存3.随机数大于0.5,查看主存,并按先进先出算法调度4. .随机数大于0.5,查看主存,并按短作业优先服务算法调度5.显示五个作业的信息状态6. .随机函数不大于0.5,转入主存,并根据已在主存中的作业需运行的时间来决定撤离的先后次序7. 显示五个作业的信息状态六.设计总结通过此次实验不仅巩固了作业调度还把处理器调度算法进一步熟练运用了。

操作系统第03讲:调度算法

操作系统第03讲:调度算法

高级调度 后备 作业 队列 事件发生
时间片完 低级调度 就绪 队列 等待 队列
进程完成 CPU 等待事件
第3讲 调度算法
9
批处理系统:三级调度模型 批处理系统:
中级调度(内存调度) 管理挂起就绪队列和挂起等待队列; 中级调度(内存调度):管理挂起就绪队列和挂起等待队列;
提高主存利用率, 提高主存利用率,调节系统负荷 进行程序的调试、检查和改正; 进行程序的调试、检查和改正; 当系统出现故障或某些功能受到破坏时, 当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障 高级调度 后备作业队列 就绪队列 挂起就绪队列 中级调度 挂起等待队列 时间片完 低级调度 CPU 完成
0、进程 运行;进程 、3处于就绪队列; 、进程1运行 进程2、 处于就绪队列 运行; 处于就绪队列; 8、进程 执行 操作,进入等待队列;进程 运行,进程 处于就绪队列; 执行I/O操作 运行, 处于就绪队列; 、进程1执行 操作,进入等待队列;进程2运行 进程3处于就绪队列 11、进程 执行 操作,进程 运行;就绪队列空;等待队列:1、2; 执行I/O操作 运行; 、进程2执行 操作,进程3运行 就绪队列空;等待队列: 、 ; 12、进程 执行 操作,无进程执行,CPU空闲;等待队列:1、2、3; 执行I/O操作 空闲; 、进程3执行 操作,无进程执行, 空闲 等待队列: 、 、 ; 13、进程 的I/O结束,进程 运行;等待队列:1、2; 结束, 运行; 、进程3的 结束 进程3运行 等待队列: 、 ; 14、进程 3执行完,进程 的I/O结束;2运行;等待队列:1; 执行完, 结束; 运行 等待队列: ; 运行; 、 执行完 进程2的 结束 16、进程 的I/O结束,进程 继续运行 非抢占式 ;就绪队列:1; 结束, 继续运行(非抢占式 、进程1的 结束 进程2继续运行 非抢占式);就绪队列: ; 17、进程 执行完;进程 运行;就绪队列和等待队列:空 执行完; 运行; 、进程2执行完 进程1运行 就绪队列和等待队列: 29、进程 执行完。 执行完。 、进程1执行完

操作系统原理第六章处理机调度

操作系统原理第六章处理机调度
6.4 UNIX系统的进程调度
*
6.2 作业调度
2. 平均带权周转时间w (1) 定义 一个作业的周转时间与其运行时间的比值。 wi = tri为作业i的实际执行时间,ti进入磁盘后备队列的时间 (2) 意义 说明作业i在系统中相对等待时间。 (3) 平均周转时间 t =
*
6.2 作业调度
作业调度的功能
确定数据结构 建立作业控制块jcb (job control block)。
2
作业控制块记录了每个作业类型、状态、资源请求及分配情况。
确定调度策略与调度算法 按一定的调度策略从磁盘中存放的大量作业中挑选一个或几个作业投入运行。
分配资源 为选中的作业分配所需要的系统资源(主存、外设等)。
*
6.2 作业调度
四. 作业调度算法性能的衡量 采用平均周转时间和平均带权周转时间来衡量作业调度算法性能的好坏。 1. 周转时间 一个作业提交给计算机系统到该作业的结果返回给用户所需要的时间。 (1) 定义 ti = tci - tsi ti—作业i的周转时间 tsi—作业i的提交时间(磁盘后备队列) tci—作业i的完成时间。 (2) 意义 说明作业I在系统中停留时间的长短。 (3)平均周转时间 t = (n为作业个数)
善后处理 收回该作业所占用的全部资源,撤消作业控制块以及与该作业有关的全部进程。
*
作业控制块
6.2 作业调度
三.作业控制块 每个作业进入系统时,有系统为其建立jcb。作业控制块jcb存在于系统的整个过程中,jcb是一个作业存在的标志。 jcb的主要内容如下: 作 业 名 资 源 要 求 资 源 使 用 情况 估计执行时间 进入系统时间 最迟完成时间 开始执行时间 要求的主存量 已执行时间 要求外设的类型及台数 主存地址 要求文件量和输出量 外设台号 类 型 优 先 级 控制方式 作业 状态 作业类型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(p->kstime.shi==0&&p->kstime.fen==0)
{ p->kstime.shi=xttime.shi;
p->kstime.fen=xttime.fen;
}
p->yxtime=p->yxtime+10;
printf("\t\t** **\n");
printf("\t\t** 作业调度采用先来先服务算法 **\n");
printf("\t\t** 进程调度采用可抢占的优先级调度算法 **\n");
printf("\t\t********************************************\n");
p->link=second;
first->link=p;
second=NULL;
insert=1;
}
else
{
first=first->link;
second=second->link;
}
int insert=0;
if((ready==NULL)||time_cmp(p->tjtime,ready->tjtime)==-1) //提交时间最短的插到队首
{
p->link=ready;
ready=p;
}
else
{
first=ready;
printf("进程名\t 提交时间 需要运行时间 优先数\n");
for(i=1;i<=num2;i++)
{
if(b->state=='W')
printf("%s\t %d:%d\t %d %d \n",b->name,b->tjtime,b->xytime,b->pri,b->state);
{
if(a.shi<b.shi) return -1;
else if(a.shi==b.shi&&a.fen<b.fen) return -1;
else if(a.shi==b.shi&&a.fen==b.fen) return 0;
return 1;
for(i=1;i<=num;i++)
{
printf("\n 进程No.%d:\ntf("\n 请输入进程名:");
scanf("%s",p->name);
p->tjtime.shi=0,p->tjtime.fen=0;
{ if(c->state=='S'||c->state=='W')
printf(" %s \t %d:%d \t %d %d %d \n",d->name,d->tjtime.shi,d->tjtime.fen,d->xytime,d->yxtime,d->pri);
if(d->link==NULL)break;
if(p->yxtime==p->xytime)
shunxu1();
}
else
{ printf("%s\n",p->name);
if(p->kstime.shi==0&&p->kstime.fen==0)
{ p->kstime.shi=xttime.shi;
if(p->link->kstime.shi==0&&p->link->kstime.fen==0)
{ p->link->kstime.shi=xttime.shi;
p->link->kstime.fen=xttime.fen;
}
second=first->link;
while(second!=NULL)
{
if(time_cmp(p->tjtime,second->tjtime)==-1) /*若插入进程比当前进程提交时间小,*/
{ /*插入到当前进程前面*/
scanf("%d",&p->pri);
printf("\n");
p->state='S';
p->yxtime=0;
p->kstime.shi=0,p->kstime.fen=0;
p->link=0;
fcfs();
}
else
{ printf("\n 您的输入有误!!请重新输入\n");
float s1=0,s2=0;
printf("\t\t********************************************\n");
printf("\t\t** 题目:两道道批处理系统的两级调度-2 **\n");
printf("\t\t** 计算机学院 级计算机科学与技术班 **\n");
}
int time_j(struct time c,struct time d)
{ int s;
s=c.shi*60+c.fen-d.shi*60-d.fen;
return s;
}
void fcfs() /* 先来先服务调度函数*/
{
PCB *first, *second;
shuru();
getchar();
p=ready;
while(1)
{ c=p;
for(i=1;i<=num2;i++)
{ if(time_cmp(c->tjtime,xttime)==0||time_cmp(c->tjtime,xttime)==-1)
{
int shi; //时
int fen; //分
};
struct time xttime; //系统时间
int flag=0; //记录内存作业数
struct pcb /* 定义进程控制块PCB */
{
char name[10]; //进程名
q->wctime.fen=xttime.fen;
flag--;
num2--;
q->state='F';//把作业状态置为已完成
}
void shunxu2()
{ if(one==NULL) {one=p->link;q=one;}
else
{ q->link=p->link;
if(b->link==NULL)break;
b=b->link;
}
getchar();
}
void main() /*主函数*/
{
xttime.shi=10;
xttime.fen=00;
PCB *second,*c;
int i,x,y;
d=d->link;
}
if(flag==0)printf("内存内作业为空");
else yunxing();
}
void jiuxuzy()
{ int i;
PCB *b;
b=p;
printf("**就绪的作业\n");
p->link->yxtime=p->link->yxtime+10;
if(p->link->yxtime==p->link->xytime)
shunxu2();
}
else
{ printf("%s\n",p->name);
}*ready=NULL,*one=NULL,*p,*q=NULL;
typedef struct pcb PCB;
int num,num2;
int time_cmp(struct time a,struct time b) //时间比较函数 a<b返回-1 ;a==b返回0; a>b返回1;
p->kstime.fen=xttime.fen;
}
p->yxtime=p->yxtime+10;
if(p->yxtime==p->xytime)
shunxu1();
}
}
void neicunzy()
#include "stdio.h"
#include <stdlib.h>
#include <conio.h>
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
struct time //定义时间结构体
q=p->link;
}
p->link=q->link;
q->link=NULL;
q->wctime.shi=xttime.shi;
相关文档
最新文档