存储系统(4)-------虚拟存储

1.目的

  将一部分磁盘空间作为主存,价格、容量接近辅存,速度接近主存。

2.工作原理

  CPU给出虚拟地址,进行内部转换,判断改地址是否在主存中

    若在,从主存中提取数据

    若不在,进行外部地址转换(利用外页表,外段表,通常由软件实现)

      外部转换计算出辅存地址,并使用替换算法,进行数据的调入调出

  备注:

    • CPU通过MMU支持操作系统进行存储管理的相关工作

    • MMU完成虚拟地址到物理地址的转换

3.地址转换

   页式 、 段式 、 段页式

 

  1).页式

    • 思想:用固定大小的页描述逻辑空间和物理空间

    • 程序调入调出以页为单位

    • 由页表完成页管理和地址转换。

     页表保存在主存。

       页表起始地址由页表基址寄存器给出

    •至少访问两次主存。

      改进:使用快慢表。块表保存在cache,TLB(利用程序访问局部性)

    •主存利用率高,地址变换快,调入简单。不利于编程独立性

    •页表项:

        有效位 + 物理页号

    •地址:

        物理(逻辑)地址 = 页大小 * 页面号 + 页内地址

    •地址转换:

      虚拟地址的虚拟页号作为偏移地址,利用页表基址找到对应页表项,有效位为1时,从页表项提取物理页号,与虚拟地址的页内地址共同形成物理地址。

  2).段式:

    • 程序以逻辑结构分段,主存以段为单位分配

    • 由段表对程序进行管理。

     段表保存在主存。

       段表基址由段表基址寄存器给出

    •段表项:

        有效位 + 段起址 + 段长

    •地址转换:
      段基址寄存器取出段表基址,加上虚拟地址的段号,定位到段表的对应存储字

      在存储字中取出段起始地址,与虚拟地址的段内地址相加,的物理地址

  3).段页式

    • 物理空间分页,程序分段,段再分页

    • 由一个段表和一组页表管理

     程序调入调出以页为单位,编程、保护、调度以段为单位

    •段表项:

        该段页表起始地址 + 页表长度

      页表项:    

        该段各页在主存中实页号 + 有效位 + 是否已修改

    • 地址:

        段号 + 页号 + 页内地址

4.存储保护

  1)目的

    • 保证程序间不会相互覆盖,不会访问无关程序数据

    • 保证出错程序不会破坏其他用户程序及系统程序

    • 以段或者页为单位对主存中程序与数据进行保护

  1)分类

    • 存储区域保护

      防止地址越界

      ♦ 基于页表或段表的保护

        程序虚页号固定,转换后实页号固定,保证不会相互影响

        段表记录段上界、下界、段长,保证不会越界

      ♦ 键保护

        每页分配一个存储建,用于指明保护等级。

        操作系统给出的访问建与存储建相等时才允许访问 

      ♦ 环保护

        将程序分为多个保护级别,一级为一环。

    • 访问方式保护

      保证程序不会对主存执行非授权操作(通过对页表、段表设置访问权限标志位实现)

    

转载于:https://www.cnblogs.com/gstblog/p/6442836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值