【例】为何段式管理有段内越界而页式管理无页内越界问题?(南方名校经典试题) 【分析】段是按逻辑长度来划分的长度不固定但页是按物理块来划分长度固定因此段号可能会超过页表长度而段内地址也可能超过该段段长 【解答】段式存储管理逻辑地址到物理地址的转换原理是这样的 在段式存储管理系统中为了实现从逻辑地址到物理地址的转换系统将逻辑地址中的段号与段表长度进行比较若段号超过了段表长度则表示段号太大于是产生越界中断信号若未越界则根据段表始址和段号计算出该段对应段表项的位置从中读出该段在内存的起始地址然后再检查段内地址是否超过该段的段长若超过则同样发出越界中断信号若未越界则将该段的起始地址与段内位移相加从而得到了要访问的物理地址 而页式管理中一页时间就是一个物理块页式管理的引入本身就是为了节约空间而段式管理是为了方便存储保护和共享在页式管理中每一页大小都相同的而段式管理段的大小却是不相同的所以有可能超过段大小的上限 【例】在请求页式存储分配中是如何获知该页不在主存的?若被访问的页面不在主存那么从何处获知它在外存或对换区内的位置?(东部名校经典试题) 【分析】在请求页式存储器中通过增加中断判别位获知页是否处于主存而且本身在外存还保留着页在外存的起始地址这样可以判别该页是在那个区 【解答】请求页式存储中通过对页表进行扩充即增加了该页是否在内存的中断位来获知该页是否存在主存若为则说明不在主存为说明该页已经调入主存通过在页表中增加该页在外存中的副本起始地址可以获知其在外存或在对换区的位置 【例】什么叫重定位?采用内存分区管理时如何实现程序运行时的动态重定向?(北方名校经典试题) 【分析】重定位实际就是在真正执行时才将相对地址转换成绝对地址一般来说必须增加一个重定位寄存器真正的地址是有效地址与寄存器内的地址之和 【解答】在装入时对目标程序中的指令和数据地址的修改过程称为重定位 动态运行时的装入程序在把装入模块装入内存后并不立即把装入模块中的相对地址转换为绝对地址而是把这种地址转换推迟到程序要真正执行时才进行因此装入内存后的所有地址仍都是相对地址为使地址转换不影响指令的执行速度这种方式需要一定的特殊硬件的支持 返回《操作系统考研辅导教程》 [] [] [] [] [] [] [] [] |