操作系统(Operating System)9 单处理器调度

Ch 9 –Scheduling
第九章 单处理器调度
学习目标:
1.了解长程、中程和短程调度的区别
2.评估不同调度策略的性能

图9.1
如图9.1,多道程序设计的关键是调度,典型的调度有以上四种。
调度关系体现为:
图9.2
调度决定了那个进程须等待,那个进程能继续运行。本质上说,调度属于队列管理(managing queues)问题,用于在排队环境中减少演出并优化性能。

9.1.1短程调度
又被称作dispatcher( 分派程序),使用最频繁,精确地决定下次执行那个进程。当当前进程阻塞或前瞻当前运行进程的时,调用短程调度程序。
比如有:时钟中断,I/O中断,操作系统调用,信号。

9.2.1短程调度规则
短程调度的主要目标是,按照优化系统一个或多个方面行为的方式,来分配处理器时间。常用规则有:
图9.3.1
图9.4
9.2.3Selection Function & Decision Mode
调度函数和决策模式
关于调度函数,有三个重要参数

w = time spent in system so far, waiting
e = time spent in execution so far
s = total service time required by the process, including e; generally, this quantity must be estimated or supplied by the user.

决策模式Decision Mode分为
非抢占Non-preemptive
一旦进程处于运行状态,就不断执行直到终止。
抢占preemptive
正在运行进程可能呗操作系统中断,并转为就绪态。
虽然抢占策略会导致较大开销,但是能为所有进程提供较好服务,避免了任何一个进程长时间等待的情形。

周转时间和归一化时间
Turnaround Time (Tr) is service time + wait time
Normalized Turnaround Time (Tr / Ts) – ratio to actual service time
一般来说,进程执行的时间越长,可以容忍的延迟时间越长。
Bigger values indicate additional wait time with respect to execution time

下面我们分析一下几种不同的selection function

First-Come-First-Served (FCFS)
simplest 最简单
also known as FIFO
When the current process ceases to execute, the longest process in the Ready queue is selected优先选择Ready queue 中等待时间最长的进程
对于长进程更有优势(Normalized Turnaround更小),对短进程不友好。
另一个点,对于处理器密集型友好,对I/O密集型不友好。

为改善FCFS的不足,可以使用:
Round Robin轮转法
Uses preemption based on a clock
Also known as time slicing

Shortest Process Next(SPN)
Nonpreemptive policy
Shortest expected processing time is selected next
Possibility of starvation for longer processes
Disadvantage:
Need to know the required processing time of each process
If estimate is substantially under actual running time, the system may abort the job

这个文本编辑器

有问题!
未完待续

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
处理器系统的进程调度 1.实验目的 加深对进程概念的理解,明确进程和程序的区别; 深入了解系统如何组织进程、创建进程; 进一步认识如何实现处理器调度。 2.实验预备知识 进程的概念; 进程的组织方式; 进程的创建; 进程的调度。 3.实验内容 编写程序完成处理机系统中的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所作工作进程测试。 4.提示与讲解 这个实验主要要考虑三个问题:如何组织进程、如何创建进程和如何实现处理器调度。 考虑如何组织进程,首先就要设定进程控制块的内容。进程控制块PCB记录各个进程执行时的情况。不同的操作系统,进程控制块记录的信息内容不一样。操作系统功能越强,软件也越庞大,进程控制块记录的内容也就越多。这里的实验只使用了必不可少的信息。一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类: ① 标识信息 每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,它必须是操作系统分配的。在后面给出的参考程序中,采用编号方式,也就是为每个进程依次分配一个不相同的正整数。 ② 说明信息 用于记录进程的基本情况,例如进程的状态、等待原因、进程程序存放位置、进程数据存放位置等等。实验中,因为进程没有数据和程序,仅使用进程控制块模拟进程,所以这部分内容仅包括进程状态。 ③ 现场信息 现场信息记录各个寄存器的内容。当进程由于某种原因让出处理器时,需要将现场信息记录在进程控制块中,当进行进程调度时,从选中进程的进程控制块中读取现场信息进行现场恢复。现场信息就是处理器的相关寄存器内容,包括通用寄存器、程序计数器和程序状态字寄存器等。在实验中,可选取几个寄存器作为代表。用大写的全局变量AX、BX、CX、DX模拟通用寄存器、大写的全局变量PC模拟程序计数器、大写的全局变量PSW模拟程序状态字寄存器。 ④ 管理信息 管理信息记录进程管理和调度的信息。例如进程优先数、进程队列指针等。实验中,仅包括队列指针。
实现了如下四种调度算法的模拟: (1)时间片轮转调度 (2)优先数调度 (3)最短进程优先 (4)最短剩余时间优先 模拟过程使用了JProgressBar作为进程状态条,更为直观地观察到每个进程的执行状态。 程序用户说明: 1、在上图标号1处输入要创建随机进程的个数,仅可输入正数,非正数会有相关提示。然后点击标号2处的“创建进程”按钮,随进创建的进程显示在程序界面的中央窗口,如标号3所示。 2、创建好随机进程后,在标号4的选框选择将要模拟执行的调度算法,然后点击标号5处的“开始模拟”,程序开始执行。标号3的列表会显示相应的调度变化。 3、模拟过程中,可以继续添加新的进程,操作同上。 4、 一个算法模拟执行完毕之后,可以点击标号6的“复位”按钮,可以重置列表的内容为程序模拟运行前的内容。复位成功后,可以继续选择其他调度算法进行模拟。 5、标号7显示为程序模拟过程中的时间,从1秒开始累计。 6、点击标号8的“清空”按钮,可以清空类别的进程,以便程序的下次执行。 题目要求: 题目四 处理器系统的进程调度 一 、 课 程 设 计 目 的 1. 加深对进程概念的理解, 明确进程和程序的区别。 2. 深入了解系统如何组织进程、 创建进程。 3. 进一步认识如何实现处理器调度。 二 、 课 程 设 计 内 容 编写程序完成处理器系统中的进程调度, 要求实现时间片轮转、 优先数、 最短进程优 先和最短剩余时间优先四种调度算法。 实验具体包括: 首先确定进程控制块的内容, 进程控 制块的组成方式; 然后完成进程创建原语和进程调度原语; 最后编写主函数对所作工作进行 测试。 模拟程序只对你所设置的“ 虚拟 PCB” 进行相应的调度模拟操作, 即每发生“ 调度” 时, 显示出当前运行进程的“ 进程标识符”、“ 优先数”、“ 剩余运行时间” 等, 而不需要对系 统中真正的 PCB 等数据进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值