存储器的层次结构:寄存器--》告诉缓存--》主存--》磁盘缓存---》磁盘---》可移动的存储介质
寄存器和主存是可执行的寄存器(进程中可以用一条load或store指令对可执行存储器进行访问),对辅存的访问要借助I/0设备。方法的时间相差3个数量级
操作系统的存储管理:负责对可执行存储器的分配回收以及提供在存储层次间的数据移动和管理机制
根据程序的执行的局部性原理,将 主存中的一些经常访问的信息放到高速缓存中,可以减少对主存的访问次数,提高程序的可执行速度。通常进程程序和数据放在主存中每当使用的时候不给临时的复制给一个较快的高速缓存。
程序的装入看看合适连接
创建进程的第一件事就是讲将序和数据装入内存--编译---》编译目标模块---链接---》装入模块
程序的装入:绝对装入,可重定位装入,动态运行时装入
绝对装入:事先已经知道要装入的位置,逻辑地址和实际的地址是相同的,不能修改
可重定位装入:根据内存使用的情况定位,逻辑地址和实际地址不同,不能移动程序和数据,因此是静态重定位
动态运行时装入:程序和数据装入以后不把逻辑地址和实际的地址映射,只有在执行的时候才映射
程序的链接:静态链接,装入是链接(装入内存时链接),运行时链接(全部装入后要执行时链接)
连续的分配方式:第一连续分配,固定分区分配(将内存分成区域,一个区域装入一个作业),动态分区分配(可以不连续)可重定位分区分配(分区可以是不连续的)
对换:为了使在内存的空间充分利用把阻塞的进程和就绪的进程互换,提高内存的利用率。进程整体的是进程对换;还有页面对换和分段对换这是部分对换。
基本分页存储管理
连续的分配方式会产生很多的碎片,所以允许一个进程分散的装入到不同的分区中可以紧凑。如果离散的基本单位是页就是分页,(分段也一样)。
页面和物理块:讲一个进程的逻辑地址空间分配成若干个大小相等的片,成为页面(并为各个页编号)。分页的地址结构是有页号和位移量组成的
为了找到内存中各个页面对应的物理块,系统为每一个进程建立一个页面映射表,页表。
页表大多的驻留在内存长,系统中设置了一个页表寄存器PTR,存放页表在内存的初始地址和页表的长度。平时保存在PCB中,调度的时候装入寄存器。
快表:在地址变化机构中增设的一个有并行查询能力的特殊高速缓冲寄存器,应访问过的地址保存,减少访问主存的次数。
两级和多级的页表.....
基本的分段存储管理
为了满足用户(程序员)在编程和使用上的要求
方便编程,信息共享,信息保护,动态增长,动态链接
作业地址被划分成几个段,每段定义一组逻辑信息。(主程序段MAIN,子程序段X,数据段D和堆栈段S)每个段都是从0开始编址,采用一段连续的空间。长度是有相应的逻辑信息决定的,长度不等。
段表:段也是分散存储的,为了物理和逻辑地址的映射。
分页和分段的主要区别:
两者都采用了离散分配方式,都要通过地址映射机构来实现地址转换。
也是信息的物理单位,分页是为了实现离散分配方式,以减少内存的外零头,提高内存的利用率。分页是由于系统管理不是用户需要。段则是信息的逻辑单位,有一组意义相对完整的信息。分段是为了满足用户需要
页面的大小是有系统决定,系统吧逻辑地址划分为页号和业内地址,室友硬件实现的,系统中只有过一种大小的页面。段的长度不定,决定于用户编写的程序,通常在编译的失恋后根据信息的要求来划分
分页的作业地址空间是一维 的,在单一的线性空间,程序员利用一个记忆符可表示一个地址;作业的地址是二维的,要给出段名和段内地址。
虚拟存储技术:局部性原理
页面置换算法:根据不同的算法,实现不同的置换功能。