操作系统第四版第四章
操作系统-第四章调度
长程调度
就绪队列 长程调度 处理机 后备队列 短程调度 就绪/挂起队列
交互用户
进程调度算法---先来先服务(FCFS)
• 该方法按照到达的先后顺序排队, 每次调 度队首的进程 • FCFS算法属于非剥夺调度方式, 实现简单 , 看似公平 • 但,对于那些后进入队列而运行时间较短 的进程,或I/O型的进程而言,可能需要长 时间等待
响应比高者优先
• 同短进程优先和剩余时间最短者优先调度 算法一样,很难准确估计进程的预期执行 时间 • 每次调度之前都需要计算响应比,增加了 系统开销
反馈调度方法
• 前面介绍的几种调度方法都存在各自不同的问题 ,尤其是短进程优先,剩余时间最短者优先 以及 响应比高者优先调度算法,都需要估计进程的预 期执行时间,如果估计不准确,将影响调度结果 和系统性能 • 如果根据进程执行历史,而非未来,进行调度, 将解决这个问题 • 就是一种根据进程执行历史调整调度方法的调度 方法,它结合了优先级和时间片轮转调度思想.
基于优先级的调度算法
• 基于时间片轮转调度算法循环式的为每个 被调度的进程分配一个时间片,对每个进程 都是公平的 • 然而,实际应用中,进程的性质可能是不同 的,例如,一个与用户进程小户的前台进程急 迫的需要对用户的输入作出响应,而一个后 台打印机进程的迫切性也许就不那么重要 • 因此可以为每个进程定义一个优先级,优先 级越高的进程将优先获得处理机的调度
调度目标
• 满足用户的要求:
– 响应时间,周转时间,截止直接
• 满足系统的需求:
– 系统吞吐量,处理机利用率,各类资源的平衡 使用,公平性及优先级
《操作系统》第4章教材习题解答
第4章存储管理“练习与思考”解答1.基本概念和术语逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。
内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。
由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。
由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。
程序和数据装入内存时,需对目标程序中的地址进行修改。
这种把逻辑地址转变为内存物理地址的过程称作重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。
这种技术称为紧缩(或叫拼凑)。
虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。
若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。
此时,系统好像很忙,但实际效率却很低。
这种现象称为“抖动”。
2.基本原理和技术(1)存储器一般分为哪些层次?各有何特性?存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。
(完整word版)操作系统第四章
第四章一、问答题1、什么叫临界资源?什么叫临界区?对临界区的使用应切合哪些规则?(同步体制应依据的准则是什么?)2、死锁产生的 4 个必需条件是什么?它们是相互独立的吗?3、何谓死锁?为何将全部资源按种类给予不一样的序号,并规定全部进度按资源序号递加的次序申请资源后,系统便不会产存亡锁?4、什么是安全状态?怎么判断系统能否处于安全状态?5、简述死锁定理和排除死锁的方法。
二、计算和证明1、目前系统中出现下述资源分派状况:Allocation Need Available P0 0 0 3 2 0 0 1 2 1 6 2 2P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 3 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6利用银专家算法,试问假如进度P2 提出资源恳求Request(1,2,2,2)后,系统可否将资源分派给它?2、若系统有某类资源m×n+1 个,同意进度履行过程中动向申请该类资源,但在该系统上运转的每一个进度对该资源的据有量任何时辰都不会超出m+1 个。
当进度申请资源时只需有资源还没有分派完则知足它的申请,但用限制系统中可同时履行的进度数来防备发存亡锁,你以为进度调动同意同时履行的最大进度数应该是多少?并说明原由。
3、n 个进度共享某种资源R,该资源共有 m个,每个进度一次一个地申请或开释资源。
假定每个进度对该资源的最大需求量均小于m,且各进度最大需求量之和小于 m+n,试证明在这个系统中不行能发存亡锁。
4、目前某系统有同类资源7 个,进度 P,Q 所需资源总数分别为5, 4。
它们向系统申请资源的序次和数目如表所示。
回答:序次进度申请量1 Q 22 P 13 Q 14 P 35 P 26 Q 1问:采纳死锁防止的方法进行资源分派,请你写出系统达成第 3 次分派后各进度据有资源量,在此后各次的申请中,哪次的申请要求可先获取知足?5、一个计算机系统有 6 个磁带驱动器 4 个进度。
操作系统第4章ppt课件
THANKS
感谢观看
P/V操作
对信号量进行加减操作,实现进程同 步与互斥。
经典同步问题及其解决方法
1 2
生产者-消费者问题
通过两个信号量分别控制生产者和消费者进程, 确保生产者和消费者之间的同步与互斥。
哲学家进餐问题
通过引入资源分级法或信号量集机制,避免死锁 的发生,确保哲学家进餐过程中的同步与互斥。
3
读者-写者问题
。
多线程模型比较分析
01
多对一模型Leabharlann 将多个用户级线程映射到一个内核级线程上。该模型下,线程管理在用
户空间完成,线程的调度采用非抢占式调度,由线程库负责。
02
一对一模型
将每个用户级线程都映射到一个内核级线程上。该模型下,线程的创建
、撤销和同步等都在内核中实现,线程的调度由内核完成。
03
多对多模型
将多个用户级线程映射到少数但不止一个内核级线程上。该模型结合了
前两种模型的优点,允许多个用户级线程映射到不同的内核级线程上运
行。
线程同步与互斥机制
互斥锁
采用互斥对象机制,只有拥有互斥对象的线程才有访问公共 资源的权限。因为互斥对象只有一个,所以能保证公共资源 不会同时被多个线程同时访问。
信号量
信号量是一个整型变量,可以对其执行down和up操作,也 就是常见的P和V操作。信号量初始化为一个正数,表示并发 执行的线程数量。
死锁避免:银行家算法是一种典型的 死锁避免算法。该算法通过检查请求 资源的进程对资源的最大需求量是否 超过系统可用资源量来判断是否分配 资源给该进程。如果分配后系统剩余 资源量仍然能够满足其他进程的最大 需求量,则分配资源,否则不分配资 源。
死锁检测:通过定期运行死锁检测算 法来检测系统中是否存在死锁。常见 的死锁检测算法有资源分配图算法和 银行家算法等。如果检测到死锁发生 ,则需要采取相应措施来解除死锁, 例如通过撤销部分进程或抢占部分资 源来打破死锁状态。
操作系统第四章进程调度和死锁习题及答案
第四章一、单项选择题1.为了根据进程的紧迫性做进程调度,应采用(B )。
A.先来先服务调度算法 B. 优先数调度算法 C.时间片轮转调度法 D.分级调度算法2.采用时间片轮转法调度是为了( A)。
A.多个终端都能得到系统的及时响应 B.先来先服务C. 优先数高的进程先使用处理器 D.紧急事件优先处理3.采用优先数调度算法时,对那些具有相同优先数的进程再按( A )的次序分配处理器。
A 先来先服务 B. 时间片轮转 C. 运行时间长短 D.使用外围设备多少4. 当一进程运行时,系统强行将其撤下,让另一个更高优先数的进程占用处理器,这种调度方式是( B )。
A. 非抢占方式B.抢占方式 C. 中断方式 D.查询方式5.( B)必定会引起进程切换。
A.一个进程被创建后进入就绪态B.一个进程从运行态变成阻塞态C.一个进程从阻塞态变成就绪态6.( B)只考虑用户估计的计算机时间,可能使计算时间长的作业等待太久。
A.先来先服务算法B.计算时间短的作业优先算法C.响应比最高者优先算法 D.优先数算法7.先来先服务算法以( A )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小8.可以证明,采用( C )能使平均等待时间最小。
A.优先数调度算法 B.均衡调度算法C.计算时间短的作业优先算法 D.响应比最高者优先算法9.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取(D )。
A均衡调度算法 B.优先数调度算法C.先来先服务算法D.响应比最高者优先算法10.作业调度算法提到的响应比是指( B )。
A.作业计算时间与等待时间之比B.作业等待时间与计算时间之比C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比11.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( D )来决定。
A.设备管理 B.作业控制 C.驱动调度D.进程调度12.系统出现死锁的根本原因是( D )。
U034计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第4章
(1) 作业调度:又称宏观调度,或高级调度。其主要 任务是按一定的原则对外存输入井上的大量后备作 业进行选择,给选出的作业分配内存、输入输出设 备等必要的资源,并建立相应的进程,以使该作业 的进程获得竞争处理机的权利。另外,当该作业执 行完毕时,还负责回收系统资源。 (2) 交换调度:又称中级调度。其主要任务是按照给 定的原则和策略,将处于外存交换区中的就绪状态 或就绪等待状态的进程调入内存,或把处于内存就 绪状态或内存等待状态的进程交换到外存交换区。 交换调度主要涉及到内存管理与扩充。 (3) 进程调度:又称微观调度或低级调度。其主要任 务是按照某种策略和方法选取一个处于就绪状态的 进程占用处理机。在确定了占用处理机的进程后,
4.3.1 进程调度的功能 进程调度的具体功能可总结如下: (1) 记录系统中所有进程的执行情况 作为进程调度的准备,进程管理模块必须将系统中 各进程的执行情况和状态特征记录在各进程的PCB 表中。并且,进程管理模式根据各进程的状态特征 和资源需求,将各进程的PCB表排成相应的队列并 进行动态队列转接。进程调度模块通过PCB变化来 掌握系统中所有进程的执行情况和状态特征,并在 适当的时机从就绪队列中选择出一个进程占据处理 机。
4.1.2 调度的层次 处理机调度问题实际上也是处理机的分配问题。显 然,只有那些参与竞争处理机所必需的资源都已得 到满足的进程才能享有竞争处理机的资格。这时, 它们处于内存就绪状态。这些必需的资源包括内存、 外设及有关数据结构等。从而,在进程有资格竞争 处理机之前,作业调度程序必须先调用存储管理、 外设管理程序,并按一定的选择顺序和策略从输入 井中选择出几个处于后备状态的作业,为它们分配 内存等资源和创建进程,使它们获得竞争处理机的 资格。
4.1.3 作业与进程的关系 作业可被看作是用户向计算机提交任务的任务实体, 例如一次计算、一个控制过程等。反过来,进程则 是计算机为了完成用户任务实体而设置的执行实体, 是系统分配资源的基本单位。显然,计算机要完成 一个任务实体,必须要有一个以上的执行实体。也 就是说,一个作业总是由一个以上的多个进程组成 的。那么,作业怎样分解为进程呢?首先,系统必 须为一个作业创建一个根进程。然后,在执行作业 控制语句时,根据任务要求,系统或根进程为其创 建相应的子进程,然后,为各子进程分配资源和调 度各子进程执行以完成作业要求的任务。
操作系统第四章49页PPT文档
抢占方式 把处理器分配给某个进程后,在该进程尚未终止 或阻塞时,允许系统调度程序根据某种原则,暂 停正在执行的进程,回收已经分配的处理器,并 将处理器重新分配给其它更为紧急的进程。
4. 线程调度
作业与进程的关系
作业是用户向计算机提交任务的任务实体。一 个作业是指在一次应用业务处理过程中,从输 入开始到输出结束,用户要求计算机所做的有 关该次业务处理的全部工作。进程则是计算机 为了完成用户任务实体而设置的执行,是系统 分配资源的基本单位。一个作业总是由一个或 多个进程组成的。作业分解为进程的过程是: 系统首先为一个作业创建一个根进程。然后, 在执行作业控制语句时,根据任务要求,系统 或根进程为其创建相应的子进程。最后,进行 进程调度,为各子进程分配资源和调度各子进 程执行,以完成作业要求的工作。
调度的层次
2. 交换调度:
3.
又称中级调度。其主要任务是按照给
定的原则和策略,将处于外存交换区中的
就绪状态或等待状态的进程调入内存,或
把处于内存就绪状态或内存等待状态的进
程交换到外存交换区。
调度的层次
3.进程调度 进程调度又称为低级调度或微观调度。其主要任务是按 照某种策略和算法,将处理机分配给一个处于就绪状态 的进程。进程调度可分为下列两种方式:
提交状态 后备态 运行态 完成
进入系统的时间开始执行时间已运行时间内存 地址外设台数
作业的优先级
作业调度的功能
2.从后备队列中挑选出一部分作业投入执行。作业调度程 序根据选定的调度算法,从后备作业队列中挑选出若干 作业去投入执行。
3.为被选中作业做好执行前的准备工作。作业调度程序为 选中的作业建立相应的进程,并为这些进程分配它们所 需要的系统资源,如分配给它们内存、外存、外设等。
操作系统 第四章课后部分答案
6、为什么要引进动态重定位?如何实现?为了能够在程序执行过程中,每当要访问指令或数据时,将要访问的存储单元的逻辑地址转换成物理地址,引入了动态重定位。
使用动态地址重定位,一个作业可以占用非连续存储空间;能实现虚拟存储;有利于程序段的共享。
可在系统中增加一个重定位寄存器,用它来存放程序在内存中的起始地址。
基本的地址变换计算方法是将内存单元的逻辑地址与重定位寄存器的值相加,得到单元的物理地址。
在可重定位分区式存储管理、分页式存储管理、分段式存储管理方法中,都有不同的地址变换位方法:P128,P135,P138 9、分区存储管理常用哪些分配策略?比较它们的优缺点。
分区存储管理中常采用的分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
a.首次适应算法的优缺点:保留了高址部分的大空闲区,有利于后到来的大型作业的分配;低址部分不断被划分,留下许多难以利用的、小的空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时的系统开销。
b.循环首次适应算法的优缺点:使内存中的空闲分区分布得更为均匀,减少了查找时的系统开销;缺乏大的空闲分区,从而导致不能装入大型作业。
c.最佳适应算法的优缺点:每次分配给文件的都是最适合该文件大小的分区;内存中留下许多难以利用的小的空闲区。
d.最坏适应算法的优缺点:给文件分配分区后剩下的的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大的空闲区,对大型文件的分区分配不利。
14、较详细的说明引入分段存储管理方式是为了满足用户哪几个方面的需求。
方便编程、信息共享、信息保护、动态增长、动态链接。
P13617、分页和分段存储管理有何区别?(1) 页是信息的物理(存储)单位,分页是为实现离散分配方式,以消减内存的零头,提高内存的利用率。
或者说,分页仅仅是由于系统管理的需要而不是用户的需要。
段则是信息的逻辑单位,它含有一组其意义相对完整的信息。
计算机操作系统完整(第四版)第四五章ppt课件
一起,形成装入模块。子2
子2
装入:子装2 入程序
装入模块
由目装标模入块程序(Loader)将装入模块复制到内
存中。
内存
.
7
2、地址空间的概念
物理(绝对)地址——程序执00行00000001
00002
每00个0 内主 存单元的固定顺序地址. (编号)。 内50存0 :由字或字000节0 组主 成的一维.. 线性地址空间
.
19
• 4.3.5基于索引搜索的动态分区分配算法
1、快速适应算法:空闲分区按容量大小进行分 类。对于每一类具有相同容量的所有空闲空间分 区,单独设立一个空闲分区链表。在内存中设立 一张管理索引表,每个表项对应一种空闲分区类 型。
优点:查找效率高。保留大分区也不会产生碎片
缺点:分区归还主存时算法复杂。
进行紧凑
按动态分区方式
时提高形成了连续系空闲统区 效率。
进行分配
缺点:需要动态重定位“硬件”机构支持,增加
修改有关的
修改有关的
返回分区号
了系统数成据结本构,并轻度降低了数据程结构序执行速度,及首“批 紧
凑”处理增加了系统开销。
无法分配
返回
动态重定位分区分配算法流程
.
29
4.4、对换(Swapping)
成的,以后不再改变。
5000
15000
动态重定位:地址变换是在程序指令执行
作时业进地址行空的间 。
内存空间
.
9
0 0
BR:重定位寄存器 VR: 变址寄存器
.
10
4、程序的链接
链 接把:一0个程C模a序块ll BA相; 关的一组目标模块和0 系JS统模R块”调LA”;用模块
操作系统第四章课后答案
操作系统第四章课后答案第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
计算机操作系统(第四版)第四章分页与分段存储管理
图中地址长度为32位,其中0~11位为页内地址, 12 ~ 31位为页号,那么块(页)的大小为212=4KB;逻 辑地址有220=1M页。Fra bibliotek思考题?
若给定一个逻辑地址空间中的地址为A,页面 大小为L,则页号P和页内地址W如何计算? P=INT[A/L] W=[A]MOD L
3.信息保护 信息保护是对相对完整意义的逻辑单位(段)进行保护。 4.动态链接 通常一个源程序经过编译后所形成的若干个目标程序, 还需再经过链接,形成可执行代码后才能运行,这种在装入 时进行的链接称为静态链接。动态链接是指在作业运行之前, 并不把几个目标程序段都链接起来,而是先将主程序对应的 目标程序装入内存并启动运行,当运行过程中又需要调用某 段时,再将该段(目标程序)调入内存并链接起来。所以, 动态链接是以段为基础的。 5.动态增长 在实际系统中,往往有些数据段会不断地增长,而事先 却无法知道数据段会增长到多大,分段存储管理方式可以较 好地解决这个问题。
3.地址变换机构
段表寄存器
段表始址 段表长度 TL
越界中断 ﹥
逻辑地址
段号S 1 位移量w 100
段号 0 1 2 3
段长SL 基址 15K 7K 8K 10K 40K 80K 120K 150K
物理地址 80k+100
物理地址:段的基址+段内地址(位移量)
为了实现从逻辑地址到物理地址的变换功能,系统 中设置了段表寄存器,用于存放段表始址和段表长 度。在进行地址变换时,系统将逻辑地址中的段号S 与段表长度TL进行比较。若 S≥TL,表示段号太大, 访问越界,于是产生越界中断信号;若未越界,则 根据段表的始址和该段的段号,计算出该段对应段 表项的位置,从中读出该段在内存中的起始地址, 然后再检查段内地址d是否超过该段的段长SL。若超 过,即 d≥SL,同样发出越界中断信号;若未越界, 则将该段的基址与段内地址w相加,得到要访问的内 存物理地址。
操作系统(第四版)第04-2章
放置策略 哪里有空放哪里
4.7.1 请求分页中的硬件支持
1、页表机制 页号 中断位 内存块号 外存地址 访问位修改位
中断位:表示该页是在内存还是在外存 访问位:表示该页最近被访问过,根据访问位
来决定淘汰哪页 修改位:查看此页是否在内存中被修改过
页面分配和置换策略(续)
可变分配局部置换 先为进程分配一定数目的内存空间。发 生缺页时,只能从该进程在内存中的页 中换出某页。但若该进程频繁发生缺页 中断,则再为该进程分配若干物理块。
3、分配算法
平均分配算法 将系统中所有可供分配的物理块平均分 配给各个进程。(未考虑各进程大小不 同)
按比例分配算法 按照进程页数与所有进程页数之和的比 例关系分配内存空间。但注意分配的数 目必须大于最小物理块数
4.7 请求分页存储管理
请求式分页也称虚拟页式存储管理 与纯分页存储管理不同,请求式分页
管理系统在进程开始运行之前,不是装 入全部页面,而是装入一个或零个页面, 之后根据进程运行的需要,动态装入其 它页面;当内存空间已满,而又需要装 入新的页面时,则根据某种算法淘汰某 个页面,以便装入新的页面
需要解决的问题
4.6.2 虚拟存储器的实现方式
虚拟存储器的实现必须建立在离散分配 存储管理的基础之上。 分页请求系统
– 调页功能和页面置换功能 – 需软件(OS)和硬件(页表机制、缺页中
断机构、地址变换机构)的支持
请求分段系统
– 调段功能和段的置换功能 – 需软、硬件的支持
4.6.3 虚拟存储器的特征
连续性 驻留性 一次性
将哪部分装入内存 系统如何获知进程当前所需页面不在主
存,何时将页面装入 当发现缺页时,如何把所缺页面调入主
操作系统第四章课后题答案
第四章1.为什么说多级反馈队列调度算法能较好地满足各类用户的需要(来自百度):答案一:多级反馈队列调度算法能较好地满足各种类型用户的需要。
对终端型作业用户而言,由于他们所提交的大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,他们的作业开始时像终端型作业一样,如果仅在第1级队列中执行一个时间片即可完成,便可以获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第1,2,…,直到第n级队列中运行,然后再按时间片轮转方式运行,用户不必担心其作业长期得不到处理。
答案二:(惠州学院操作系统课后题)与答案一基本相似,可看做精简版。
答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。
对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
(3)长批处理作业,它将依次在第1 ,2 ,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
所以,多级反馈队列调度算法能满足多用户需求。
2.分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
操作系统课件第四版第四章
优点:装入过程简单。 缺点:过于依赖于硬件结构,不适于多道程序系统。
2.可重定位装入方式(也称为静态重定位或静 态地址映射)
是在程序执行之前进行重定位。它根据装配模 块将要装入的内存起始地址,直接修改装配模块中 的有关使用地址的指令。即当用户程序被装入内存 时,一次性实现逻辑地址到物理地址的转换,以后 不再转换(一般在装入内存时由软件完成)。 例如在图中以“0”作为参考地址的装配模块, 要装入以10000为起始地址的存储空间。显然在装入 程序之前,程序必须做一些修改才能正确运行。
Y
本次无法分配
N
N
m.size>u.size m.size-u.size≤size?
N
从 该 分 区 中 划 出 u.size 大小的分区
Y
将该表目以上的所有 表目下移一格 将该分区分配给申请者, 修改有关的数据结构 返 回
2)回收内存 当一个作业运行完毕释放内存时,系统根据释 放区的首地址,从空闲区说明表中找到相应的插入 点,此时可能出现下列四种情况(如下图所示,其 中F1,F2表示回收区的前、后空闲区): 当回收区既不与F1邻接,又不与F2邻接时(如A), 应为回收区单独建立一项新表目,填写回收区的起 址和大小,并根据其起址,插入到空闲区说明表的 适当位置。 当回收区只与插入点的前一个分区 F1 相邻接时 (如B),应将回收区与插入点的前一个分区合并, 不再为回收区分配新的表目,而只需修改 F1分区表 目的大小即可。
可执行文件 进程
在这个过程中,原程序的地址将产生变化: (1)编辑:使用符号地址 (2)编译:模块内符号地址解析 (3)链接:模块间符号地址解析
(4)装入:使用物理地址
符号地址:在源程序中,是通过符号名来访问子程序和 数据的,把程序中符号名的集合称为“名字空间”。
汤小丹 操作系统 第四版 第四章 课件
14
第四章 存 储 器 管 理
图4-2示出了这样的三步过程。本节将扼要阐述程序(含 数据)的链接和装入过程。
图4-2 对用户程序的处理步骤
15
第四章 存 储 器 管 理
4.2.1 程序的装入 为了阐述上的方便,我们先介绍一个无需进行链接的单
13
第四章 存 储 器 管 理
4.2 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后 再将其转变为一个可以执行的程序,通常都要经过以下几个 步骤:
(1) 编译,由编译程序(Compiler)对用户源程序进行编译, 形成若干个目标模块(Object Module);
(2) 链接,由链接程序(Linker)将编译后形成的一组目标 模块以及它们所需要的库函数链接在一起,形成一个完整的 装入模块(Load Module);
个目标模块的装入过程。该目标模块也就是装入模块。在将 一个装入模块装入内存时,可以有如下三种装入方式:
1. 绝对装入方式(Absolute Loading Mode) 当计算机系统很小,且仅能运行单道程序时,完全有可 能知道程序将驻留在内存的什么位置。此时可以采用绝对装 入方式。用户程序经编译后,将产生绝对地址(即物理地址) 的目标代码。 优点:装入过程简单 缺点:过于依赖于硬件结构,不适于多道程序系统
26
第四章 存 储 器 管 理
1. 划分分区的方法 可用下述两种方法将内存的用户空间划分为若干个
固定大小的分区: (1) 分区大小相等(指所有的内存分区大小相等)。 只适合于多个相同程序的并发执行,缺乏灵活性 (2) 分区大小不等。多个小分区,适量的中等分区、少量 的大分区 优点:易于实现,开销小 缺点:内碎片造成浪费,分区总数固定,限制了并发执 行的程序数目。
ch4-4.1主存器和4.2连续存储管理
伙伴系统演示(2)
4.2.4 主存不足的存储管理技术
移动技术,(内存压缩)
操作系统 作业1 空闲区 作业2 空闲区 作业3 空闲区
操作系统 作业1 作业2 作业3 空闲区
操作系统 作业1 作业2 作业3 作业4
空闲区
2 对换技术
• 对换的作用 • 对换进程的选择 • UNIX对换器 • Windows对换器
越界中断
多对基址/限长寄存器
重定位寄存器1 限长寄存器1
进程A 私有空间
共享区
重定位寄存器2 限长寄存器2
进程A虚CPU
重定位寄存器1
限长寄存器1
进程B 私有空间
物理主存
重定位寄存器2
限长寄存器2
进程B虚CPU
多对重定位寄存器支持主存共享
伙伴系统
• 最早于1963, Harry Markowitz所发明 • Knuth 在《计算机程序设计艺术》描述了
分区号 起始地址 长度 标志
1
8K
15k Job1
2
23k
30k Job4
3
63k 19K Job3
未分配区表 分区号 起始地址 长度
标志
1
53k
10k Free
2
73k
55k Free
可变分区回收算法
– 可变分区回收问题,(分区的合并)
1A
X
B
A
B
2A
X
A
3
X
BHale Waihona Puke B4X链表空闲区管理方法
• 空闲区开头单元存放本空闲区 长度及下个空闲区起始地址,把 所有空闲区都链接起来,设置第 一块空闲区地址指针,让它指向 第一块空闲区地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2) 在分页系统中的页面其大小应适中。页面若太小,一方 面虽然可使内存碎片减小,从而减少了内存碎片的总空间, 有利于提高内存利用率,但另一方面也会使每个进程占用较
多的页面,从而导致进程的页表过长,占用大量内存; 此
外,还会降低页面换进换出的效率。然而,如果选择的页面 较大,虽然可以减少页表的长度,提高页面换进换出的速度,
辅存
寄存器 高速缓存 主存 磁盘缓存 磁盘 可移动存储设备
速 度
容 量
4.1层次的存储器结构
4.1.2主存储器与寄存器
1.主存储器
主存储器是计算机系统中一个主要部件,用于保存 运行时的程序和数据,其容量可达是MB到数GB。其 速度远低于CPU 执行指令的速度,高于外存速度。
2. 寄存器
寄存器访问速度最快,但价格昂贵,但容量小。
3. 运行时动态链接(Run-time Dynamic Linking) 近几年流行起来的运行时动态链接方式,是对上述在 装入时链接方式的一种改进。这种链接方式是将对某些模 块的链接推迟到执行时才执行,亦即,在执行过程中,当 发现一个被调用模块尚未装入内存时,立即由OS去找到该 模块并将之装入内存, 把它链接到调用者模块上。凡在执
4.2 程序的装入和链接
内存
库
编译程序产 生的目标模 块
链接 程序
装入模块
装入 程序
第一步
„
第二步
第三步
4-2 对用户程序的处理步骤 图 4-1
4.2.1 程序的装入
1. 绝对装入方式(Absolute Loading Mode) 程序中所使用的绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址
4.2.2 程序的链接
1. 静态链接方式(Static Linking)
0 L-1 0 M-1 0 N-1 模块 A CALL B ; Return ; 模块 B CALL C ; Return ; 模块 C Return ; (a ) 目标模块 L+M+N-1 0
模块 A JSR “L” Return ; 模块 B JSR “L+M” Return ; 模块 C Return ; (b ) 装入模块
3. 进程的换出与换入
(1) 进程的换出。 每当一进程由于创建子进程而需要更多的内存空间, 但又无足够的内存空间等情况发生时,系统应将某进程换 出。 其过程是:系统首先选择处于阻塞状态且优先级最低 的进程作为换出进程,然后启动盘块,将该进程的程序和
数据传送到磁盘的对换区上。若传送过程未出现错误,便
(4) 最坏适应算法WF
(5) 快速适应算法QF,又称为分类搜索法
分区分配表:
0K 15K 20K 33K 38K 48K 68K 80K
空闲区表
始址 33K 20K 15K 48K 80K
首次适应算法FF
长度 18K 5K 23K 20K 30K 标志 未分配 未分配 未分配
空
空
已分配区表
始址 0K 38K 68K 长度 15K 10K 12K 10K 5K 13K 标志 J1 J2 J3 J4 J5 J6 空
1 10 00 LOAD 1,25 0 0
2 50 0
3 65
1 25 00
3 65
5 00 0 作业地址空间
1 50 00
内存空间
图 4-2 作业装入内存时的情况
3. 动态运行时装入方式(Denamle Run-time Loading) 动态运行时的装入程序,在把装入模块装入内存后, 并不立即把装入模块中的相对地址转换为绝对地址,而 是把这种地址转换推迟到程序真正要执行时才进行。因 此, 装入内存后的所有地址都仍是相对地址。
110K 120K
110K 15K 48K
分区分配表:
0K 15K 38K 48K 53K 66K 68K 80K
空闲区表 最佳适应算法BF
始址 15K 48K 66K 53K 80K 长度 23K 20K 15K 2K 30K 标志 未分配
未分配
未分配
空
空
已分配区表
始址 0K 38K 68K 长度 15K 10K 12K 10K 5K 13K 标志 J1 J2 J3 J4 J5 J6 空
时, 不仅要求程序员熟悉内存的使用情况,而且一旦程序
或数据被修改后,可能要改变程序中的所有地址。因此, 通常是宁可在程序中采用符号地址,然后在编译或汇编时, 再将这些符号地址转换为绝对地址。
2. 可重定位装入方式(Relocation Loading Mode)
0 1 00 00 1 00 0 LOAD 1,25 0 0
行过程中未被用到的目标模块,都不会被调入内存和被链
接到装入模块上,这样不仅可加快程序的装入过程,而且 可节省大量的内存空间。
4.3 连续分配方式
4.3.1 单一连续分配
这是最简单的一种存储管理方式,但只能用于单用户、 单任务的操作系统中。采用这种存储管理方式时,可把内
存分为系统区和用户区两部分,系统区仅提供给OS使用,
但却又会使页内碎片增大。因此,页面的大小应选择得适中,
且页面大小应是2的幂,通常为512 B~8 KB。
分页管理中页与页框的对应关系示意图
2. 地址结构
分页地址中的地址结构如下: 31
页号P
12
11
位移量W
0
对某特定机器,其地址结构是一定的。若给定一个逻 辑地址空间中的地址为A,页面的大小为 L,则页号P和页
通常是放在内存的低址部分;2 固定分区分配
1. 划分分区的方法 (1) 分区大小相等, 即使所有的内存分区大小相等。 (2) 分区大小不等。
2. 内存分配
图 4-4 固定分区使用表
4.3.3 动态分区分配
1. 分区分配中的数据结构 (1) 空闲分区表。
内地址d可按下式求得:
A P INT L d [ A]MODL
3. 页表
用户程序 0页 1页 2页 3页 4页 5页
…
页表 页号 块号 0 2 1 3 2 6 3 8 4 9 5
… …
内存 0 1 2 3 4 5 6 7 8 9 10
n页
图 4-11 页表的作用
4.5.2 地址变换机构
110K 120K
110K 48K 53K
3. 分区分配操作
从头开始查表
1) 分配内存 内 存 分 配 流 程
检索完否? N m.size>u .size? Y m.size-u .size≤size? N 从该分区中划出 u .size大小的分区
Y
返回
N
继续检索下一个表项
Y
将该分区从链中移出
将该分区分配给请求者修 改有关数据结构 返回
4.1层次的存储器结构
4.1.3高速缓存和磁盘缓存
1. 高速缓存
其容量大于或远大于寄存器,而比内存约小两到三个数 量级左右,从几十KB到几MB,访问速度快于主存储器。
2.磁盘缓存
磁盘的I/O速度远低于对主存的访问速度,因此将频繁使 用的一部分磁盘数据和信息,暂时存放在磁盘的缓存中, 可以减少访问磁盘的次数。磁盘缓存本身不是一种实际 存在的存储介质,它依托于固定磁盘,是利用主存的存 储空间,来暂存从磁盘中读出(或写入)的信息。
(2) 空闲分区链。
前 向 指 针 N + 2 0 后 向 指 针 N + 2 0
N个字节可用
图 4-5 空闲链结构
分区分配表:
0K 15K 38K 48K 68K 80K 85K 98K 110K 120K
空闲区表
始址 15K 48K 80K 85K 98K 长度 23K 20K 30K 25K 12K 标志 未分配 未分配 未分配
请求分配 u .size分区 检索空闲分区链( 表)
无法分配 返回
否
空闲分区 总和≥u .size? 是 进行紧凑形 成连续空闲区
否
找到大于u .size 的可用区否?
按动态分区方式 进行分配
修改有关的 数据结构
修改有关的 数据结构
返回分区号 及首批
图 4-10 动态分区分配算法流程图
4.4 对换(Swapping)
1. 基本的地址变换机构 越界中断
页表寄存器 页表始址 + 页表长度 > 逻辑地址L 页号(3) 页内地址
页号 0 1 2 3
块号 1
b 物理地址 页表
图 4-13 分页系统的地址变换机构
• 例如指令 LOAD 1,2500 的地址变换过程如下:
• 把虚拟地址2500转换成页号P=2,位移量W=452;
第四章 存储器管理
渤海大学
2014-2015(1)学期
第四章 存储器管理
4.1 存储器的层次结构
4.2 程序的装入和链接 4.3 连续分配方式
4.4 对换(Swapping)(自学)
4.5 基本分页存储管理方式
4.6 基本分段存储管理方式
4.1层次的存储器结构
4.1.1多级存储器结构
CPU寄存器 主存
L-1 L
L+M-1 L+M
图 4-3 程序链接示意图
在将这几个目标模块装配成一个装入模块时,须解 决以下两个问题: (1) 对相对地址进行修改。 (2) 变换外部调用符号。
2. 装入时动态链接(Load
time Dynamic Linking)
装入时动态链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享。
1. 页面 1) 分页存储管理,是将一个进程的逻辑地址空间分成若干个 大小相等的片,称为页面或页,并为各页加以编号,从0开始, 如第0页、第1页等。相应地,也把内存空间分成与页面相同大 小的若干个存储块,称为(物理)块或页框(frame), 也同样为它 们加以编号,如 0# 块、 1# 块等等。在为进程分配内存时,以 块为单位将进程中的若干个页分别装入到多个可以不相邻接的 物理块中。由于进程的最后一页经常装不满一块而形成了不可 利用的碎片,称之为“页内碎片”。