计算机操作系统基础笔记 操作系统有哪些状态( 七 )


伙伴系统进程请求大小为n的存储空间时,
首先计算一个 i 值,使 2 i-1 < n ≤ 2 i ;
在空闲分区大小为 2 i 的空闲分区链表中查找 。if 找到,即把该空闲分区分配给进程 。else 在分区大小为2 i+1 的空闲分区链表中寻找; //表明长度为2 i 的空闲分区已经耗尽 if 找到大小为2 i+1 的空闲分区 把该空闲分区分为相等的两个分区(一对伙 伴),其中一个用于分配,另一个加入分区大 小为 2 i 的空闲分区链表中 。else 查找大小为2 i+2 的空闲分区……
哈希算法利用哈希快速查找的优点,以及空闲分区在可利 用空间表中的分布规律,建立哈希函数,构造一 张哈希表,以空闲分区大小为关键字,每一个表 项记录了一个对应的空闲分区链表表头指针 。
当进行空闲分区分配时,根据所需空闲分区大小,通过哈希函数计算,即得到在哈希表中的位置,从中得到相应的空闲分区链表,实现最佳分配策 略 。
可重定位分区分配紧凑解决零头问题的办法,将内存中的所有作业进行移动,使它们全都相邻接,这样,可把原来分散的多个小分区合成一个大分区 。这种技术称为存储器的“紧凑” 。
动态重定位在动态运行时装入的方式中,作业装入内存后的所有地址都仍然是相对地址,将相对地址转换为物理地址的工作,被推迟到程序指令要真正执行时进行 。
动态重定位分区分配法是利用分区的“拼接”(对空白区而言)或“紧凑”(作业程序而言)技术 解决“零头” 。
对换对换指把内存中暂不能运行的进程或暂时不用和程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的程序和数据,换入内存 。
对换是系统行为,是提高内存的利用率的有效措施 。
– 整体对换(进程对换)
– 页面对换(分段对换)
为实现对换,系统需要三方面的功能:
对换空间的管理
进程的换入
换出
对换空间的管理外存被分为两部分,文件区和对换区,文件区用于存放文件,它采取离散分配方式 。对换(续) 即一个文件可根据当前外存的使用情况 ,被分成多块 ,分别存储到不邻接的多个存储区域中 ,用指针相连 。对换区存放从内存换出的进程 ,它们在外存的存放时间较短,换入 、换出频繁 。对对换区的管理,采用连续分配方式。
分配算法可以是首次适应算法、循环首次适应算 法和最佳适应算法 。
进程的换出和换入1、换出(swap out)
①选择:首先选择阻塞或睡眠状态的进程,若有多个,按优先级由低到高进行选择 。若没有此状态进程,则选择就绪状态的,仍然按优先级由低到高进行选择 。
②为避免某进程被频繁的换入换出,还应考虑进程在内存中的驻留时间,优先选择驻留时间长的进程 。
2、换入(swap in)
①从 PCB集合中查找“就绪且换出”的进程,有多个,则选择换出时间最长的 。
②根据进程大小申请内存,成功则读入,否则要先执行换出,再换入 。
③若还有可换入进程,则转向① 。直至无“就绪且换出”进程或无法获得足够内存空间为止 。
离散分配方式程序在内存中不一定连续存放 。
1)离散的基础
? 分页(Pages):将程序地址空间分页
? 分块(Frames):将内存空间分块
2)离散分配的体现
? 内存一块可以装入程序一页
? 连续的多个页不一定装入连续的多个块中 ?
注:系统中页块的大小是不变的 。
根据离散时的基本单位不同,可分为三种:
分页存储管理
分段存储管理
段页式存储管理
优点:没有外零头,仅有小于一个页面的内零头
分页存储管理注意:
页面或页,是逻辑空间的概念
物理块或页框,是内存空间/物理空间的概念
页表,每个进程对应 1 个页表,描述该进程的各页面在内存中对应的物理块号 。包括页号、物理块号,存放在主存的系统专用区 。( 平时存于PCB中,要运行时才装入PTR中)
作业表,整个系统1张,记录作业的页表情况,包含进程号、页表长度、页表始址等信息 。
空闲块表,整个系统1张,记录主存当前空闲块 。
Δ\” role=\”presentation\” style=\”box-sizing: border-box; position: relative;\”>ΔΔ地址变换过程(非快表)(1)根据逻辑地址,计算出页号和页内偏移量;

推荐阅读