某系统采用页式存储管理策略,拥有逻辑地址空间32页,每页2K,拥有物理空间1M。 100
1M的物理空间可以分为29块??希望能详细的解释!1.进程的页表有多少项?每项至少有多少位?2.如果物理空间减少一半,页表结构应相应作怎样的改变?...
1M的物理空间可以分为29块??希望能详细的解释!
1.进程的页表有多少项?每项至少有多少位?
2.如果物理空间减少一半,页表结构应相应作怎样的改变? 展开
1.进程的页表有多少项?每项至少有多少位?
2.如果物理空间减少一半,页表结构应相应作怎样的改变? 展开
1个回答
展开全部
页式存储管理该技术近年来已广泛用于微机系统中,支持页式想念管理的硬件部件通常称不“存储管理部件”。
存储管理部件首先把内存分成大小相等的许多区,把每个区称不“块”,块是进行主存空间分配的物理单位。同时,要求程序中的逻辑地址也进行分页,页的大小与块的大小一致辞。这样,就可把程序信息按页存放到块中。于是,页式存储品提供编程使用的逻辑地址由两部分组成:页号和页内地址。其格式为
页号 页内地址
页式存储的地址结构确定了内存分块的大小,也就决定了页面的大小。
页式存储管理分配内存空间以物理页面为单位,由于物理页面的大小是固定的,所以只要在内存分配表中具有可以指了哪能些块已经分配、哪能些块尚未分配以及当前剩余的空闲块数待三种不同的标识即可。
简单的内存分配表可以用一张“位示图”构成。假设内存的可分配区域被分成256块,则可用字长为32位的8个字作为“位示图“。位示图中的每一位与一个内存块对应,每一位的值可以是0或1,0表示对应的内存块为空闲,1表示已占用。在位示图中再增加一个字节记录当前剩余的总空闲块数,如图4-13所示。初始化时系统在位示图中把操作系统占用氢对就的位置成1,欺余们均置0,剩余空闲块数为可分配的空闲内存块总数。
在进行内存分配时,先查看空闲块数是否能满足程序要求。若不能满足,则不进行分配,程序就能装入内存;若能满足,则根据需求从位示图中找出一些为0的位,把这些位置成1,并从空闲块数中减去本次分配的块数,然后按照找到的位算出对应的块号。
当找到一个为0的位后,根据它所在的字号、位号,按如下公式就可计算出对应的块号:
块号=字号*字长+位号
把程序装入到这些内存块中,并为该程序建立页表表。
当程序执行结束语时,则应收回它所占用的内存块。根据归还的块号计算出该块在位示图中对应的位置,将占用标志修改成0,再把回收的块数加入到空闲块数中。
假定归还块的块号为I,则在位于图中对应的位置为:
字号=[I/字长],位号=I mod字长
页式存储管理要有硬件的地址转换机构作支持。同时,要为每个被装入内存在进程提供一张贾表。该页表所在内存的起始地址和长度作为现场信息存放在该进程的进程控制块中。一旦进程被调度进入处理器执行,这些信息被作为恢复现块算送入系统的地址映射机制中的寄存器里。
1、 页式存储管理的地址转换
为了实现页式存储管理,系统要提供一对硬件的页表控制寄存器,即页表始址寄存器和页表长度寄存器,另外还需要高速缓冲存储器的支持。页表始址寄存器,用于保存正在运行进程的页表在内存的首地址,当进程被调度程序选中投入运行时,系统将其页表首地址从进程控制块中取出送入该寄存器。页表长度寄存器,用于保存正在运行进程的页表的长度,当进程被选中运行时,系统将它从进程控制块中取出送入该寄存器。
页表指出该程序逻辑地址中的页号与所占用的主存块号之间的对应关系。页表的长度由程序拥有的页面数而定,故每个程序的页表长度可能不是不同的。
页表又是硬件进行地址转换的依据,每执行一条指令时按逻辑地址中的页号查页表。若页表中无此页号,则产生一个“地址错”的程序性中断事件。若页表中有此页号,则右得到对应的主存块号,按计算公式可转换成访问的主存的物理地。
物理地址的计算公式为:
物理地址=内存块号*块长+页内地址
根据二进制乘法运算的性质,一个二进制数乘以2n结果实际上是将该数左移n位。所以,实际上是把内存块号作为绝对地址的高位地址,而页内地址作为它的低地址部分。
2、 快表
一般而言,页式存储管理中的页表是存放在内存中的。于是,当要按给定的逻辑地址进行读写时,必须访问两次主存。第一次按页号读出页表中对应的块号,第二次按计算出来的绝对地址进行读写。两次访问主存显然延长了指令的执行周期,降低了执行速度。
为了提高存取速度,有两种方法。一种是在地址映射机制中增加一组高速寄存器保存页表,这需要大量的硬件开销,在经济上不可行。另一种方法是在地址映射机制中增加一个小容量的联想寄存器,它由高速缓冲存储器组成。
利用高速缓冲存储器存放当前访问最频繁的少数活动页面的页号,这个高速缓冲存储器称为“快表”。
快表中登记了页表中的一部分页号与主存块号的对应关系。根据程序的存储访问局部性原理,在一段时间内总经常访问少数几页,若所这引起页希望在快表中,显然可快速查找并提高指令执行速度。
快表只存放当前进程最活跃的少数几页,随着进程的推进,快表的内容动态进行更新。
实际上,查找快表和查找内存页表是并行进行的,一旦发现快表中有与所查页号一致的逻辑页号就停止查找内存页表,而直接利用快表中的逻辑页号。
采用快表后,地址转换的时间大大下降。假定访问主存的时间为200纳秒,访问高速缓冲存储器的时间为40纳秒,高速缓冲存储器为16个单元时,查快表的命中率为90%。于是,按逻辑地址转换成约对地址进行存取的平均访问时间为:
(200+40)*90%+(200+200)*10%=256(纳秒)
不使用快表需两次访问主存的时间:200*2=7400纳秒。可见使用快表与不使用快表相比,访问时间下降了36%。
存储管理部件首先把内存分成大小相等的许多区,把每个区称不“块”,块是进行主存空间分配的物理单位。同时,要求程序中的逻辑地址也进行分页,页的大小与块的大小一致辞。这样,就可把程序信息按页存放到块中。于是,页式存储品提供编程使用的逻辑地址由两部分组成:页号和页内地址。其格式为
页号 页内地址
页式存储的地址结构确定了内存分块的大小,也就决定了页面的大小。
页式存储管理分配内存空间以物理页面为单位,由于物理页面的大小是固定的,所以只要在内存分配表中具有可以指了哪能些块已经分配、哪能些块尚未分配以及当前剩余的空闲块数待三种不同的标识即可。
简单的内存分配表可以用一张“位示图”构成。假设内存的可分配区域被分成256块,则可用字长为32位的8个字作为“位示图“。位示图中的每一位与一个内存块对应,每一位的值可以是0或1,0表示对应的内存块为空闲,1表示已占用。在位示图中再增加一个字节记录当前剩余的总空闲块数,如图4-13所示。初始化时系统在位示图中把操作系统占用氢对就的位置成1,欺余们均置0,剩余空闲块数为可分配的空闲内存块总数。
在进行内存分配时,先查看空闲块数是否能满足程序要求。若不能满足,则不进行分配,程序就能装入内存;若能满足,则根据需求从位示图中找出一些为0的位,把这些位置成1,并从空闲块数中减去本次分配的块数,然后按照找到的位算出对应的块号。
当找到一个为0的位后,根据它所在的字号、位号,按如下公式就可计算出对应的块号:
块号=字号*字长+位号
把程序装入到这些内存块中,并为该程序建立页表表。
当程序执行结束语时,则应收回它所占用的内存块。根据归还的块号计算出该块在位示图中对应的位置,将占用标志修改成0,再把回收的块数加入到空闲块数中。
假定归还块的块号为I,则在位于图中对应的位置为:
字号=[I/字长],位号=I mod字长
页式存储管理要有硬件的地址转换机构作支持。同时,要为每个被装入内存在进程提供一张贾表。该页表所在内存的起始地址和长度作为现场信息存放在该进程的进程控制块中。一旦进程被调度进入处理器执行,这些信息被作为恢复现块算送入系统的地址映射机制中的寄存器里。
1、 页式存储管理的地址转换
为了实现页式存储管理,系统要提供一对硬件的页表控制寄存器,即页表始址寄存器和页表长度寄存器,另外还需要高速缓冲存储器的支持。页表始址寄存器,用于保存正在运行进程的页表在内存的首地址,当进程被调度程序选中投入运行时,系统将其页表首地址从进程控制块中取出送入该寄存器。页表长度寄存器,用于保存正在运行进程的页表的长度,当进程被选中运行时,系统将它从进程控制块中取出送入该寄存器。
页表指出该程序逻辑地址中的页号与所占用的主存块号之间的对应关系。页表的长度由程序拥有的页面数而定,故每个程序的页表长度可能不是不同的。
页表又是硬件进行地址转换的依据,每执行一条指令时按逻辑地址中的页号查页表。若页表中无此页号,则产生一个“地址错”的程序性中断事件。若页表中有此页号,则右得到对应的主存块号,按计算公式可转换成访问的主存的物理地。
物理地址的计算公式为:
物理地址=内存块号*块长+页内地址
根据二进制乘法运算的性质,一个二进制数乘以2n结果实际上是将该数左移n位。所以,实际上是把内存块号作为绝对地址的高位地址,而页内地址作为它的低地址部分。
2、 快表
一般而言,页式存储管理中的页表是存放在内存中的。于是,当要按给定的逻辑地址进行读写时,必须访问两次主存。第一次按页号读出页表中对应的块号,第二次按计算出来的绝对地址进行读写。两次访问主存显然延长了指令的执行周期,降低了执行速度。
为了提高存取速度,有两种方法。一种是在地址映射机制中增加一组高速寄存器保存页表,这需要大量的硬件开销,在经济上不可行。另一种方法是在地址映射机制中增加一个小容量的联想寄存器,它由高速缓冲存储器组成。
利用高速缓冲存储器存放当前访问最频繁的少数活动页面的页号,这个高速缓冲存储器称为“快表”。
快表中登记了页表中的一部分页号与主存块号的对应关系。根据程序的存储访问局部性原理,在一段时间内总经常访问少数几页,若所这引起页希望在快表中,显然可快速查找并提高指令执行速度。
快表只存放当前进程最活跃的少数几页,随着进程的推进,快表的内容动态进行更新。
实际上,查找快表和查找内存页表是并行进行的,一旦发现快表中有与所查页号一致的逻辑页号就停止查找内存页表,而直接利用快表中的逻辑页号。
采用快表后,地址转换的时间大大下降。假定访问主存的时间为200纳秒,访问高速缓冲存储器的时间为40纳秒,高速缓冲存储器为16个单元时,查快表的命中率为90%。于是,按逻辑地址转换成约对地址进行存取的平均访问时间为:
(200+40)*90%+(200+200)*10%=256(纳秒)
不使用快表需两次访问主存的时间:200*2=7400纳秒。可见使用快表与不使用快表相比,访问时间下降了36%。
参考资料: http://www.jstvu.edu.cn/jxjy/jiaoan/caozuoxitong/neirong/4.3.htm
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询