操作系统调度与死锁理论题问题详解
实用文档 第三章第三章处理机调度与死锁处理机调度与死锁 1.1.高级调度与低级调度的主要任务是什么高级调度与低级调度的主要任务是什么? ? 为什么要引入中级调度为什么要引入中级调度? ? (1)高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任 务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存, 并为其创 建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。 (2)低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是按 照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。 (3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让 那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。此 时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级 调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。 2.2. 处理机调度算法的共同目标是什么处理机调度算法的共同目标是什么? ? 批处理系统的调度目标又是什么批处理系统的调度目标又是什么? ? 共同目标:资源利用率,公平性,平衡性,策略强制执行。 批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用 率高。 6.6.为什么要引入高响应比优先调度算法?它有何优点?为什么要引入高响应比优先调度算法?它有何优点? 在批处理系统中,FCFS 算法所考虑的只是作业的等待时间,而忽视了作业的运 行时间。而SJF 算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等 待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑作业运行 时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而 实用文档 改善了处理机调度的性能。 7.7.试说明低级调度的主要功能。试说明低级调度的主要功能。 保存处理机的现场信息、按某种算法选取进程、把处理机分配给进程。 12.12.试比较试比较 FCFSFCFS 和和 SJFSJF 两种进程调度算法。两种进程调度算法。 相同点:两种调度算法都可用于作业调度与进程调度 不同点:FCFS 调度算法每次都从后备队列中选择一个或多个最先进入该 队列的 作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于 长作业/进程,不利于短作业/进程。 SJF 算法每次调度都从后备队列中选择一个或若干个运行时间最短的作 业, 调入 内存中运行。该算法有利于短作业/进程,不利于长作业/进程。 13.13.在时间片轮转法中,应如何确定时间片的大小?在时间片轮转法中,应如何确定时间片的大小? 时间片应略大于一次典型的交互需要的时间。一般因考虑三个因素:系统对相应 时间的要求、就绪队列中进程的数目和系统的处理能力。 20.20.按调度方式可将实时调度算法分为哪几种?按调度方式可将实时调度算法分为哪几种? 非抢占式和抢占式。 非抢占式又分为非抢占式轮转调度算法和非抢占式优先调度 算法,抢占式又分为基于时钟中断的抢占式优先级调度算法和立即抢占的优先级 调度算法。 实用文档 27.27.何谓死锁?产生死锁的原因和必要条件是什么?何谓死锁?产生死锁的原因和必要条件是什么? 死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局, 当进程处于这种 僵持状态时,若无外力作用,它们都将无法再向前推进。 产生死锁的原因为竞争资源和进程间推进顺序非法。 其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。 29.29.请详细说明可通过哪些途径预防死锁。请详细说明可通过哪些途径预防死锁。 (1)摈弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要 的所有资源分配给它; (2)摈弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不 能立即满足时,必须释放它已保持的所有资源,待以后需要时再重新申请; (3)摈弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程对资源 的请求必须严格按序号递增的次序提出。 21.21.在银行家算法的例子中,如果在银行家算法的例子中,如果 P0P0 发出的请求向量由发出的请求向量由 Request0(0,2,0)Request0(0,2,0)改为改为 Request0(0,1,0),Request0(0,1,0),问系统可否将资源分配给它问系统可否将资源分配给它? ? ProcessAllocation A B C P0 P1 Need A B C 7, 3, 3 0, 2, 0 Available A B C 2, 2, 00, 2, 0 3, 0, 2 实用文档 P2 P3 P4 3, 0, 2 2, 1, 1 0, 0, 2 Work A B C Need A B C 6, 0, 0 0, 1, 1 4, 3, 1 进程/资 源情况 P1 P3 P0 P2 P4 AllocationWork+AllocationFinish A B CA B C 5, 2, 2 7, 3, 3 7, 5, 3 10, 5, 5 10, 5, 7 Ture Ture Ture Ture Ture 2, 2, 00, 2, 03, 0, 2 5, 2, 20, 1, 12, 1, 1 7, 3, 37, 3, 30, 2, 0 7, 5, 36, 0, 03, 0, 2 10, 5,4, 3, 10, 0, 2 5 可以. 首先,Request0(0,1,0)=Need0(7,4,3), Request0(0,1,0)=Available(2,3,0); 分配后可修改得一资源数据表(表略),进行安全性检查,可以找到一个安全序列 {P1,P3,P0,P2,P4}, 因此,系统是安全的,可以立即将资源分配给 P0. 3 31.1. 在银行家算法中,若出现下述资源分配情况,试问:在银行家算法中,若出现下述资源分配情况,试问: 实用文档 Process P0 P1 P2 P3 Allocation 0032 1000 1354 0332 0014 Need 0012 1750 2356 0652 0656 Available 1622 P4 (1)(1) 该状态是否安全该状态是否安全? ? (2)(2) 若进程若进程 P2P2 提出请求提出请求 Request(1, 2, 2, 2)Request(1, 2, 2, 2)后,系统能否将资源分配给后,系统能否将资源分配给 它它? ? 解: (1) 进程/资 源情况 P0 P3 P4 P1 P2 Work A B C D 1, 6, 2, 2 1, 6, 5, 4 1, 9, 8, 6 1, 9, 9, 10 2, 9, 9, 10 Need A B C D 0, 0, 1, 2 0, 6, 5, 2 0, 6, 5, 6 1, 7, 5, 0 AllocationWork+Allocation A B C DA B C D 0, 0, 3, 21, 6, 5, 4 0, 3, 3, 21, 9, 8, 6 0, 0, 1, 41, 9, 9, 10 1, 0, 0, 02, 9, 9, 10 3, 12, 14, 14 Fin