1 程序的装入和链接
创建进程的第一件事:将程序和数据装入内存。
逻辑地址(相对地址,虚地址)
物理地址(绝对地址,实地址)物理地址可直接寻址被执行
2 连续分配存储管理方式
(1)单一连续分配
(2)固定分区分配
不足:内碎片(一个分区内的剩余空间)造成浪费,分区总数固定,限制并发执行的程序数目。
(3)动态分区分配
优点:并发进程数没有固定数的限制,不产生内碎片。
缺点:有外碎片(分区间无法利用的空间)
外碎片问题解决思路:移动分区位置,将小碎片整合为一个足够大小可被使用的分区。即紧凑思想
(4)动态重定位分区分配
3 分页存储管理方式
分页方式下,内存的使用率高,浪费少。但不是绝对没有碎片(进程的最后一页不总是能占满一个物理块)
地址映射计算
页号+页内地址(即页内偏移)
快表:放入正在执行进程的页表的数据项。
两级、多级页表,反置页表——针对大页表占用内存问题
4 分段存储管理方式
分段存储管理:作业分成若干段,各段可离散放入内存,段内仍连续存放。
段的特点:
每段有自己的名字(一般用段号做名),都从0编址,可分别编写和编译。装入内存时,每段赋予各段一个段号。
每段占据一块连续的内存。(即有离散的分段,又有连续的内存使用)
各段大小不等。
地址结构:段号 + 段内地址
段表:记录每段实际存放的物理地址
分页和分段的主要区别
需求:分页是出于系统管理的需要,是一种信息的物理划分单位,分段是出于用户应用的需要,是一种逻辑单位
大小:页大小是系统固定的,而段大小则通常不固定。分段没有内碎片,但连续存放段产生外碎片,可以通过内存紧缩来消除。相对而言分页空间利用率高。
通常段比页大,因而段表比页表短,可以缩短查找时间,提高访问速度。分段模式下,还可针对不同类型采取不同的保护;按段为单位来进行共享
段页式存储管理方式
基本原理:
将用户程序分成若干段,并为每个段赋予一个段名。
把每个段分成若干页
地址结构包括段号、段内页号和页内地址三部分
5 虚拟存储器、请求分页/分段、页面置换算法
虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储器管理——由操作系统提供一个比实际内存大的,假想的特大存储器
请求分页存储管理方式
基本分页 + “请求调页”和“页面置换”功能。
换入和换出基本单位都是长度固定的页面
缺页中断机构
(1) 在指令执行期间产生和处理中断信号。
(2) 一条指令在执行期间,可能产生多次缺页中断。
地址变换机构
分页系统地址变换机构的基础上增加
产生和处理缺页中断(请求调入)
从内存中换出一页的功能(置换)
页面置换算法
缺页率:页面调入次数(缺页次数)/总的页面使用次数
最佳(Optimal)置换算法
保证获得最低的缺页率
不足:无法实现,因为无法预知一进程将来的运行情况
作用:作为参照标准,评价其他算法。
先进先出置换算法(FIFO)(容易出现Belady 现象)
先进入的先淘汰,即选择内存中驻留时间最久的页面予以淘汰。
优点:实现简单,把一进程已调入内存的页面按先后次序组织成一个队列,并设置一个指针(替换指针),使它总是指向队首最老的页面。
不足:与进程实际运行规律不相适应(较早调入的页往往是经常被访问的页,频繁被对换造成运行性能降低)
最近最久未使用(LRU)置换算法
不足:有时页面过去和未来的走向之间并无必然的联系。
相应的需较多的硬件支持
轮转算法(clock)(最近未使用算法)
抖动:页面调入不久就被导出,导出不久又被调入,导致系统频繁更换页面
网友评论