欢迎来到天天文库
浏览记录
ID:59269061
大小:218.50 KB
页数:41页
时间:2020-09-22
《操作系统第5章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章资源分配与调度5.1资源管理概述5.1.1资源管理的目的和任务:1、保证资源的高利用率;2、在“合理”时间内使所有顾客有获得所需资源的机会;3、对不可共享的资源实施互斥使用;4、防止由资源分配不当而引起的死锁。5.1资源管理概述5.1.1资源管理的目的和任务对资源的管理应包括以下几个方面:1、资源管理的描述--数据结构2、确定资源的分配原则和调度原则3、执行资源分配(实施)4、存取控制和安全保护5.1.2资源的几种分类方法5.2资源分配机构描述资源的管理和控制信息的数据结构称为资源分配的机构。在教材上列出了两种:资源描述器rd:每个资源一个rd资源信息块rib:
2、每类资源一个rib6(1)资源描述器①资源描述器定义描述描述各类资源的最小分配单位的数据结构称为资源描述器rd。如:主存分区分配方法中,最小分配单位为主存分区。②资源描述器内容资源名、资源类型、最小分配单位的大小、地址、分配标志、描述器链接信息、存取权限、密级、存取时间20KB052KB66KB130KB230KB256KB1主存程序4程序1程序3OS内存分布状况图7(2)资源信息块①资源信息块定义描述某类资源的请求者、可用资源和该类资源分配程序等必要信息的数据结构。②资源信息块rib请求者队列可利用资源队列资源分配程序等待队列头指针可利用资源队列头指针资源分配程序
3、入口地址资源信息块示意图8(3)资源信息块例中央处理机资源信息块内容PCB1PCB2PCBk进程调度程序ready_q_start可用处理机信息scheduler_addrCPU中央处理机资源信息块示意图5.3资源分配策略5.3.1概述资源分配有两种方式:静态分配:当一个进程(或程序)运行前,将它要求的资源一次分配加该进程,直到该进程终止,释放其占用的所有资源。这种分配方法效率太低;动态分配:当一个进程要求使用某个(类)资源时,向系统提出资源的请求,系统响应程序的请求将某种资源分配给请求者,这种方法使得系统资源的利用率提高,但有可能造成死锁。5.3资源分配策略几种分
4、配策略:1、先请求先服务(FIFO)2、优先级调度3、均衡调度4、针对设备特性的调度如磁盘调度5.4死锁例1:有两个进程P1和P2,它们在运行的过程中要共享使用两个独占设备R1和R2。设SR1:表示设备R1可用,初值为1;SR2表示设备R2可用,两个进程并发执行的程序如下:5.4.1死锁的概念在这两个进程并发执行时,当P1进程占用R1、P2进程占用R2时,P1要求R2,由于P2已占用R2而得不到,P1进程只有等待;P2申请R1,由于P1已占用R1,而得不到,P2进程只有等待,就出现了死等的情况。5.4.1死锁的概念教材上关于死锁的定义:两个或两个以上并发进程,如果每个
5、进程持有某种资源,而又等待着本组其他进程释放其保持着的资源,从而使得该组进程都无法向前推进。此时,每个进程都占用了一定的资源,但又都不能向前推进,这种循环等待的僵局称为死锁。5.4.1死锁的概念例2:三个进程共享使用一台打印机的程序若有一个进程少写了一个V操作。5.4.1死锁的概念例3:生产者-消费者问题当缓冲区满时,生产者仍可顺利执行p(mutex)操作,于是它对缓冲区有控制权,然后,当它执行p(empty)时,由于没有空缓冲区被挂起。能将这个生产者释放的是有一个消费者从缓冲区中取走一个产品,并执行v(empty)操作,但由于缓冲区已被生产者占用,出现了死锁。5.4
6、.2死锁的起因死锁产生的原因(1)资源竞争。(2)进程推进顺序不当。为了研究解决死锁的方法,可借助于有向图这一强有力的工具。图中有两种节点:方块和圆圈。圆圈代表进程,方块代表资源。从资源节点(方块)到进程节点(圆圈)的有向弧表示资源已经分配给进程;从进程到资源的有向弧表示进程当前正处于阻塞状态,等待资源变为可用。资源分配图RASBTDUC(a)进程A分配了一个资源(b)进程B请求了一个资源(c)进程D和进程C已处于死锁状态资源分配图RACSFWBDTEUVG资源分配图5.4.2死锁的起因产生死锁的四个必要条件:1、互斥条件2、不可剥夺条件3、部分分配4、环路条件5.4
7、.3预防死锁一、解决死锁问题的几个策略为了不发生死锁,必须设法破坏产生死锁的四个必要条件之一。条件1:难以否定,但可采用相应的技术,如利用假脱机技术,即用可共享使用的设备模拟非共享的设备;条件2:容易否定,可制定相应的规则即可,例如,当一个进程申请某资源被拒绝,则必须释放已占用的资源,如需要再与其它所需资源一起申请。对CPU还可进行可剥夺分配。5.4.3预防死锁条件3:也是很容易否定的,只要分配策略上规定一个进程(或程序)一次将所需资源一次申请到位。用完后释放。可以全部用完后,统一释放,也可使用完后立即释放,只要是一次申请到的,系统就不会出现死锁。条
此文档下载收益归作者所有