第三章

一、处理机调度与死锁
加粗样式处理机调度:多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。
提高处理机的利用率、改善系统性能,很大程度上取决于处理机调度的性能。
处理机调度便成为OS设计的中心问题之一。分配的任务由处理机调度程序完成。

1)仅有进程调度的调度队列模型

常见情况: 分时系统。 通常仅设置进程调度,用户键入的命令和数据,都直接送入内存。

调度对象: 处于就绪状态的进程。

组织形式: 栈、树或一个无序链表 用何种形式取决于OS类型和采用的调度算法。如:分时系统中把就绪进程组织成FIFO队列形式:按时间片轮转方式运行。   

 进程调度过程如下图:

 

调度算法:
1、先来先服务调度算法FCFS
(First Come First Service)
一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。
按照作业提交,或进程变为就绪状态的先后次序分派CPU;
新作业只有当当前作业或进程执行完或阻塞才获得CPU运行
被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。 (所以,默认即是非抢占方式)

不足:短作业C的带权周转时间竟高达100,这是不能容忍的;而长作业D的带权周转时间仅为1.99。 关于应用:有利于CPU繁忙型的作业,而不利于I/O繁忙的作业(进程)。 从程序规模上看,一般I/O繁忙型作业CPU进行处理的用时相对比较短,CPU繁忙型的作业相对较长。而FCFS不利于短作业,I/O繁忙型作业一旦排队靠后就会处于劣势。 另一方面,I/O繁忙型作业需频繁的请求I/O,即使排队靠前,但由于I/O请求阻塞,重新排队可能就会排到队尾(这一情况在其他算法下也是普遍的,但不同的算法,排队情况不同,相对的在照顾公平性上也会有所不同)。 目前大多数事务处理都属于I/O繁忙型作业。
2. 短作业(进程)优先调度算法SJF/SPF
优点:
通过上表可见采用SJF/SPF算法,平均周转时间、平均带权周转时间都有明显改善。SJF/SPF调度算法能有效的降低作业的平均等待时间,提高系统吞吐量。
方式:
分抢占和非抢占两种方式,上例为简单的非抢占式。

SJF/SPF的不足:     1. 对短作业有利,但同时造成了对长作业的不利。      2.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。      3.未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。
3. 基于时间片的轮转调度算法RR (Round Robin)
分时系统新需求:及时响应用户的请求;采用基于时间片的轮转式进程调度算法。
早期分时系统采用的是简单的时间片轮转法,进入90年代后广泛采用多级反馈队列调度算法。

三、实时调度

什么是实时系统?

指系统能够在限定的响应时间内提供所需水平的服务。 指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。

硬实时任务:必须满足任务对截止时间的要求 软实时任务:联系着一个截止时间,但不严格,可偶尔错过,不会对系统造成大的影响。 实时系统的任务往往带有某种程度的紧迫性,因而实时系统的调度有某些特殊要求。 为此引入适合的实时调度算法 为保证系统正常工作,调度应具备下列条件

硬实时任务:必须满足任务对截止时间的要求 软实时任务:联系着一个截止时间,但不严格,可偶尔错过,不会对系统造成大的影响。 实时系统的任务往往带有某种程度的紧迫性,因而实时系统的调度有某些特殊要求。 为此引入适合的实时调度算法 为保证系统正常工作,调度应具备下列条件

实现实时调度的基本条件

1)提供必要的信息

2)系统处理能力足够强

3)采用抢占式调度机制

4)具有快速切换机制

 

自调度方式的特点

优点:   1)易将单机环境下的调度机制移植到MPS中;   2)不会发生处理器忙闲不均的现象,有利于提高处理器的利用率。  缺点:       1)瓶颈问题。多处理器互斥访问唯一就绪队列。   2)低效性。高速缓存的使用效率很低。   3)线程切换频繁。相关的其他线程未必会同时获得处理器导致切换频繁。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值