操作系统 --存储器管理(2)

本文详细介绍了操作系统中进程的换入与换出过程,包括选择被换出进程的策略和换入换出的具体步骤。此外,还讲解了分页式、分段式以及段页式存储管理方式,重点阐述了段页式存储管理的地址变换机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.进程的换入与换出:

由于内核执行某些操作而发现内存不足时,便调用(或唤醒)对换进程,主要任务便是实现进程的换入换出。

1>进程的换出指:

对换进程在实现进程换出时,将内存中的某些进程调出至对换区以便腾出内存空间。

步骤:

①选择被换出的进程。选择优先级最低的处于阻塞或睡眠状态的进程,考虑进程在内存中的驻留时间,若系统无阻塞进程,而现在内存空间仍不足时,选择优先级最低的就绪进程换出。

②进程换出过程。选择换出进程后,在换出时,只能换出非共享的程序和数据段。换出时,应先申请对换空间,若成功,则启动磁盘,将该进程的程序和数据传送到磁盘的对换区上。若过程无错,便可回收该进程的进程控制块(PCB)和内存分配表等,数据结构做相应的修改。若还有可换出的进程,则继续执行换出进程,直至内存中再无阻塞进程为止。

2>进程的换入:

对换进程将定时执行换入操作,首先查看PCB集合中的所有进程的状态,从中找出“就绪”状态但已换出的进程。

当有许多此类进程时,选择其中已换出到磁盘上时间最久(必须大于规定时间)的进程作为换入进程,为它申请内存。若成功,可直接将进程从外存调入内存;若失败,则需先将内存中某些进程换出,有足够内存空间后,再将其调入。成功后,若仍有可换入进程,继续执行换入换出过程,将其余处于“就绪且换出”状态进程陆续换入,直至外存无“就绪且换出”状态进程为止,或已无足够内存来换入进程,此时对换进程停止换入。

2.分页式存储管理方式:将用户程序分为若干固定大小区域,称为“页”或“页面”,将内存空间分为若干个物理块,页和物理块大小相等,任一页放入任一物理块,实现离散分配。

3.分段式存储管理方式:将用户程序分为若干固定大小不同的段,每段定义一组相对完整的信息,存储器分配时也以段为单位,段可以不相邻,实现离散分配。

4.段页式存储管理方式:将分页和分段式方式结合,同时具有两者的有点。

这里简单说明一下段页式系统的地址变换机构过程(能理解一个,其他几个也能理解):

系统给程序分配的逻辑地址,先通过段号S,结合段表寄存器的段表长度判断是否地址越界,越界直接终止,不越界通过段表寄存器去段表寻址,寻找所需要的段号,找到段号所对应的段表后再结合逻辑地址中的页号,寻找到该段中页面所对应页号所存储的物理块,再结合逻辑地址中的页内地址组成物理地址。(如上图)

 

【实验目的】 1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解; 2. 熟悉虚存管理的各种页面淘汰算法; 3. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 【实验准备】 1.虚拟存储器管理方式  段式管理  页式管理  段页式管理 2.页面置换算法  先进先出置换算法  最近最久未使用置换算法  Clock置换算法  其他置换算法 【实验内容】 1. 实验题目 设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后地址部分。为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 2. 具体做法 产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以 1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,直到所有地址访问完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值