1.层次结构:
寄存器
高速缓存
主存储器
磁盘缓存
固定磁盘
移动存储
2.程序在内存中运行过程:
编译:形成若干目标模块
链接:目标模块组与库函数链接,形成装入模块 --静态链接、装入时动态链接和运行时动态链接
装入:装入程序Loader将装入模块装入内存 --可重定位装入、动态运行时装入 ect.
3.连续分配存储器管理
原因:程序装入内存,需要为其分配内存空间,连续分配是最早出现的分配方式
方式:
固定分区分配
--划定分区
--内存分配
动态分区分配
--分区中数据结构
--分区算法
--顺序搜索 FF/NF/BF/WF
--索引搜索 quick fit/ buddy system/哈希算法
动态可重定位分区分配
--紧凑 分散的小区域拼接成一个大分区
--动态重定位
--分区分配算法
4.对换 Swapping
原因:内存中某些进程发生阻塞,而因为内存不足,外存中驻留许多作业,所以需要暂时把不能运行的内存换出到外存,可运行的程序换入到内存
对换空间 文件区和对换区
换出 选择优先级最低的阻塞进程;只能换出非共享程序和数据
换入 找出就绪状态但已换出的进程,若有多个,选择等待时间最长的
5.分页存储管理
原因:连续分配内存会有许多碎片,紧凑方法会付出很大开销,将进程分散的装入内存,可提高内存利用率,分页存储是将用户程序的地址空间分成若干个大小固定区域
地址结构
页号p 位移量w(页内地址)
页表
作用:实现从页号到物理块号的映射
地址变换机构
作用:逻辑地址转换为内存物理地址
有效访问时间EAT
定义:进程发出逻辑地址请求-地址变换-内存中找到物理地址并取出数据 总时间
两级和多级页表
原因:逻辑地址空间变大,导致页表变大,要占用很大内存空间。解决方式是:1离散分配 2将当前需要页表项调入内存,其余驻留磁盘。
两级页表
作用:解决难以找到大内存存放页表问题
多级页表 对应与64位的机器
6.分段存储管理
原因:主要是满足程序员在编程和使用上的多方面的要求
分页和分段的主要区别
--页是信息的物理单位,分页是为了提高内存利用率,是系统行为;段是信息的逻辑单位,分段在于满足用户的需要
--页的大小固定;段长度不固定
--分页的用户程序地址是一维;分段的用户地址是二维,段名和段内地址