




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 11 次 课 教 案 操作系统 课程 计本081-4 班级 年 月 日章节名称第4章 存储器管理教学目的与 要 求掌握存储管理的功能,理解地址映射的方法。教学内容4.1 存储管理的功能4.2 程序的装入与链接重 点地址映射难 点地址映射作 业教具与挂图教学过程(组织与方法)讲解与举例第4章 存储管理4.1 存储管理的功能一、地址映射地址映射指的是将用户程序的逻辑地址转换成内存中物理地址的过程。在一个程序装入到与其地址空间不一致的存储空间时,对有关地址部分的重新调整的过程称为地址的重定位。这个调整过程就是把程序地址空间中使用的逻辑地址变换成主存中物理地址的过程。地址重定位的方式有:静态重定位
2、和动态重定位。 静态重定位在装入一个作业时,把作业中的指令地址和数据地址全部转换成物理地址,由于地址转换工作是在作业开始执行前集中完成的,所以在执行过程中就不需要再进行地址转换工作,这种转换方式称为“静态重定位”。静态重定位的优点是实现比较简单,但缺点是需要为用户程序分配连续的内存空间而且程序在内存中不能进行移动。 动态重定位程序在执行过程中,当需要进行地址转换时,用逻辑地址加上重定位寄存器中的地址就可以得到相对应的物理地址。这种转换过程是在指令的执行过程中完成的,所以叫动态重定位。动态重定位方式的优点是用户作业不要求分配连续的存储空间,并且用户作业在执行过程中,可以动态申请存储空间和在主存中
3、移动,只需要更改重定位寄存器中的内容即可。这样便于多个进程共享同一个程序的副本。但缺点是代价大,需要附加的硬件地址变换机构来实现,并且实现地址转换的算法比较复杂。二、内存的分配与回收存储分配方式主要有以下两种: 静态分配 动态分配三、存储信息的保护 防止地址越界 每个进程都有自己独立的内存空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界。一般是通过界限寄存器来实现防止地址越界的存储保护,界限寄存器是被广泛使用的一种存储保护技术,机制比较简单,易于实现。 防止操作越权防止操作越权主要是针对多个进程所共享的区域进行保护的一种方式。对于允许多个进程共享的存储区域,每个进程都有自
4、己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权。四、虚拟存储器虚拟存储技术是将内存和外部存储器结合起来,只将进程的一部分放入内存,其余部分保留在辅存里,当执行到要访问的信息不在内存中时,再将这部分内容调到内存中。虚拟存储技术不需要用户去考虑内、外存的问题,一切由操作系统和硬件相配合来完成主机和外围联机存储器之间信息的动态调度。这样计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器,这个存储器称为虚拟存储器。虽然虚拟存储器是为了解决主存容量不够用而提出的,但实质上是解决了程序访问地址和主存的可用地址相脱离的问题。实现虚拟存储器,需要有一定的物质基础。其一是
5、需要有相当容量的辅存,以便足以存放多用户的作业地址空间。其二是要有一定容量的内存。其三是要有地址变换机构。然而引进虚存后系统就必须在地址变换上花费开销。所以设计虚拟存储器时应该在可能的情况下力求地址变换能快速地进行。4.2 程序的装入与链接(简介)图 用户程序的处理步骤一、程序的装入 绝对装入方式 可重定位装入方式 动态运行时装入方式 二、程序的链接链接程序的功能是将经过编译或汇编后所得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。实现链接的方法有三种: 静态链接方式(Static Linking) 装入时动态链接(Load-time Dynamic Linking) 运行
6、时动态链接(Run-time Dynamic Linking)第 12 次 课 教 案 操作系统 课程 计本081-4 班级 年 月 日章节名称第4章 存储器管理教学目的与 要 求理解连续分配方式原理,掌握固定分区和动态分区分配算法。教学内容4.3 连续分配方式重 点动态分区分配难 点动态分区中空闲区的排列方式作 业自编4.1、4.2教具与挂图教学过程(组织与方法)讲解与举例4.3 连续分配存储管理方式连续存储管理分配方式是指为一个用户程序分配一个连续的内存空间。连续分配方式主要有两种:单一连续分配和分区分配。一、 单一连续分配该方式是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系
7、统中。使用这种存储管理方式,内存的用户区被用户程序所独占,即用户区一次只分配给一个作业使用,并且作业一旦进入主存将一直占有主存直到它运行结束才能释放。二、固定分区分配固定分区的基本思想是系统预先将内存的用户区划分成若干个连续的区域,每一个区域称为分区。每个分区中最多只能装入一个作业,且作业也只能在它所驻留的分区中运行。分区一旦分好,每个分区的大小固定不再变化,且分区的个数也不再改变。由于分区大小是事先固定的,因而可容纳作业的大小受到限制,而且当用户作业的地址空间小于分区的存储空间时,造成存储空间浪费。系统将用户区划分成固定大小的分区,一般包含以下两种方法: 分区大小相等 分区大小不等通过上述分
8、析,无论是分区大小相等和分区大小不等的情况,当我们进行内存分配的时候,将满足条件的分区全部分配给该程序,而往往分区的大小都要大于用户程序的长度,因此,对于很多用户程序实际上只占用了分区的一部分空间,使分区中有一部分空间闲置不用,这实际上影响了主存空间的利用率。那么就会造成内存浪费的情况,这时当给用户程序分配内存时,余下的不能再利用的空间我们称之为碎片,对于固定分区是在分区内产生碎片,所以称为“内部碎片”。【例】假设内存大小为256KB,系统事先划分成5个分区,其中一个分区(032KB)为操作系统占有,其余4个分区为用户程序使用。各个分区的容量为16KB、32KB、64KB和112KB。假设有3
9、个做作业A、B、C请求进入主存,其大小分别为6KB、25KB、32KB,内存分配情况如图所示,其中阴影部分表示各个分区中不能再使用的空闲碎片。分区号起始地址长度状态32k16k已分配48k32k已分配80k64k已分配144k112k未分配分区说明表内存分配情况三、动态分区分配动态分区存储管理方式相对于固定分区存储管理方式提高了内存的利用率,更好的适应了用户程序的需要,但是随着用户进程的动态变化,系统经过一系列的内存的分配和回收过程后,在内存中将会出现一些小的空闲区而不能再被使用,这些小的不能再被利用的空闲区将会成为碎片,对于动态分区所产生的碎片是在空闲区外,所以称为“外部碎片”。动态分区是根
10、据用户程序的实际需要,为其分配一个连续的内存空间。在实现动态分区存储管理方式时,需要解决以下几个问题:分区分配所需要的数据结构分区分配算法分区的分配和回收 分区分配中的数据结构 空闲分区表采用动态分区方式管理主存时,主存储器中已占用分区和空闲分区的数目和大小都是在变化的。为了便于对主存空间的分配和回收,主存分配表可以用两张表格组成,一张“已分配区表”,另一张是“空闲区表”,如表所示。动态分区表格 (a)已分配表 (b)空闲区表序号起始地址大小标志1384KB120KB作业12624KB80KB作业23704KB296KB作业34空5空序号起始地址大小标志1352KB32KB未分配2504KB1
11、20KB未分配31000KB100KB未分配4空5空空闲分区链 分区分配操作 内存分配设用户请求的大小为u.size,空闲区的大小为m.size,分区分配过程如图所示。 分配内存流程图内存回收 可能会出现以下几种情况:回收区有下邻接空闲区F2回收区有上邻接空闲区F1回收区既有上邻接空闲区又有下邻接空闲区回收区既无上邻接又无下邻接空闲区 分区分配算法 首次适应算法首次适应算法要求空闲分区链按地址递增的顺序排列。首次适应算法优先利用内存低地址部分的空闲区,从而保留了高地址部分的大空闲区。这样当后续到达的一些大的用户作业就可以得到分配,但是该算法对低地址端频繁进行分割,留下许多难以利用的很小空闲分区
12、,每次查找都要从低地址部分开始查找,这样增加查找可用空闲分区开销。最佳适应算法最佳适应算法的基本思想是当用户作业提出申请内存的请求时,每次分配满足条件的最小分区给请求者,这时要求空闲分区链按大小递增的顺序排列。最佳适应算法优先利用了大小与程序要求最接近的空闲区,保留了大空闲区。但是,最佳适应算法看似最佳,其时不然。使用此方法当满足用户请求,进行分配后剩下的空闲区就是最小的,形成难于利用的空间。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储区的大量浪费。 最坏适应算法最坏适应算法是要给用户作业分配满足条件的最大分区,这时要求空闲分区链按大小递减的顺序排列。最坏适应算法总是挑选出最大的分
13、区分配给程序。分配给程序后剩下的空闲区较大,还能装下其它作业。但是,使用此算法最大空闲区总是首先被分配并被进行划分,以后如果有大的作业提出请求,很难满足其要求。 碎片问题不能供任何用户(或进程)使用的极小的空闲区称为碎片。碎片的出现造成了存储空间的浪费。在分区存储管理方式中,可以采取紧凑技术来解决碎片的问题。即把所有空闲区进行拼接形成大的空闲区,以便为该用户使用。紧凑工作要求大量程序和数据在内存中移动,虽然可以提高主存的利用率,但是将浪费许多系统资源和CPU的时间,增加了系统的开销。利用紧凑技术的内存管理一般采用动态重定位。第 14 次 课 教 案 操作系统 课程 计本081-4 班级 年 月
14、 日章节名称第4章 存储管理教学目的与 要 求掌握分页和分段两种存储管理方式,并能够计算物理地址。教学内容4.4 分页存储管理方式4.5 分段存储管理方式重 点分页和分段管理方式中的地址转换难 点分页和分段管理方式中的地址转换作 业自编4.3、4.4、4.5教具与挂图教学过程(组织与方法)讲解与举例4.4 分页存储管理方式连续分配存储管理方式会形成许多“碎片”,虽然可以通过“紧凑”的方法将碎片拼接成可用的大块空间,但须为此付出很大开销。如果能够允许将一个进程直接分散地分配到许多不相邻接的分区中,就不必再进行“紧凑”,基于这一思想产生了离散分配方式。根据离散分配时所用的基本单位的不同,又可把离散
15、分配方式分为以下三种: 分页存储管理 分段存储管理 段页式存储管理一、基本原理分页存储管理,是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0块、1块等等。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。 页表在分页存储管理下,进程的每个页面可以离散的放到内存的任一个物理块中,但是进程就是一个整体,系统必须要保证该进程的正确运行,那么就必须要知道该进程的每一个逻辑页面具体放入内存中
16、哪个对应的物理块。因此系统为每个进程建立一个数据结构页表,如图1所示。图1页表结构 页面大小的选择分页存储管理系统中,页面的大小是由硬件地址结构决定的,即是由系统硬件决定的。对于页面的选择会影响到系统的性能。如果页面太小,一方面虽然可以使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但又会使页内碎片增大。因此,页面的大小应选择得适中,并且页面大小应是2的幂,通常为512B8KB。 分页中的地址
17、结构在分页存储管理方式下,作业装入内存或进程访问某个逻辑地址中的数据时,由机器硬件将作业的逻辑地址划分为页号P和页内地址W,这是由系统地址结构所决定的,如图2所示。页号P页内地址W151090图2逻辑地址结构按照上述的结构来分,作业的逻辑地址被分为两部分。假设某系统地址为16位,则按上图的地址结构,两部分的地址长度为16位,09位为页内地址,即每页大小为210=1K;1015位为页号,即地址空间最多允许有26=64个页面。当给定一个逻辑地址空间中的地址为A时,则A转换为页号P和页内地址W可按下式求得:页号P=(int)A/L,页内地址W=A % L(取余)在分页存储管理方式中,相应的物理地址也
18、可以用两部分来表示:块号和块内地址。因此,如果已知页号和页内地址,相应的物理地址可以通过下式求得:物理地址=块号*页面大小+页内地址W【例1】设有一个页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2KB,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大?【例2】若进程程序长度为8KB,分页管理系统中的页面大小为2KB,如果该进程的页表如图3所示,求程序中逻辑地址3840和1F01H的物理地址。页号块号05132437图3 页表结构二、地址转换过程 基本地址变换图4 分页地址转换过程4.5 分段存储管理一、基本原理分段存储管理的基本思想是将用户程序根据其逻辑意义划分
19、成若干个段,每一段为一组逻辑意义完整的信息集合,每段有自己的名字(为了方便,通常用一个段号来表示),且每一个分段都是首地址为0的连续的一维地址空间。段的长度由其所包含的逻辑信息的长度所决定,因此,各段的长度可能不等。例如,一个C语言的程序一般包含有:主程序段main,数据段data,子程序段等等。分段存储管理方式在进行内存的分配时,以段为单位分配内存,每段分配一个连续的内存区,但各段不要求连续。 段表段式存储管理为作业的每一段分配一个连续的主存区域,作业的各段可以被装到不相连的几个区域中。为了能控制作业的正确执行,必须把作业的各段在主存储器中的位置记录下来。因此,在装入作业时,操作系统为作业建
20、立一张“段表”,段表中主要由段号、段长和段在内存的起始地址等信息组成,如表所示。段表段号段长起始地址 分段的地址结构段式存储管理提供给用户编程时使用的逻辑地址由两部分组成:段号和段内地址,其格式如图1所示:段 号段 内 地 址图1逻辑地址结构当地址结构确定以后,那么允许作业的最多段数及每段的最大长度也就限定了。假定地址用m位表示,其中段内地址占用了n位。那么,每个作业最多可分2(m-n)段,每段的最大长度可达2nB。例如,假设某机器的指定的地址为24位,其中8位表示段号,16位表示段内地址,那么系统允许的最多段数为256个,最大的段长是64KB。从表面上看,段式存储管理的地址结构与页式存储管理
21、的地址结构类似,但是,它们之间有实质上的不同。页式存储管理提供连续的逻辑地址,由系统自动地进行分页;段式存储管理中作业的分段是由用户决定的,每段独立编程,因此,段间的逻辑地址是不连续的,所以用户在编写程序时需要明确指出段号和段内地址。二、地址转换过程在分段存储管理系统中,实现逻辑地址到物理地址的转换,就是要将二维逻辑地址(段号,段内地址),转换成相应的物理地址,转换过程如图2所示。为了便于实现地址转换,在系统中设置了段表寄存器,专门用于存放当前进程的段表起始地址和长度。进行地址转换时,需要按照以下步骤来完成:根据段表寄存器的内容可以得到段表的地址。如果段号大于段表长度,则发生越界中断,否则继续
22、。找到段表的地址后,根据逻辑地址中的段号,到段表中去查找其对应的段表项。如果段内地址大于段长度,发生越界中断,否则可以即可以得到该段在内存中的起始地址。将段内地址和段的起始地址相加得到物理地址。图2分段地址转换【例1】在一个段式存储管理系统中,其段表如表所示:段表段号内存起始地址段长0210500123502021009031350590419389试求(0,430)和(2,120)逻辑地址对应的物理地址是什么?分页和分段管理都是采用离散式的存储管理方法,从地址变换结构上十分类似,但在思想和实现上两者的主要区别如下:页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利
23、用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。分页的地址空间是一维的;分段的地址空间则是二维的,需要给出段名和段内地址。三、段页式存储管理程序的分段结构具有逻辑上清晰的优点,但采用段式存储管理的一个致命弱点是每段必须占据主存储器的一个连续区域。于是,装入一个分段时,可
24、能要移动已经在主存储器中的信息。为了克服这个缺点,可兼用分段和分页的方法,通常被称为是“段页式存储管理”。每个作业仍由用户进行分段,每一段的逻辑地址仍是从“0”开始的一组连续地址。但存储管理不是为每一段分配一个连续的主存空间,而是把每一段再分成若干个页面,把一段的信息按页存放在不必相邻的空闲主存块中。所以,段页式存储管理兼顾了段式在逻辑上清晰和页式在管理上方便的优点。段页式存储管理要求把主存储器预先分成大小相等的许多块,在把一段的信息装入主存时,按块的大小分页,一段信息可被分散存放在若干个主存块中。段页式存储管理为了保证程序的正确运行,为每一个装入主存储器的作业建立一张段表,且对每一段要建立一
25、张页表。段表的长度由作业分段的个数决定,段表中的每一个表目指出本段的页表始址和长度。页表的长度由对应段所分的页的个数决定,页表中的每一个表目指出本段的逻辑页号与主存块号的对应关系。因此,段页式存储管理的逻辑地址的格式如图3所示:段 号 页 号页内地址图3 逻辑地址结构段页式存储管理方式中,当执行某条指令时,地址机构根据逻辑地址中的段号查找段表,得到该段的页表始址,然后根据页号查找页表,得到对应的主存块号,由主存块号与逻辑地址中的页内地址可形成可访问的绝对地址。如果逻辑地址中的段号超出了段表中的最大段号或者页号超出了该段页表中的最大页号,都将产生“越界中断”。第 16 次 课 教 案 操作系统
26、课程 计本081-4 班级 年 月 日章节名称第4章 存储管理教学目的与 要 求掌握虚拟存储管理方式,掌握页面置换算法,并能够计算请求分页管理方式下的缺页率。教学内容4.6虚拟存储器的基本概念4.7请求分页存储管理方式4.8页面置换算法重 点页面置换算法难 点请求分页管理方式下的缺页率作 业自编4.6、4.7教具与挂图教学过程(组织与方法)讲解与举例4.6 虚拟存储器一、 虚拟存储器的基本概念基于局部性原理,在程序装入时,不必将其全部读入到内存,而只要将当前需要执行的部分页或段读入内存,就可以让程序开始执行。在程序执行过程中,如果需要执行的指令或访问的数据不在内存,则由处理机通知操作系统将相应
27、的页或段调入到内存,然后继续执行程序。另一方面,操作系统会将内存中暂时不使用的页或段调出,保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段。从用户的角度看,该系统具有的内存容量将比实际的内存容量大得多,所以称之为虚拟存储器。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。其逻辑容量是由内存容量和外存容量之和所决定的。二、请求分页存储管理方式请求分页存储管理是在页式存储管理方式的基础下,增加了请求调页功能、页面置换功能的虚拟存储管理系统。在进程开始运行之前,不是装入全部页面,而是装入部分页面,之后根据进程运行的需要,动态装入其它页面;当内存
28、空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面。在请求分页存储管理中进行地址重定位时,可能会出现所需要的页面不在主存的情况,此时,系统必须解决以下两个问题:当程序要访问的某页不在内存时,如何发现这种缺页情况?发现后应如何处理?当需要把外存上的某个页面调入内存时,此时内存中没有空闲块应该怎么办? 页表在请求分页存储管理系统中主要的数据结构还是页表。其主要的作用是将用户的逻辑地址变成内存的物理地址。由于只是将部分的页调入内存,还有一部分在外存中,而程序是作为一个整体在运行,为了保证程序的正确运行,对页表进行了扩充,增加了状态位、访问字段、修改位和外存地址。请求分页存
29、储管理的页表如图1所示:页号物理块号状态位P访问字段A修改位M外存地址图1 页表结构状态位P:表示该页是否已经调入内存。访问字段A:用于记录该页在一段时间内被访问的次数或是最近未被访问的次数,作为页面置换算法的依据。修改位M:表示该页在内存中是否被修改过,如果未修改过,在置换页面时如果被选中则不需要将该页再写回到外存上;如果被修改过则在置换时需要将其再写回到外存上以保证内外存的版本一致。外存地址:指示该页在外存的地址,为调用提供依据。 缺页中断在请求分页存储管理系统中只是将部分页放入到内存中,如果在进程的执行过程中,发现所要访问的页不在内存,则产生缺页中断。操作系统接到此中断信号后,就调出缺页
30、中断处理程序,根据页表中给出的外存地址,将该页调入内存,使作业继续运行下去。如果内存中有空闲块,则分配一块,将新调入的页装入内存,并修改页表中相应页表项的驻留位及相应的内存块号。若此时内存中没有空闲块,则要淘汰某页,若该页在内存期间被修改过,则要将其写回到外存。 地址变换请求分页存储管理的地址变换是在分页存储管理的地址变换的基础之上,增加了缺页中断和置换功能。地址变换过程如下:判断页号是否大于页表长度?是,发生越界中断。在快表中查找该页号是否存在?存在,修改相应的标志位,根据快表找到其对应的块号,计算物理地址,地址变换结束,转向。在页表中查找该页是否存在?存在,修改快表及页表项的标志位,根据页
31、表中对应的块号,计算物理地址,地址变换结束,转向。否则,产生缺页中断,中断处理结束后,转向。地址变换结束。【例1】某请求页式存储管理,允许用户编程空间为32个页面(每页1KB),主存为16KB ,如有一个用户程序有10页长,且某时刻该用户页表如图所示。如果分别遇有以下三个虚地址:0AC5H、1AC5H、3AC5H 处的操作,试计算相应的物理地址并说明存储管理系统将如何处理。虚页号物理块号081724310图 页表三、页面置换算法 先进先出页面置换算法基本思想先进先出页面置换算法(FIFO)总是选择最先装入主存储器的那一页调出,即选择在内存中驻留时间最久的页面淘汰。 最佳置换算法最佳置换算法是其
32、每次要选择的被淘汰页面,是将来永远不被使用的,或者是在最长(未来)时间内不再被访问的页面。由于人们无法预知未来的情况,即无法知道某个进程在将来会访问哪些页面,哪个页面是将来最长时间不被访问的,所以最佳置换算法是无法实现的,理想化的,但是可以利用这个算法来评价其它的算法。 最近最久未使用页面置换算法最佳页面置换算法是理想的,不能实现的,先来先服务置换算法,只考虑了页面进入内存的时间,没有考虑实际中进程运行的规律,所以引入了最近最久未使用置换算法,它是基于程序执行的局部性,即程序一旦访问到某些数据和指令时可能在一段时间里还经常会访问它们,因此,不应该把这些页面调出。如果在最近一段时间里没有被访问过
33、的页,则在最近的将来也可能暂时不会被访问,所以,需要装入新页时可以选择这些页面调出。【例1】依次要访问的页号为1,2,3,4,1,2,5,1,2,3,4,5,现在只有三个主存块可供使用,把开始的三页先装入主存。执行时按先进先出页面置换算法、最佳置换算法、最近最久未使用置换算法进行页面调度,计算缺页中断次数及依次淘汰的页面。四、请求分页系统的性能分析请求分页存储管理系统是常用的一种存储管理方式,但是,采用此方式,程序在运行的过程中将会产生缺页中断,这样会影响到系统的性能。然而缺页率的大小与分配给进程的物理块数有关。通常会认为,分给进程的主存块数越多,缺页率将会越小。例如,若某进程逻辑空间共30页
34、,分给该进程的主存块数为30时,那么该进程就可以全部装入主存,显然,在运行过程中不会出现缺页情况,但是此时请求分页存储管理已转变成页式存储管理。如果分给该进程的主存块为1块,在这种情况下会频繁的发生缺页,缺页率最大。由此可见,在给进程分配物理块时,在最小的缺页率和分给进程最大的主存块数之间存在一个合理的制约关系。为了提高CPU的利用率和系统的吞吐量,引入了多道程序设计技术,即在系统中驻留多个程序。那么,是不是系统的吞吐量和多道程序度(在内存中可并发执行的进程的数目)之间是成正比的关系呢?即随着多道程序度的提高,系统的吞吐量也将随之增加?事实并非如此。对于请求分页存储管理系统,每个进程在运行时只
35、能分配到部分的空间,那么在运行时很可能会产生缺页情况,系统需要将所需页面调入内存,如果内存满时,将要选择某页进行置换,而在置换时可能会选择系统中任意一个页面进程置换。例如,系统中有3个进程A、B和C,进程A在运行时产生缺页,并且需要在系统中选择一页进行置换,此时可能选中B或是C,假设选中B,那么B进程的物理块数必然会减少,可能会导致B进程在运行时发生缺页,那么又有可能会选中进程C的进程置换。如此下去,系统中的进程可能会因为页面的调入/调出而处于阻塞的状态,从而使得就绪队列为空。系统通过对CPU的检测会发现,CPU的利用率降低,这时会通过提高多道程序度来提高CPU的利用率。此时,需要引入新的进程,当新进程进入内存时,又需要从其它的进程那里得到物理块,于是导致缺页情况更加严重,等待页面调入/调出的进程数也进一步增多。从而使得CPU的利用率继续下降。系统又将引入新进程,如此下去,将产生恶性循环,使系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论