操作系统--处理调度与死锁

来源:互联网 发布:爱情是如何产生的知乎 编辑:程序博客网 时间:2024/04/30 23:42

1.     处理机的调度层次

(1)    高级调度,又称为作业调度或者长程调度,将作业调入内存

作业:除了程序和数据,还有一份作业说明书。批处理系统以作业为基本单位从外存调入内存的。

(2)    低级调度,又称为进程调度或者短程调度,调度对象是进程(或内核级线程)

进程调度的方式:非抢占式和抢占方式

非抢占式特点:实现简单,系统开销小,适用于大多数批处理系统

抢占式:防止长进程长时间占用,提供更公平的服务。开销较大

抢占式应满足的原则:优先权原则,短作业优先,时间片原则

(3)    中级调度又称为中程调度

把那些暂时不能运行的进程放到外存。当内存空闲,进程具备运行条件时,调入内存。

2.     调度方式和调度算法的若干准则

(1)    面向用户的准则

a.     周转时间短作业被提交到作业完成的时间包括:作业在外存等待调度的时间,进程在就绪队列等待调度的时间,在CPU上执行的时间,等待I/O时间

周转时间:从提交到完成的时间T

服务时间:作业运行的时间 Ts

带权周转时间:T/Ts

b.     响应时间快 用户提交一个请求开始,到系统首次响应的时间

c.     截止时间的保证必须完成的最迟时间

d.     优先权原则

(2)    面向系统的准则

a.     系统的吞吐量高单位时间内系统完成的作业数

b.     处理机利用率高

c.     各类资源的平衡利用

3.     调度算法

(1)    先来先服务(FCFS)适用于作业调度和进程调度,比较有利于长作业,不利于短作业

(2)    多作业优先(SJF)降低了平均等待时间,提高了系统吞吐量

对长算法不利,未考虑作业的紧迫程度,

(3)    非抢占式优先权算法主要用于批处理系统

(4)    抢占式优先权算法适用于严格的实时系统,以及对性能要求较高的批处理和分时系统

a.     优先权的类型静态优先权和动态优先权

b.     静态优先权是创建进程时确定的,而且在进程整个运行期间保持不变

确定优先权的依据:进程类型,进程对资源的需求,用户要求

特点:简单易行,系统开销小,但不够精确

c.     动态优先权优先权随着进程推进而改变

(5)    高响应比优先调度算法

优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间

该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长时间得不到服务。计算响应比,会增加系统开销。

(6)    基于时间片的轮转调度算法

时间片的确定:选择小的时间片有利于段作业,但会频繁的发生中断,进程上下文切换,增加系统的开销。时间片很长,便成了先来先服务。所以时间片略大于一次典型的交互所需的时间合适。

a.      多级反馈队列调度算法

设置多个就绪队列,每个队列有不同的优先级。第一个队列优先级最高,其余队列优先权逐渐降低。优先权越高,执行的时间片越短,

当进程进入内存后,先放入第一队列末尾,时间片结束为完成,转到第二队列的末尾。

仅当第一队列空闲时,调度程序才调度第二队列中的进程运行。

4.     实时调度

最早截止时间优先(EDF)

最低松弛度优先(LLF)  根据任务的紧急(或松弛)程度,来确定任务的优先级。

5.     产生死锁的原因和必要条件

(1)    死锁:多个进程运行过程中因争夺资源而造成一种僵局

(2)    产生死锁的原因:竞争资源(多个进程共享资源,其数目不满足进程需要)

                进程间推进顺序非法(请求和释放资源顺序不当)

(3)    产生死锁的必要条件

a.     互斥条件一段时间内某个资源只由一个进程占用

b.     请求和保持条件已经保持了至少一个资源,请求新的资源,而资源又被其他进程占用

c.     不可剥夺条件进程获得资源,在未使用完之前,不能被剥夺

d.     环路等待条件  发生死锁,必然存在一个进程---资源环形链

6.     处理死锁的基本方法

(1)    预防死锁破坏死锁产生必要条件的一个或几个

(2)    避免死锁资源动态分配过程中,用某种方法防止系统进入不安全状态  银行家算法

(3)    检测死锁

(4)    解除死锁撤销或者挂起一些进程

7.     预防死锁

(1)    一次性申请整个运行过程中所需的全部资源

特点:简单,易于实现很安全,资源被浪费严重,进程等待资源延时

(2)    当一个已经保持了某些资源的进程,再提出新的资源请求不能立即满足时,必须它已经保持的所有资源

特点:导致反复的申请和释放资源,进程被无限推迟增加了系统的开销,降低系统的吞吐量

(3)    所有资源按类型进行线性排队,并赋予不同的序号。

特点:资源利用率和系统吞吐量有明显的改善,分配序号限制了新设备的增加

8.     系统安全状态

安全状态:允许进程动态的申请资源,但系统在进行资源分配之前,应先计算资源分配的安全性,若此次分配不会导致系统进入不安全状态,则将资源分配给进程

9.     死锁的检测与解除

死锁的检测使用资源分配图

死锁的解除:剥夺资源,撤销进程

0 0