1.地址转换 ●采用静态重定位方式。 处理器设置两个寄存器:下限寄存器和上限寄存器。下限 寄存器用来存放分区低地址,即起始地址;上限寄存器用 来存放分区的高地址,即末址 地址转换过程 CPU获得的逻辑地址首先与下限寄存器的值相加,产生物理地址; 然后与上限寄存器的值比较,若大于上限寄存器的值,产生“地 址越界”中断信号,由相应的中断处理程序处理;若不大于界限 寄存器的值,得到物理地址就是合法地址,它对应于主存中的 个存储单元。 地址转换过程如图3-10所示
1.地址转换 ⚫ 采用静态重定位方式。 ⚫ 处理器设置两个寄存器:下限寄存器和上限寄存器。下限 寄存器用来存放分区低地址,即起始地址;上限寄存器用 来存放分区的高地址,即末址。 ⚫ 地址转换过程 – CPU获得的逻辑地址首先与下限寄存器的值相加,产生物理地址; – 然后与上限寄存器的值比较,若大于上限寄存器的值,产生“地 址越界”中断信号,由相应的中断处理程序处理;若不大于界限 寄存器的值,得到物理地址就是合法地址,它对应于主存中的一 个存储单元。 ⚫ 地址转换过程如图3-10所示
2.存储保护 ●系统设置了一对寄存器,称为“下限寄存器”和 “上限寄存器”记录当前在CPU中运行作业在主 存储器中的下限和上限地址。 当处理机执行该作业的指令时必须核对表达式 “下限地址<=绝对地址<=上限地址”是否成立。 若成立,就执行该指令,否则就产生“地址越界”中 断事件,停止执行该指令 运行的作业在让出处理器时,调度程序选择另 个可运行的作业,同时修改当前运行作业的分区 号和下限、上限寄存器的内容,以保证处理器能 控制作业在所在的分区内正常运行
2.存储保护 ⚫ 系统设置了一对寄存器,称为“下限寄存器”和 “上限寄存器”记录当前在CPU中运行作业在主 存储器中的下限和上限地址。 ⚫ 当处理机执行该作业的指令时必须核对表达式 “下限地址<=绝对地址<=上限地址”是否成立。 – 若成立,就执行该指令,否则就产生“地址越界”中 断事件,停止执行该指令。 ⚫ 运行的作业在让出处理器时,调度程序选择另一 个可运行的作业,同时修改当前运行作业的分区 号和下限、上限寄存器的内容,以保证处理器能 控制作业在所在的分区内正常运行
3.34管理特点 (1)一个作业只能装入一个分区,不能装入两个或多 个相邻的分区。一个分区只能装入一个作业,当分区 大小不能满足作业的要求时,该作业暂时不能装入。 (2)通过对“分区分配表”的改写,来实现主存的分 配与回收。作业在执行时,不会改变存储区域,所以 采用静态地址重定位方式。此方法易于实现,系统开 销小。 ●(3)当分区较大作业较小时,仍然浪费许多主存空间 并且分区总数固定,限制了并发执行的作业数目
3.3.4 管理特点 ⚫ (1)一个作业只能装入一个分区,不能装入两个或多 个相邻的分区。一个分区只能装入一个作业,当分区 大小不能满足作业的要求时,该作业暂时不能装入。 ⚫ (2)通过对“分区分配表”的改写,来实现主存的分 配与回收。作业在执行时,不会改变存储区域,所以 采用静态地址重定位方式。此方法易于实现,系统开 销小。 ⚫ (3)当分区较大作业较小时,仍然浪费许多主存空间。 并且分区总数固定,限制了并发执行的作业数目
3.3.5对固定分区存储管理方 式的改进 ●一个分区只装入一个作业,分区的其它部分闲 置不用,降低了主存的利用率。可采用下列算 法提高主存的利用率 (1)根据经常出现的作业的大小和数量来划分分 区,尽可能使各个分区充分利用 (2)划分分区时按分区的大小顺序排列,低地址 部分是较小的分区,高地址部分是较大的分区。各 分区按从小到大的顺序登记在分区表中 (3)按作业对主存的需求量排成多个作业队列, 个作业队列对应一个分区,互不借用
3.3.5 对固定分区存储管理方 式的改进 ⚫ 一个分区只装入一个作业,分区的其它部分闲 置不用,降低了主存的利用率。可采用下列算 法提高主存的利用率: – (1)根据经常出现的作业的大小和数量来划分分 区,尽可能使各个分区充分利用。 – (2)划分分区时按分区的大小顺序排列,低地址 部分是较小的分区,高地址部分是较大的分区。各 分区按从小到大的顺序登记在分区表中。 – (3)按作业对主存的需求量排成多个作业队列, 一个作业队列对应一个分区,互不借用
3.3.6固定分区存储管理举例 例3-1】 在某系统中采用固定分区分配管理方式,主 存分区(单位字节)情况如图3-9(a)所示 现有大小为1KB、9KB、33KB、121KB的多 个作业要求进入主存,试画出它们进入主存 后的空间分配情况,并说明主存浪费有多大?
3.3.6 固定分区存储管理举例 ⚫ 【例3-1】 – 在某系统中采用固定分区分配管理方式,主 存分区(单位字节)情况如图3-9(a)所示。 现有大小为1KB、9KB、33KB、121KB的多 个作业要求进入主存,试画出它们进入主存 后的空间分配情况,并说明主存浪费有多大?