zoukankan      html  css  js  c++  java
  • 存储系统(4)-------虚拟存储

    1.目的

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

    2.工作原理

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

        若在,从主存中提取数据

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

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

      备注:

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

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

    3.地址转换

       页式 、 段式 、 段页式

      1).页式

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

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

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

         页表保存在主存。

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

        •至少访问两次主存。

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

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

        •页表项:

            有效位 + 物理页号

        •地址:

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

        •地址转换:

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

      2).段式:

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

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

         段表保存在主存。

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

        •段表项:

            有效位 + 段起址 + 段长

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

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

      3).段页式

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

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

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

        •段表项:

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

          页表项:    

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

        • 地址:

            段号 + 页号 + 页内地址

    4.存储保护

      1)目的

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

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

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

      1)分类

        • 存储区域保护

          防止地址越界

          ♦ 基于页表或段表的保护

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

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

          ♦ 键保护

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

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

          ♦ 环保护

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

        • 访问方式保护

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

        

  • 相关阅读:
    【Robot Framework】List 的相关使用方法
    robot framework ——关键字run keyword if 如何在一个条件下接多个执行语句,以及如何写复杂条件句-关键字Run Keywords和and
    Robotframework之页面元素操作功能
    selenium之 下拉选择框Select
    selenium修改readonly属性的元件
    Robotframework之Python的自定义库
    python 元类详解
    从<<JavaScript权威指南>>抄下来的一个例子
    链接
    Python+selenium之获取文本值和下拉框选择数据
  • 原文地址:https://www.cnblogs.com/gstblog/p/6442836.html
Copyright © 2011-2022 走看看