精华内容
下载资源
问答
  • 分页存储管理方式的优缺点
    千次阅读
    2019-01-21 12:06:45

    连续,设计简单,直接寻址,效率高。缺点:内存利用效率最低,有内部碎片。
    分页,缓解内存压力,设计最复杂(粒度最小),无论数据有多少,都只能按照页面大小分配,造成浪费。
    分段,程序员在编程和使用上多方面的要求(方便、共享、保护、链接、内存动态增长),缺点,无法利用碎片,必须搬移内存,造成性能损失。


    一、分区存储管理

      1、固定分区:

      优点:易于实现、开销小

      缺点:存在内部碎片(分区内未被利用空间)、分区总数固定,限制了并发执行的程序数量。

      2、动态创建分区:按照程序申请要求分配。

      优点: 没有内部碎片

      缺点:有外部碎片(难以利用的小空闲分区)

    二、页式存储管理

      优点: 没有外部碎片,最后一页可能有内碎片但不大;程序不必连续存放;便于改变程序占用空间大小。

      缺点: 程序仍需要全部装入内存(基本页式存储管理)。

    分页和分段系统有许多相似之处。比如,两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。但在概念上两者完全不同,主要表现在下述三个方面。 

    页大小固定,段大小不固定。

    页是一维的,段是二维的;



    (1) 页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题, 提高内存的利用率

    或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要。 

    (2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。

    (3) 分页的作业地址空间是一维的,即单一的线性地址空间(一对一,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址(一对多)
     

    更多相关内容
  • 分区式存储管理最大的缺点是碎片问题严重,内存利用率低。究其原因,主要在于连续分配的限制,即它要求每个作用在内存...分页存储管理的思想:把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分。

    分区式存储管理最大的缺点是碎片问题严重,内存利用率低。究其原因,主要在于连续分配的限制,即它要求每个作用在内存中必须占一个连续的分区。

    如果允许将一个进程分散地装入到许多不相邻的分区中,便可充分地利用内存,而无需再进行“紧凑”。

    基于这一思想,产生了“非连续分配方式”,或者称为“离散分配方式”。

    连续分配:为用户进程分配的必须是一个连续的内存空间。

    非连续分配:为用户进程分配的可以是一些分散的内存空间。

    分页存储管理的思想:把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分。

    分页存储管理分为:实分页存储管理和虚分页存储管理

    一、实分页式存储管理

    实分页式存储最大的优点是内存利用率高,与目前流行的虚分页存储管理相比,具有实现简单,程序运行快的优点。目前,飞速发展的硬件制造技术使得物理内存越来越大,因此我们认为,实分页式存储管理将是一种最有发展前途的存储管理方式。

    Linux内核更多免费文档,面试资料,教程视频加qqun:891587639获取资源

     

    1.1、基本原理

    假设一个大型饭店,所有的客房都是标准的双人间,部分客房已经住进客人,现在又有一个旅游团要求入住。接待员统计了一下,对旅游团领队说:“贵团全体成员都能住下,两人一个房间,但是不能住在同一楼层了,因为每层空着的客房不够,更没有几个挨着的。请原谅!”。对于这样的安排,一般人不会感到奇怪。因为旅游团本来就是由一位位个人或夫妻等组成的,而饭店的客房本来也是两人一间的,两人一组正好可住在一个客房里;另外,饭店几乎每天都有入住的和退房的客人,想在同一楼层找几间挨着的客房实在不容易。

    ①将整个系统的内存空间划分成一系列大小相等的块,每一块称为一个物理块物理页实页页架页帧(frame),可简称为块(block)。所有的块按物理地址递增顺序连续编号为0、1、2、……。
            这里的块相当于饭店的客房,系统对内存分块相当于饭店把大楼所有的客房都设计成标准的双人间。

    ②每个作业的地址空间也划分成一系列与内存块一样大小的块,每一块称为一个逻辑页虚页,也有人叫页面,可简称为页(page)。所有的页按照逻辑地址递增顺序连续编号为0、1、2、……。
               这里,对作业地址空间分页就相当于把旅游团成员分成两人一组。

    ③一个作业,只要它的总页数不大于内存中的可用块数,系统就可以对它实施分配。系统装入作业时,以页为单位分配内存,一页分配一个块,作业所有的页所占的块可以不连续。系统同时为这个作业建立一个页号与块号的对照表,称为页表。
            这就像饭店有个记录客户入住情况的客户登记表一样。另外,饭店安排客户入住是要查看全部客房的使用情况一览表,相应地系统给作业分配内存时要查看主存分配表或者内存块说明表。‘


    ④每个块的大小是固定的,一般是个1/2KB~4KB之间的数值(请读者思考:块尺寸为什么太大或太小都不好),而且必须是个2的幂次。
             对块尺寸这样规定相当于饭店规定客房是双人间。可以设想一下,如果上例中饭店所有的客房都是十人间的话,效益肯定不如全是双人间的好

    实模式下分页存储管理的基本原理:
    操作系统以页框为单位为各个进程分配内存空间。系统自动地将作业的地址空间分页,将系统的主存空间分块,页与块等大小,在作业运行时,一次性把作业的全部页面装入内存,各个页所占的内存块可以不连续,也不必按先后顺序,可以放到不相邻的各个页框中
    这实际是个把作业从地址空间映射到存储空间的过程

    1.2、页表

    页面的划分完全是一种系统硬件的行为,一个逻辑地址放到这种地址结构中,自然就分成了页号和页内单元号两部分。

    页面大小为:4KB

    在分页系统中,允许将作业(进程)的任一页装入到内存中的任一可用的物理块中,但进程的地址空间本来是连续的,若把他分页后装入到不相邻的物理块中,要保证系统仍能正确运行,就要实现从进程的逻辑地址变换为内存的物理地址

    所以,系统为每个进程建立一张页面映射表,简称页表。

    1.3、地址映射

    在系统中设置地址变换机构,能将用户进程地址空间中的逻辑地址变为内存空间中的物理地址。
    由于页面和物理块的大小相等,页内偏移地址和块内偏移地址是相同的。无须进行从页内地址到块内地址的转换。
    地址变换机构的任务,关键是将逻辑地址中的页号转换为内存中的物理块号。物理块号内的偏移地址就是页内偏移地址。
    页表的作用就是从页号到物理块号的转换,所以地址变换的任务借助于页表来完成的。

    如果题目中是用十进制数表示逻辑地址,则:

    例题1:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。

    虚地址 3412
        P=3412 % 2048=1

        W=3412 mod 2048=1364
        MA=9*2048+1364=19796
        虚地址3412的内存地址是19796
        

    虚地址 7145
        P=7145 % 2048 =3
        W=7145 mod 2048 =1001
        MA=5*2048+1001=11241
        虚地址7145的内存地址是:11241

    1.4、快表

    因为页表是存放在内存中的,CPU要存取一个数据,需访问主存两次
    第一次:访内存中的页表,找到该页的的物理块号,将此块号与页内地址拼结形成物理地址;
    第二次:真正访问该物理地址,存取其中的内容。
    这样就把程序的执行速度降低一倍。
    为了提高存取速度,在地址变换机构中增设一组寄存器,用来存放访问的那些页表。

    快表是一种访存速度比内存快很多的高速缓冲器。
    把存放在高速缓冲寄存器中的页表叫快表,这个高速缓冲寄存器又叫联想存贮器(TLB)。与此对应,内存中的页表称为慢表。

    当进程访问一页时,系统将页号与快表中的所有项进行并行比较。若访问的页在快表中,即可立即进行地址转换。
    当被访问的页不在快表中时,去内存中查询页表,同时将页表找到的内存块号与虚页号填入快表中

    例题2:

    快表命中率98%,访问时间是10ns,内存访问时间是100ns,平均访问时间?
    平均访问时间=98%*(10+100)+(1-98%)*(10+100+100)

    若快表命中

    联想寄存器检索时间:10ns
    访问内存1次取数据时间:100ns
    取数据总时间:110ns

    若快表中未命中
    联想寄存器检索时间:10ns
    访问内存1次检索页表时间:100ns
    访问内存1次取数据时间:100ns
    取数据总时间:210ns
     

    1.5、两级和多级页表

    现代的大多数计算机系统,都支持非常大的逻辑地址空间(232~264)。页表就变得非常大,要占用相当大的内存空间。可采用两个方法来解决这一问题:

    ① 采用离散分配方式来解决难以找到一块连续的大内存空间的问题:

    ② 只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。

     

    二级页表如何实现地址变换?

    1.6、页的分配与回收

    用一张“位示图”构成主存分配表。位示图的每一位与一个主存块对应,其值为0,表示对应的主存块空闲,其值为1,表示对应的主存块已分配。

    位示图优点是占用内存空间小,可常驻内存,加快分配进程,但缺点是不够直观。

    内存分配过程:

    计算一个作业所需要的总块数N
    查位示图,看看是否还有N个空闲块
    如果有足够的空闲块,则页表长度设为N,可填入PCB中;申请页表区,把页表始址填入PCB
    依次分配N个空闲块,将块号和页号填入页表
    修改位示图

    1.7、存在的问题

    为每个进程配置一张页表,进程逻辑空间非常大,带来的问题?

    可以引入Inverted page tables(反置页表)
    反置页表 – 按物理块号排序
     IBM RT; HP Spectrum…
    反置页表很大,使用Hash表加快检索
    所有在内存中的并发进程只有一张页表
    除了Hash表,联想寄存器也被用来存放最近使用过的页表项

    1.8、分页存储管理方案的评价

    优点:
        较好地解决了碎片问题
        打破了存储分配的连续性要求
        提高了主存的利用率

    缺点
    页内碎片
    动态地址变换、方案实施需耗用额外的系统资源
    存储扩充问题没有解决——作业大小受到限制,可用块数小于作业需求时需等待

    二、虚拟存储器(Virtual Memory)

    2.1、局部性原理(principle of locality)

    指程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址,分别局限于一定区域。还可以表现为:
    时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短时期内;
    空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近的数据都集中在一个较小区域内。

    局部性原理的具体体现:
    程序在执行时,大部分是顺序执行的指令,少部分是转移和过程调用指令。
    过程调用的嵌套深度一般不超过5,因此执行的范围不超过这组嵌套的过程。
    程序中存在相当多的循环结构,它们由少量指令组成,而被多次执行。
    程序中存在相当多对一定数据结构的操作,如数组操作,往往局限在较小范围内。

    2.2、引入虚拟存储技术的好处

    大程序:可在较小的可用内存中执行较大的用户程序;
    大的用户空间:提供给用户可用的虚拟内存空间通常大于物理内存(real memory)
    并发:可在内存中容纳更多程序并发执行;
    易于开发:与覆盖技术比较,不必影响编程时的程序结构

    2.3、虚拟存储技术的特征

    不连续性:物理内存分配的不连续,虚拟地址空间使用的不连续(数据段和栈段之间的空闲空间,共享段和动态链接库占用的空间)
    部分交换:与交换技术相比较,虚拟存储的调入和调出是对部分虚拟地址空间进行的;
    大空间:通过物理内存和快速外存相结合,提供大范围的虚拟地址空间

    2.4、虚拟存储技术的种类

    虚拟页式
    虚拟段式
    虚拟段页式

    三、虚拟页式(virtual paging)存储管理

    3.1、基本原理

    系统自动地将作业的地址空间分页,将系统的主存空间分块,页与块等大小,在作业运行前,只把初始需要的一部分页面装入内存块里,运行中需要访问自己地址空间中的但当前不在内存的页面时产生缺页中断,由缺页中断服务程序将所需的页面调入内存,若此时内存中没有空闲物理块安置请求调入的新页面,则系统按预定的置换策略自动选择一个或一些在内存的页面,把它们换出到外存。

    虚拟页式存储管理实际是实分页技术与虚拟存储技术相结合的产物,其分页思想与实分页是一样的。

    这里的请求调入和置换功能都是比实分页存储管理增加的内容,是实现虚拟存储的主要功能。

    为实现虚拟页式存储管理:
    需要置换技术、请求装入技术和大硬盘支持,另外:
    页表表目需要增加外存块号、状态位、访问位或访问字段、修改位、存取控制字段等。
    外存块号指出该页在外存的地址,供调入该页时用;
    状态位指示该页是否在内存;
    访问位或访问字段则是该页被访问过的标志或被访问过的次数;
    修改位表示该页是否被修改过;
    存取控制字段则是用来限制页面被安全共享的。


    作业1在请求分页系统中的存储映像

    当执行 “mov r1,[2120]”时
    CPU产生的虚地址为2120
    分页机构得 p=2,w=72(每页1K)
    查页表。该页中断位i=1,发生缺页中断 

    如主存中有空白块,直接调入
    如主存中无空白块,则需淘汰该作业在主存中的一页

    3.2、主存页面分配策略

    在虚拟页式存储管理中,内存分配似实分页方式,但还必须考虑解决下面两个问题:
    (1)是否对各进程采用平均分配策略?
    (2)发生缺页中断时,如何为所缺的页面分配内存?
     
    对问题(2)有一下几种做法:

    a、平均分配。

    b、按进程长度比例分配。

    c、按进程优先级分配。

    d、按进程长度和优先级别分配。

    对问题(2)主要有一下两种做法:

    a、固定分配局部置换。

    b、可变分配全局置换。

    3.3、页面调入策略

    (1)请求调入
    当发生页面故障时进行调度,即当进程访问不在内存的页面引发缺页中断时,由系统根据这种访问请求把所缺页面装入内存。
    优点:由请求调入策略装入的页一定会被访问,再加之比较容易实现,故在目前的虚拟存储器中,大多采用此策略。
    缺点:每次仅调入一页,增加了磁盘I/O的启动频率。

    ( 2)预调入
    =>也称先行调度,即一页面被访问前就已经预先置入内存,以减少今后的缺页率。
    =>主要适于进程的许多页存放在外存的连续区域中的情况。有的系统结合请求调入使用,即每次缺页时装入多个页面。
    优点:提高调页的I/O效率。
    缺点:基于预测,若调入的页在以后很少被访问,则效率低。常用于程序装入时的调页。
     

    调入页面的来源:

    通常对外存交换区的I/O效率比文件区的高。
    进程装入时,将其全部页面复制到交换区,以后总是从交换区调入。执行时调入速度快,要求交换区空间较大。
    凡是未被修改的页面,都直接从文件区读入,而被置换时不需调出;已被修改的页面,被置换时需调出到交换区,以后从交换区调入。

    存储分配的安全性考虑:
    把一个页面分配给进程之前,先要清除页面中的数据(如全部填充为0),以免该进程读取前一进程遗留在页面中的数据;

    3.4、页面调度算法

    由缺页中断服务程序将所需的页面调入内存,若此时内存中没有空闲物理块安置请求调入的新页面,则系统按预定的策略自动选择一个(请求调入策略)或一些(预调入策略)在内存的页面,把它们换出到外存。

    a、什么是淘汰策略(置换策略)?

     用来选择淘汰哪一页的规则就叫做置换策略,或称淘汰算法。如何决定淘汰哪一页?根据页面在系统中的表现(如:使用的频繁程度、进入系统时间的长短)

    b、颠簸
    颠簸(thrashing),又称为“抖动”。
    简单地说,导致系统效率急剧下降的主存和辅存之间的频繁页面置换现像称为“抖动”。
    现象?淘汰的页面恰好是不久又要访问的页面。

    (1)最佳淘汰算法——OPT(Optimal)
    这是Belady贝莱迪于1966年提出的一种理论上的算法。该算法每次都淘汰以后永不使用的,或者过最长的时间后才会被访问的页面。
    显然,采用这种算法会保证最低的缺页率,但它是无法实现的,因为它必须知道页面“将来”的访问情况。不过,该算法仍有一定意义,可作为衡量其他算法优劣的一个标准

    假定系统为某个进程分配了三个物理块,进程的访问顺序为7,0,1,2,0,3,0,4,2,3,0,3,2,1,2

    采用OPT淘汰算法:

    (2)先进先出淘汰算法——FIFO
    这是最早出现的淘汰算法。
    总是淘汰最先进入内存的页面。它实现简单,只需把进程中已调入内存的页面,按先后次序链成一个队列,并设置一个所谓的替换指针,使它总是指向内存中最老的页面
    缺点:效率不高,因为它与进程实际的运行规律不相适应,比如常用的全局变量所在的页面或者循环体所在页面都可能被它选为淘汰对象。出现bleady现象。

    页面进入主存的先后次序:
    2->4->5->1

     
    当要调入第6页时:
    置换第2页
    将第2页改为6
    替换指针指向第4页4->5->1->6

    Belady现象:采用FIFO算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多,缺页率反而提高的异常现象。
    Belady现象的描述:一个进程P要访问M个页,OS分配N个内存页面给进程P;对一个访问序列S,发生缺页次数为PE(S,N)。当N增大时,PE(S, N)时而增大,时而减小。
    Belady现象的原因:FIFO算法的置换特征与进程访问内存的动态特征是非常不一致的,即被置换的页面通常并不是进程不会访问的

    采用FIFO淘汰算法:

    (3) 最近最久未使用算法(LRU, Least Recently Used)

    根据页面调入内存后的使用情况,选择内存中最久未使用的页面被置换。这是局部性原理的合理近似,性能接近最佳算法。
    OPT算法使用页面将要被访问的时间,LRU算法使用页面最后一次被访问的时间。二者唯一的差别是:OPT是向前看的,而LRU是向后看的。
    下面给出LRU的实现算法:
    a、计时法:对于每一页面增设一个访问时间计时器,每当一个页面被访问时,当时的绝对时钟内容被拷贝到对应的访问时间计时器中,这样系统记录了内存中所有页面最后一次被访问的时间。淘汰时,选取访问时间计时器的值最小的页面。
    b、堆栈法:每当进程访问某页面时,便将该页面的页号从栈中移出,将它压入栈顶。栈顶始终是最新被访问的页面的编号。栈底则是最近最久未被使用的页面的页面号。
    c、多位寄存器法
    为每页设置一个R位的寄存器
    每次访问一页时,将该页所对应的寄存器最左位置1
    每隔时间间隔T,所有寄存器右移一位。
    选择R值最小的页淘汰。
    例如,r寄存器共有四位,页面P0、P1、P2在T1、T2、T3时刻的r寄存器内容如下:
         页面                              时刻
                                 T1            T2           T3      
         P0                 1000        0100        1010
         P1                 1000        1100        0110
         P2                 0000       1000         0100

    给某作业分配了三块主存,该作业依次访问的页号为:4,3,0,4,1,1,2,3,2。当访问这些页时,页面淘汰序列变化情况如下

    LRU的开销是很大的,必须有硬件的支持,完全由软件实现其速度至少会减少10倍,因此LRU近似算法更实用些

    (4)二次机会淘汰算法——SC(Second Chance)淘汰算法
    这是一种LRU的近似算法,是通过对FIFO算法进行简单改造,结合页表中的访问位而得来一种淘汰算法。
    该算法首先检查位于FIFO链链首的页,如果它的访问位为0,则选择该页淘汰;如果它的访问位为1,则清除其访问位,将它移至FIFO链的链尾,重复此算法的查找过程,直至遇到新链首页是一个访问位为0的较早进入内存的页为止,把它选为被淘汰的页。

    为每一个存储块(存储分块表)或页面(页表)设立一个引用位。
    当访问某页时,就将该页引用位置1
    页面管理软件周期性地(设周期为T)将所有引用位重新置0
    在T内,被访问过的页面引用位为1,否则为0
    选择引用位为0的页面淘汰。

    (5)时钟(Clock)淘汰算法
    二次机会淘汰算法缺点:就是需要把访问位为1的处于链首的页移至链尾,这需要一定的开销。
    改进的方法:就是把进程所访问的页面链成一个环形链表,再设一个指针指向最老的页面,于是形成了一种简单实用的LRU近似算法——时钟淘汰算法。
    该算法首先检测指针所指的页面,如果它的访问位为0,则淘汰该页,新装入的页插入到此位置,然后指针前进一个位置;如果它的访问位为1,则清除为0,并将指针前进一个位置,继续检查访问位。重复此过程,直到找到访问位为0的页面为止。

    访问页号727
    引发缺页
     

     

    (6)最近未用淘汰算法——NRU(Not Used Recently)淘汰算法
    它把FIFO算法的思想与页面的访问位和修改位结合起来确定一个接近LRU算法的淘汰对象。
    该算法每次都尽量选择最近最久未被写过的页面淘汰,这种干净的页面可以不被写回到磁盘。在实现时,为每一个页面设置初始值0的访问位和修改位。当对某页面执行写操作时,其修改位和访问位均由硬件置成1;当对某页面执行读操作时,只有其访问位被硬件置成1。系统每隔固定时间将所有访问位都清0。

    按照下列次序选择被淘汰的页面:
    ①访问位=0,修改位=0;直接淘汰;
    ②访问位=0,修改位=1;写回外存后淘汰;
    ③访问位=1,修改位=0;直接淘汰;
    ④访问位=1,修改位=1;写回外存后淘汰;

    页面请求序列为:2,3,2,1,5,2,4,5,3,2,5,2
    内存分配3块
    用OPT、LRU、FIFO、Clock算法写出页面置换过程

    时钟clock算法中的箭头是当前指针的位置!

    3.5、影响缺页中断率的因素  

    (1)页面调度算法不合理
    抖动又叫颠簸,是指一段时间里,页面在内存与外存之间频繁地调度或换入换出,以至于系统用于调度页面所需要的时间比进程实际运行所占用的时间还要多。
    显然,抖动是由于缺页中断率很高而引起的一种坏现象,它将严重影响系统的效率,甚至可能使系统全面崩溃。
    (2)分配给作业的内存块数太少
    作业的缺页中断率与作业所占内存块数成反比。分配给作业的内存块数太少是导致抖动现象发生的最主要的原因,实验分析表明:对所有的程序来说,要使其有效地工作,它在内存中的页面数不应少于它的总页面数的一半。
    (3)页面大小的选择不合理
    虽然缺页中断率与页面尺寸成反比,但页面尺寸却不能一味地求大,它一般在0.5KB~4KB之间,是个实验统计值。因为页面大时,页表较小,占空间少,查表速度快,缺页中断次数少,但页面调度时间长,页内碎片较大。页面小时,恰恰相反。
    (4)用户程序编制的方法不合适
    作业的缺页中断率与程序的局部化(包括时间局部化和空间局部化)程度成反比。用户程序编制的方法不合适可能导致程序运行的时空复杂度高,缺页次数多。

    需要进一步了解,可以点下方链接,一元试听vip课程,赶快行动起来吧!
     http:// https://ke.qq.com/course/2705727?flowToken=1041141

     

    展开全文
  • 分页存储管理方式

    千次阅读 2022-04-30 08:32:25
    三种存储分配机制的优缺点,连续,分页,分段 连续分配会形成许多“碎片”,虽然可以通过“紧凑”方法将许多碎片拼接成可用大空间,但需要很大开销。 所以就有了另一种思路,能不能将分配方式改成不连续的,也就是...

    连续:设计简单,直接寻址,效率高。缺点:内存利用效率最低,有内部碎片。
    分页:设计最复杂,容易产生外部碎片,无论数据有多少,都只能按照页面大小分配,造成浪费。
    分段:程序员在编程和使用上多方面的要求,缺点,无法利用碎片,必须搬移内存,造成性能损失。

    三种存储分配机制的优缺点,连续,分页,分段
    连续分配会形成许多“碎片”,虽然可以通过“紧凑”方法将许多碎片拼接成可用大空间,但需要很大开销。
    所以就有了另一种思路,能不能将分配方式改成不连续的,也就是离散的。
    离散分配方式分为以下三种,其实主要就两种
    1.分页
    2.分段
    3.分页+分段(段页式)

    1.分页存储管理的基本方式

    1.页面和物理块
    (1)页面

    分页式存储将进程的地址空间分成若干页,对页进行编号,页内也分成若干块(物理块),对块进行编号。
    分配时以块为单位,装入页。所以可能最后一页装不满。
    (2)页面大小
    需要适中,过小提高利用率,但页面太多,页表太长,浪费内存。过大利用率低,碎片增大。
    页的大小固定且由系统决定。

    2.地址结构
    分为
    页号P | 位移量W(页内地址)
    系统把逻辑地址划分为页号和页内地址两部分。

    3.页表
    也称页面映像表,所有页在页表中都有一项页表项,页表项中记录了相应页在内中对应的物理块号。
    作用:通过查找该表,可以找到每页在内存中的物理块号。(实现页号到物理块的地址映射)

    2.地址变换机构

    为了将用户地址空间中的逻辑地址变换为内存空间中的物理地址,需要设置地址变换机构。
    页表的作用就是实现页号到物理块号的变换,所以地址变换是借助页表来完成的。
    (1)基本的地址变换机构
    分页系统的地址变换机构
    页表大多数位于内存中。系统中有一个页表寄存器,其中存放页表的起始地址和页表长度。
    当需要进行访问时,分页地址变换机构会自动将有效地址(相对地址)分为页号和页内地址,通页号检索页表。
    如果页号大有等于页表长度,则表示地址越界–>产生越界中断。
    若为出现错误,则将页表起始地址+页号*页表项长度,便得到表项在页表中的位置,得到物理块号。页内地址送入物理地址中的块内地址字段。
    (2)具有快表的地址变换机构
    具有快表的地址变换机构
    增加了一个块表(也就是一个高速缓冲寄存器【具有并行查询能力】)
    页表存放在内存中,CPU存取需要访问两次。第一次是访问页表,找到物理块号,形成物理地址。第二次则是获取其中数据或者写入。
    而具有快表的地址变换机构就是为了减少访问次数以提高CPU的处理速度。
    怎么实现的呢?
    快表中存放当前访问的那些页表项,在CPU给出有效地址后,地址变换机构会自动将页号送入快表,将此页号与快表中的页表项比较,若找到匹配项则不用进行第一次访问,也就是不需要去内存中的页表查找。未匹配则按还需访问内存中的页表。

    3.引入快表后内存的有效访问时间

    EAT=ab+(1-a)(t+b)+t |成功访问快表概率乘上对应访问时间,失败访问快表乘(访问快表的时间加上访问页表的时间)+取或写的时间
    =2t+b-t*a
    书上是另一个符号,这里就用b了。
    b表示查找快表所需的时间,a表示命中率,t表示访问一次内存的时间。

    4.两级页表和多级页表

    因为计算机的逻辑地址空间非常大,所以页表也变的非常大,占用太多空间。
    解决办法:1.对于页表所需的内存空间,采用离散的分配方式,以解决难以找到一块连续的大内存空间的问题;
    实现这种方法可以通过将页表划分成更小的快,也就是两级或多级页表。

    5.反置页表

    为减少页表占用的内存空间,引入了反置页表。
    一般页表是按页号进行排序,页表项中的内容是物理块号。
    反置页表为每一个物理块设置一个页表项,并按物理块的编号进行排序。
    内容是页号和其所隶属进程的标识符。
    反置页表不依据进程的逻辑页号来生成页表,而是依据进程在内存的物理页号来组织的,即一个系统中大多数情况下都只存在一个反向页表,通过逻辑页号+进程ID进行HASH,通过链接指针来得到对应的页架号(物理页号)。

    展开全文
  • 连续,设计简单,直接寻址,效率高。缺点:内存利用效率最低,有内部...一、分区存储管理  1、固定分区:  优点:易于实现、开销小  缺点:存在内部碎片(分区内未被利用空间)、分区总数固定,限制了并发执行的...

    少说废话,先上思维导图有个知识框架。

    注意下图中的【动态分区分配】又称为【可变分区分配】。

    连续,设计简单,直接寻址,效率高。缺点:内存利用效率最低,有内部碎片。
    分页,设计最复杂,容易产生内部碎片,无论数据有多少,都只能按照页面大小分配,造成浪费。
    分段,程序员在编程和使用上多方面的要求,缺点,无法利用碎片,必须搬移内存,造成性能损失。

    一、分区存储管理

      1、固定分区:

      优点:易于实现、开销小

      缺点:存在内部碎片(分区内未被利用空间)、分区总数固定,限制了并发执行的程序数量。

      2、动态创建分区:按照程序申请要求分配。

      优点: 没有内部碎片

      缺点:有外部碎片(难以利用的小空闲分区)

    二、页式存储管理

      优点: 没有外部碎片,最后一页可能有内碎片但不大;程序不必连续存放;便于改变程序占用空间大小。

      缺点: 程序仍需要全

    展开全文
  • 分段分页优缺点分析 段页式管理 将进程按照逻辑模块分段,再将各段分页,再将内存空间分为大小相同的页框。最后将各个页装入各个内存块中。
  • 连续,设计简单,直接寻址,效率高。...一、分区存储管理 1、固定分区: 优点:易于实现、开销小 缺点:存在内部碎片(分区内未被利用空间)、分区总数固定,限制了并发执行的程序数量。 2、动...
  • 分段分页方式的比较各自优缺点

    千次阅读 2018-06-19 14:23:56
    或者说,分页仅仅是由于系统管理的需要,而不是用户的需要(也是对用户透明的)。段是信息的逻辑单位,它含有一组其意义相对完整的信息(比如数据段、代码段和堆栈段等)。分段的目的是为了能更好的满足用户的需要...
  • 内存管理方式主要分为:页式管理、段式管理和段页式管理。 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页。把内存空间按页的大小划分为片或者页面,然后把页式虚拟地址与内存地址建立一一对应的...
  • 一. 存储管理(一) 存储体系(二) 地址重定位1. 绝对装入2. 可重定位装入(三) 链接1. 静态链接2. 动态链接二. 分区存储管理方案(一) 概述(二) 单一连续分区(三) 固定分区(四) 可变分区1. 概述2. 分区...
  • 操作系统 请求分页存储管理

    千次阅读 2020-12-22 13:06:04
    请求分页存储管理优缺点 请求分页存储管理中的页表机制 系统需要解决的问题 系统如何获知进程当前所需页面不在主存 当发现缺页时,如何把所缺页面调入主存 当主存中没有空闲的页框时,为了要接受一个新页,需要...
  • 一、基本分段存储管理方式 (一)分段 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址 内存分配规则:以段为单位进行分配,...
  • 文章目录非连续分配管理基本分页存储管理如何实现地址转换页表总结基本地址变换机构(页表寄存器)总结具有快表的地址变换机构局部性原理快表引入快表后, 地址变换过程总结两级页表单级页表存在的问题两级页表 (解决...
  • 2.详述分段管理分页管理的区别。 3.P249 习题11 1.采用相联存储器后地址转换过程,用图表示出来CPU对存储器的访问,通常是一次读写一个字单元。当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若干个字...
  • 分页、分段和段页式存储管理方式

    千次阅读 2018-04-10 20:56:44
     分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框...
  • 前叙除“多重分区”的分配方法外,都属于连续分区...纯分页系统 1.页面与页框 *1.把作业的地址空间划分为大小相等的片,称为页面/页,Page。 *2.把内存的物理空间划分为同页大小的片,称为页框/存储块,PageFrame。
  • 1 基本分页存储管理 连续分配:为用户进程分配的必须是一个连续的内存空间。 非连续分配:为用户进程分配的可以是一些分散的内存空间。 1.1 什么是分页存储 将内存空间分为一个个大小相等的分区(比如:每个分区4KB...
  • 存储器管理之请求式分页管理

    千次阅读 2021-10-08 18:25:27
    与纯分页存储管理不同,请求式分页管理系统只需作业的部分页面调入内存就可以运行了。 但系统需要解决下面三个问题: ⑴系统如何获知进程当前所需页面不在主存。 ⑵当发现缺页时,如何把所缺页面调入主存。 ⑶当主存...
  • 请求分页与请求分段管理方式

    千次阅读 2020-05-12 11:56:45
    请求分页与请求分段管理方式 请求分页管理方式 1 概述 请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。...
  • 如果离散分配的基本单位是段,则称为分段存储管理方式 如果不具备页面对换功能,则称为基本的分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能...
  • 4.3 知识点3:基本分页存储管理方式4.3.1 要点归纳1. 基本分页存储管理的原理在分区存储管理中,要求把作业放在一个连续的存储区中,因而会产生许多碎片,固定分区会产生内部碎片,动态分区会产生外部碎片。尽管通过...
  • 请求分页存储管理与基本分页存储管理的主要区别: 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,(操作系统要提供请求调页功能,将缺失页面从外存调入内存)然后继续执行...
  • 这种模式的优缺点如下: 优点:资源下载快、无需过多的开发与配置,同时也减轻了后端服务器对资源的存储压力,减少带宽的使用。 缺点:目前来说OSS,CDN的价格还是稍微有些贵(虽然已经降价好几次了),只适用于中小...
  • 页式存储管理、段式存储管理、段页式存储管理

    千次阅读 多人点赞 2020-07-24 21:51:17
    目录页式存储管理段式存储管理分页和分段存储管理的主要区别段页式存储管理 页式存储管理 1. 基本原理 页式存储管理是把主存储器划分成大小相等的若干区域,每个区域称为一块,并对它们加以顺序编号,如0#块、1#块...
  • 分段,分页与段页式存储管理

    千次阅读 2018-08-10 13:58:30
     分页存储管理 1.基本思想 用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。 1) ...
  • redis的优缺点

    千次阅读 2020-07-07 17:02:32
    快递员之间的协调很花时间 综合上述缺点,小曲痛定思痛,提出了下面的经营方式 经营方式二 小曲只雇佣一个快递员。然后呢,客户送来的快递,小曲按送达地点标注好,然后依次放在一个地方。最后,那个快递员依次的去...
  • 基本分段存储管理方式

    千次阅读 2021-04-20 18:51:18
    分段存储管理方式的引入 ■为满足用户和程序员的下述需要: ●方便编程 ●信息共享 ●信息保护 ●动态增长 ●动态链接 分段系统的基本原理 1.分段: ●逻辑地址空间分段,各段长度不等。 ●每个段均有段名或段号,且从...
  • 内存管理的三个离散方式:页式(分页)、段式(分段)、段页式(页段联动) 目录页式基本原理实现优点缺点段式管理基本原理实现优点缺点段页式管理基本原理实现优点缺点 页式 基本原理 将各进程的虚拟空间划分为若干...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,139
精华内容 5,655
热门标签
关键字:

分页存储管理方式的优缺点