zoukankan      html  css  js  c++  java
  • [操作系统]5-存储管理、6-文件系统

    第五章 存储管理

    分页技术

    分页存储管理的基本概念

    • 页、块的概念
      • 逻辑空间分页:一个进程的逻辑地址空间分成等大小的部分,叫做页。
      • 内存空间分块:内存(物理存储空间)分为等大小的部分,叫做块。
    • 页表、块表的作用
      • 页表:页表的作用是实现页号到物理块号的地址映射。(页表放在cache中叫快表,页表放在内存中叫慢表。)
      • 块表:整个操作系统有一个内存块表。每个内存块在内存块表占一项,表明当前块是空闲还是已经分出去了;如果已分出去,是分给哪个进程的哪个页面了。
    • 内存分配原则
      • 当一个进程装入内存时,首先检查它有多少页,若有n页,若内存中空闲块满足>=n,则分配n个空闲块,将进程装入内存,且在该进程的页表中记下一页号和块号的对应关系。(即系统以块为单位把内存分配给进程)
    • 逻辑地址结构
      • (高位)页号p+(低位)页内地址d ;如果地址字长是m位,而页面大小是2^n字节,那么页号占m-n位(高位),低n位表示页内地址。
      • 给定逻辑地址A,页面大小L,则
        • 页号p=(int)A/L
        • 页内地址d=A %L
      • 逻辑地址(页号+页内地址)=>物理地址(块号+页内地址)

    特点

    • 分页技术存在内部碎片,不存在外部碎片。
    • 页面设计越小,
      • 优点
        可以减少内部碎片。
      • 缺点
        同一进程,需要的页面更多。所以:1:需要更大的页表,页表寄存器装入的时间更长。2.页面传送的次数更多,而传送大页面和小页面的时间大致相同,从而增加了总的传送时间。

    页表的构造(todo 继续看书)

    • 问题:
      由于每个进程的页表要连续的较大的内存,也不现实。
    • 解决方法:
      • 1.多级页表
        把页表本身也分页,离散地存储在内存中,并且只将当前需要部分的表项掉入内存,其余的表项根据与需要动态地掉入内存。
        例如两级页表:
        地址结构:外层页号+内层页号+页内地址
        外层页项每一项是相应内层页表的起始地址,内层页项每一项是相应页面在内存中的物理块号。
      • 2.散列页表
        散列表每一项是一个散列值对应的链表,链表节点是页号、页号对应的块号、以及连着下一个节点的指针。
      • 3.成簇页表
        64位大地址往往采用这种方式。【与散列表相似,差别是:散列页表中的每一项不是仅对应一页,而是涉及若干页构成的簇。这样一个页表项就可以保存多个物理块的映像。】?

    分段技术

    分页技术中提供给用户的逻辑地址空间是一维的线性空间,这与内存的物理组织基本相同,但用户所写的程序的逻辑结构却不是这样的。
    我们希望程序的地址空间按照程序自身的逻辑关系划分成若干段,例如每个函数一个段,各段单独占用一片内存空间。

    分页和分段的区别

    • 页:页的大小是系统决定的,由机器硬件把逻辑地址划分成页号和页内地址两部分,在一个系统中只能有一种页的大小。
      段:一个程序各段的长度可以各不相同,取决于用户编写的程序。
    • 页:分页的进程,地址空间是一维的,地址编号从0递增,一直排到末尾。
      段:分段的的进程,地址空间是二维的,标识一个地址时,除给出段内地址外,还必须给出段名。
    • 页:分页系统很难实现过程和数据的分离
      段:分段系统可以很容易实现。

    段页式(todo 继续看书)

    分页存储管理:有效地提供内存利用率;分段存储管理:很好的满足用户需要。段页式将二者结合。

    基本原理

    1. 等分内存。内从块从0开始依次编号。
    2. 进程的地址空间采用分段方式。把进程的程序和数据划分成若干段,每段有一个段名。
    3. 段内分页,页面大小与内存块相同。每段内的各个页面都分别从0开始依次编号。
    4. 逻辑地址结构:段号+段内页号+页内地址
    5. 内存分配的单位是内存块。
    6. 段表、页表、段表地址寄存器。
      系统有一个段表地址寄存器,指出每个进程的段表长度和段表起始地址。
      系统为每个进程建一个段表(记录页表长度和页表地址)。
      系统还为每个进程的段表中的每个段建立页表。

    第6章 文件系统

    磁盘空闲存储空间管理

    1 空闲空间表法
    2 空闲块链接法
    3 位示图法(BitMap)法
    用一串二进制值反应磁盘空间的分配情况,位示图大小由盘块总数决定。每个盘块对应一个二进制位,表示空闲/已分配。
    优点:寻找第一个空闲块或几个连续的空闲块时相对简单有效(利用位操作)。
    4 空闲块成组链接法

  • 相关阅读:
    《算法图解》——第六章 广度有限搜索
    《算法图解》——第一章 算法简介
    《算法图解》——第二章 选择排序
    go-json处理的问题
    Go断言
    Go Example--格式化字符串
    Go Example--strings
    Go Example--组合函数
    Go Example--defer
    Go Example--panic
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10963127.html
Copyright © 2011-2022 走看看