【操作系统复习】第5章 存储器管理 2

分页存储管理方式

 

 

 

页号P

12-31位:20

地址空间最多允许有1M2 20)页

位移量W(页内地址)

0-1112

每页大小为4KB 2 12

对某特定机器,地址结构是一定的。

若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P页内地址d可按下式求得

 

页表

系统为每个进程建立了 一张页表。记录在该进程的PCB中。

逻辑地址空间内的所有页,依次在页表中有一表项,记录相应页在内存中对应的物理块号。

页表的作用:实现从页号到块号的地址映射。

地址转换

1. 地址转换:实现从逻辑地址到物理地址的转换,将逻辑地址中的页号转换为物理地址中的块号(页内地址和块内物

理地址一一对应)

  1. 映射表:借助页表完成(页面映射表的作用就是实现从页号到物理块号的变换)

1. 逻辑地址:以十六进制、八进制、二进制的形式给出

2. 页号和页内地址分离:按页的大小分离出页号和页内地址,将位移量直接复制到内存地址寄存器的低位部分

3. 页表查表:以页号查页表,得到对应页装入内存的块号,并将块号,转换成二进制数填入地址寄存器的高位部分,从而形成内存地址(页号+页内地址->块号+页内地址

页表寄存器:整个系统中设置一个页表寄存器,存放页表在内存的始址和页表的长度。当调度某进程执行时,将PCB中的页表的始址和长度装入页表寄存器中

动态地址变换机构:执行内存访问指令时,逻辑地址至物理地址的地址变换过程由硬件(动态地址变换机构DAT)实现

 

页表被保存在主存中

页表寄存器(Page-table registerPTR)指向页表的起始地址和长度

在这个机制中,每一次的数据/指令存取需要两次内存访问,一次是访问页表,一次是访问数据/指令

解决两次访问的问题,是采用小但专用且快速的硬件缓冲,这种缓冲称为转换表缓冲器(translation look aside bufferTLB)或联想寄存器

具有快表的地址变换机构

1. 访问内存性能降低:每执行一条指令,至少要访问内存两次。一次是到内存中访问页表;一次是形成物理地址后,到该内存单元中取指令或数据。这样,存取速度降低一倍,将会影响整个系统的使用效率

2. 快表:存放页表部分内容的快速存储器称为联想寄存器,联想寄存器中存放的部分页表称为“快表”

3. 联想寄存器解决方案:为提高速度,增设联想寄存器(也称快表,可按内容并行查找的快速寄存器,比内存贵,容量小),将作业中最常用的页块号置入高速缓存,提高查表速度,一般说,快表若含有8-16项,就可达到较高命中率

引入快表后的有效访问时间EAT

查找快表需要的时间为 λ

假设访问内存一次需要的时间为tEAT = t + t = 2t (基本分页存储系统中)

命中率在联想寄存器中找到页号的百分比,比率与联想寄存器的大小有关,假设为a

引入快表的有效访问时间EAT = λ * a + (t + λ)(1 – a) + t

页表结构

对页表所需要的内存空间,采用离散分配方式

两级页表

 

多级页表

 

反置页表

为减少页表占用的内存空间,引入反置页表,一个系统一张页表对每个内存物理块设置一个条目。

每个条目保存在真正内存位置的页的虚拟地址,以及包括拥有这个页的进程的信息。

减少了需要储存每个页表的内存,但是当访问一个页时,增加了寻找页表需要的时间

分段存储管理方式

引入目的:为了满足用户(程序员)在编程和使用上多方面的要求

方便编程信息共享信息保护动态链接动态增长

在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息

每个段都有自己的名字,通常用一个段号来代替段名,每个段都从0开始编址,并存储在一段连续的地址空间内

段的长度由相应的逻辑信息组的长度决定,因此各段长度不等

 

 

 

分段的一个突出优点,是易于实现段的共享,即允许若干个进程共享一个或多个分段,且对段的保护也十分简单易行

在分页系统中,虽然也能实现程序和数据的共享,但远不如分段系统来得方便

可重入代码(纯代码):一种允许多个进程同时访问的代码。

段页式存储管理方式

基本原理:

分段和分页原理的结合,即先将用户程序分成若干段,再把每个段分成若干个页,并为每个段赋予一个段名

优点:

既有分段系统的便于实现、可共享、易于保护、可动态链接;

又能像分页系统,很好地解决内存的外部碎片问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
存储器管理操作系统中的一个重要组成部分,它主要负责管理计算机的内存资源,包括内存分配和回收、内存保护、虚拟内存管理等。下面介绍一下操作系统实验中的存储器管理。 1. 内存分配和回收 内存分配是将一定大小的内存块分配给进程使用,而内存回收则是将进程不再使用的内存块释放出来,以便其他进程使用。在实现内存分配和回收时,可以采用多种算法,比如首次适应算法、最佳适应算法、最坏适应算法等。这些算法的实现过程可以通过链表或位图来完成。 2. 内存保护 内存保护是指防止进程越界访问内存区域,从而导致系统崩溃或数据损坏。在操作系统中,可以通过硬件和软件两种方式来实现内存保护。硬件保护通常通过内存管理单元(MMU)来实现,而软件保护则通过访问权限控制和地址空间隔离来实现。 3. 虚拟内存管理 虚拟内存管理是操作系统中的一个重要功能,它可以将进程的虚拟地址空间映射到物理内存中,从而使得进程可以访问超过实际物理内存大小的数据。在实现虚拟内存管理时,需要采用一些算法来完成页面置换和页面调度等操作,比如最近最少使用算法(LRU)。 总之,存储器管理操作系统中重要的组成部分,对于系统的稳定性和性能有着重要的影响。在操作系统实验中,可以通过实现内存分配和回收、内存保护、虚拟内存管理等功能,来加深对操作系统存储器管理的理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆水獭_(:_」∠)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值