2.地址变换过程 例如指令L0AD1,2500的地址变换过程如下: 指令 虚拟地址 位移量 号位移量 物理地址 若页号>页表大小 则中断 若访问不允许 页数页表起址 存储控制 顶页表寄存器 页号块号权限 页描述子 02 内存 页表
2. 地址变换过程 • 例如指令 LOAD 1,2500 的地址变换过程如下:
地址变换过程(续) 把虚拟地址2500转换成页号P=2,位移量W=452; 如果页号2大于页表大小,则中断;否则继续; 页号2与页表起址1000运算(000+2米20,设页描 述子大小为20)得到页描述子地址为1040 从页描述子中读取块号8; 根据页描述子的“存取控制”判断该指令是否被 允许访问内存,如果不允许,则中断;香则继续 块号8与位移量452运算(8*1024+452=9644, 1024为页面大小)得到物理地址9644 把数字1写进内存地址9644单元中
地址变换过程(续) • 把虚拟地址2500转换成页号P=2,位移量W=452; • 如果页号2大于页表大小,则中断;否则继续; • 页号2与页表起址1000运算(1000+2*20,设页描 述子大小为20)得到页描述子地址为1040; • 从页描述子中读取块号8; • 根据页描述子的“存取控制”判断该指令是否被 允许访问内存,如果不允许,则中断;否则继续; • 块号8与位移量452运算(8*1024+452=9644, 1024为页面大小)得到物理地址9644; • 把数字1写进内存地址9644单元中
3.管理 1)页表:系统为每个进程建立一个页表 页表给出逻辑页号和具体内存块号相 应的关系 页表放在内存,属于进程的现场信息 2)空块管理——位示图 3)内存的分配与回收
3.管 理 1)页表:系统为每个进程建立一个页表, 页表给出逻辑页号和具体内存块号相 应的关系 页表放在内存,属于进程的现场信息 2)空块管理——位示图 3)内存的分配与回收
空块管理—位示图 31 00/10/1 0/1 0/10/1 7 空闲块数
0 31 0 0/1 0/1 0/1 0/1 0/1 1 7 …… 空闲块数 …… 空块管理——位示图
内存的分配 √计算一个作业所需要的总块数N √查位示图,看看是否还有N个空闲块 √如果有足够的空闲块,则页表长度 设为N,可填入PCB中;申请页表区, 把页表始址填入PCB √依次分配N个空闲块,将块号和页号 填入页表 √修改位示图
内存的分配 ✓计算一个作业所需要的总块数N ✓查位示图,看看是否还有N个空闲块 ✓如果有足够的空闲块,则页表长度 设为N,可填入PCB中;申请页表区, 把页表始址填入PCB ✓依次分配N个空闲块,将块号和页号 填入页表 ✓修改位示图