计算:带权周转时间=周转时间/服务时间;完成时间:FCFS按顺序完成作业,SJF完成第一个作业后选择服务时间最短的作业依次完成;
3.最先优先权调度算法类型:
1)非抢占式优先权算法
2)抢占式优先权算法,实时性更好。 优先权类型:
1)静态优先权:进程优先权在整个运行期不变。
特点:简单,但低优先权作业可能长期不被调度(饥饿)。
2)动态优先权:进程优先级可随进程的推进或等待时间的增加而改变。 优点:长短兼顾 缺点:需经常计算各进程优先级 高响应比优先调度算法:(短作业RP大)
响应比Rp=(Tw+Ts)/Ts=(等待时间+要求服务时间)/要求服务时间
=优先权=响应时间/要求服务时间
4.时间片轮转调度:系统能在给定的时间内响应所有用户的请求
时间片大小的确定:太大:退化为FCFS;太小:系统开销过大 作业名 到达时间 服务时间 RR q=1 完成时间 周转时间 A 0 4 15 15 B 1 3 12 11 3.67 C 2 4 16 14 3.5 D 3 2 9 6 3 E 4 4 17 13 3.33 平均 11.8 3.46 带权周转时间 3.75 RR q=4 完成时间 周转时间 4 4 7 6 2 11 9 2.25 13 10 5 17 13 3.33 8.4 2.5 带权周转时间 1 时间片大小不同时带权周转时间于完成时间也不同;
实时调度:对用户的实时响应
实现实时调度的基本条件 1.提供必要的调度信息
(1)就绪时间;(2)开始/完成截止时间;(3)处理时间;(4)资源要求;(5)优先级; 2.系统处理能力强 3.采用抢占调度方式
1)剥夺方式:一般都采用此方式
2)非剥夺方式(实现简单):一般应使实时任务较小,以及时放弃CPU。 4.具有快速切换机制
1)具有快速响应外部中断能力。 2)快速任务分派
死锁:指多个进程在运行过程中因争夺资源而造成的一种僵局。 产生死锁的原因。
1、竞争资源引起死锁。
2.进程间推进顺序非法引起死锁。
产生死锁的必要条件
1.)互斥条件(资源的临界性) 2.)请求和保持条件 3.)不剥夺条件 4.)环路等待条件
处理死锁的基本方法
1.预防死锁:
破坏4个条件之一:有效,使资源利用率低。 2.避免死锁:防止进入不安全态。
3.检测死锁:检测到死锁再清除。 4.解除死锁:与“检测”配套。
1、)互斥条件是资源固有属性,不能避免。 2、)摒弃请求和保持条件
3、)摒弃“不剥夺”条件,增加系统开销,且进程前段工作可能失效。 4、)摒弃“环路”条件
有序资源分配法:为资源编号,申请时需按编号进行。
缺点:(1)新增资源不便,(原序号已排定)(2)资源与进程使用顺序不同造成浪费
(3)用户不自由
在“避免死锁”方法中的判断条件
安全状态:能找到安全序列的状态为安全状态。(系统按某种顺序并发进程都能达到获
得最大资源而顺序完成的序列为安全序列。)例: 进程 P1 P2 P3 最大需求 10 4 9 已分配 5 2 2 可用 3 安全序列:p2->p1->p3
银行家算法避免死锁
available[j]=k: 系统现有Rj类资源k个; max[i,j]=k: 进程i需要Rj的最大数k个; alloc[i,j]=k: 进程i已得到Rj类资源k个; need[i,j]=k:
进程i需要Rj类资源k个
有:need[i,j]= max[i,j]-alloc[i,j] (requesti
进程i请求资源数;worki:进程i执行完后系统应有资源数(也即可用数)
finish[i]:布尔量,表进程i能否顺序完成。 )
Allocation:已分配;Available:可分配 Need:需求
1.Work:=Available;2.Finish[i]=false need<=work则Finish[i]=true;
3.work=Available+work; 直到进程的Finish[i]都为true时系统处于安全状态
死锁的解除
1) 剥夺资源。 2) 撤消进程。 第四章
1.高速缓存:是现代计算机结构中的一重要部件,其容量大于或远大于寄存器,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器.
2.磁盘缓存:本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储空间的扩充,即利用主存中的存储空间,来暂存从磁盘中读出(或写入)的信息。 3.程序的装入方式分为:
1绝对装入方式:编译后,装入前已产生了绝对地址(内存地址)○,装入时不再作地址重定
位,适用于单道系统。
2可重定位装入方式:○静态重定位:装入时完成,主要工作是对相对地址中的指令和数据地
址的调整过程;可重定位装入方式在装入后不能移动程序
3动态运行时装入方式:○该情况一般在执行时才完成相对和绝对地址的转换且有硬件的支持,
能保证进程的可移动性 4.连续分配方式分为:
1单一连续分配:○是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。
可把内存分为系统和用户两个部分系统区仅提供给OS使用,通常是放在内存的低址部分,用户区是系统区以外的全部内存空间,提供给用户使用。
2固定分区分配:○是最简单的一种可运行多道程序的存储管理方式,是将内存用户空间分为
若干个固定大小的区域,在每个分区中只装入一道作业,这样把用户空间划分为几个分区,便允许有多到作业并发运行。特点:简单,有碎片(内零头),浪费。划分分区大小的方法:分区大小相等;分区大小不等。内存分配:将分区按大小排序,建立分区使用表,并将其地址、分配标识作记录
3动态分区分配:是根据进程的实际需要,动态地为之分配内存空间。 ○
分区分配中常用的数据结构有两种形式:空闲分区表;空闲分区。 分区分配算法:
1首次适应算法FF:要求:空闲分区链以地址递增的次序链接; ○
特点:找到第一个大小满足的分区,划分,有外零头,低址内存使用频繁,增加系统开销
2循环首次适应算法:从上次找到的空闲分区的下一个开始查找。 ○
特点:空闲分区分布均匀,提高了查找速度;缺乏大的空闲分区。
3最佳适应算法:○每次分配内存是总是把能满足要求、又是最小的空闲区分配给作业,避免
大材小用。分区按大小递增排序;分区释放时需插入到适当位置
4最坏适应算法:选一个最大的空闲区分割给作业使用。优点:使剩下的空闲区不至太小,○
产生碎片的几率最小对中小作业有利,查找效率高。缺点:缺乏大的空闲分区
5快速适应算法:○按空闲分区容量分类,对每类相同容量的所有空闲分区,单独设立一个空
闲分区链表,管理索引表。优点:查找效率高;缺点:算法复杂,系统开销大。 5.动态分区存储管理中主要操作(分区分配操作):
1分配内存:系统应用某种算法,从空闲分区链(表)中找到所需大小的分区 ○
2回收内存:上邻空闲区:合并,改大小。下邻空闲区:合并,改大小,首址。上、下邻空○
闲区:合并,改大小。不邻接,则建立一新表项。 6.动态重定位的实现:p126
7.对换:把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。 类型:整体对换/进程对换:一整个进程为单位,应该于解决内存紧张
部分对换:页面对换/分段对换/部分对换:是请求分段和请求分页式存储管理的基础,提供虚存支持。
8.基本分页存储管理:不具备页面对换功能,不具备支持现实虚拟存储器的功能,要求把每个作业全部妆容内存后方可运行。
相对地址重定位寄存器页面或页:将一个进程的逻辑地址空间分成若干个大小相等的片,并为各页加以编号; 010000100365+地址结构: 31 12 11 5000作业J 0 15000主存处理机一侧存储器一侧 2500 物理块或页框:把内存空间分成与页面相同大小的若干个存储块,并为它们加以编号; 12500365LOAD1,2500 25001000010100LOAD1,2500