① 某系统采用页式存储管理,拥有逻辑空间32页,每页2K,拥有物理空间1M。
2)逻辑空间有32页,进程的页表最多有32个页表项,1M=2^10k的物理空间,每个物理2K,故有1M/2K=2^9个物理块,故页表项需要多少位=块号多少位来表示,即2^9个物理块要用多少位2进制数来表示,可以看出是要表示完这些,至少需要9位的2进制数。
3)第三题同2)一样的道理,1M物理空间推出了页表项最少9位,现在物理空间减少一半=2^9K,所以项的位数用8位表示就足够了,块号改成8位,至于页表的页号,逻辑空间仍是32页,所以页表项数不变,页号也不变。
② 某计算机系统采用页式存储管理,程序的逻辑地址总长为32位,页大小是4096字节,用户
这个好做:逻辑地址为32位,表示地址寄存器为32位,地址寄存器位数=页数的位数+每页位数;
题目中地址寄存器为32位,每页为4096字节,即2^12,说明每页的位数w为12位,则32-12=20位 ,这个20位即页数的位数,那页数总计2^20=1M
③ 某系统采用页式存储管理策略,拥有逻辑地址空间32页,每页2K,拥有物理空间1M。
页式存储管理该技术近年来已广泛用于微机系统中,支持页式想念管理的硬件部件通常称不“存储管理部件”。
存储管理部件首先把内存分成大小相等的许多区,把每个区称不“块”,块是进行主存空间分配的物理单位。同时,要求程序中的逻辑地址也进行分页,页的大小与块的大小一致辞。这样,就可把程序信息按页存放到块中。于是,页式存储品提供编程使用的逻辑地址由两部分组成:页号和页内地址。其格式为
页号 页内地址
页式存储的地址结构确定了内存分块的大小,也就决定了页面的大小。
页式存储管理分配内存空间以物理页面为单位,由于物理页面的大小是固定的,所以只要在内存分配表中具有可以指了哪能些块已经分配、哪能些块尚未分配以及当前剩余的空闲块数待三种不同的标识即可。
简单的内存分配表可以用一张“位示图”构成。假设内存的可分配区域被分成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%。
④ 假定某采用页式存储管理的系统中,主存容量为1m
1M=1024K/M*1024B/K=2^20B
1M=1024K 1024k/(255+1)=4k
4k=4*1024b/k=2^12b
⑤ 操作系统问题 页表项
首先说页表项是指:在分页系统中,为每个进程配置了一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。
因为题中说逻辑空间32页,所以对应最多为32个页表项;
逻辑空间每页的大小和物理空间每页大小是相同的,所以物理块数=物理空间大小/页大小=1M/1K=2^9,故每个页表项至少有9位;
物理块跟页表项没啥关系;
懂了请记得采纳哈!
⑥ 某系统采用页式存储管理,拥有逻辑空间32页,每页2K,拥有物理空间1M。
(1)由于该系统拥有32个逻辑页面,所以页号必须用5位表示;而每页2K,页内地址需要11位来描述。
(2)进程的页表项最多为32项;若不考虑访问权限,每个页表项至少9位。
(3)如果物理空间减半,则页表中页表项数不变,但每项的长度可减少1位。
⑦ 某系统采用页式存储管理策略,拥有逻辑空间32页,每页2K,拥有物理空间1M
32是2的5次方啊,2K是2的11次方。因此逻辑地址的结构如下:
高5位表示页号,低11位表示页内偏移量
⑧ 某系统采用页式存储管理策略,拥有逻辑空间32页,每页2K,拥有物理空间1M,请写出逻辑地址的格式。
逻辑空间32页,即:2 的 5次方, 所以 逻辑地址中页号必需用5位来描述, 而每页2K,即:2048 字节, 也就是 2 的 11次方,所以页内偏移量必需用11位来描述,所以逻辑地址格式为:
15 1 1 | 10 0
页号 | 页内偏移量
⑨ 操作系统分页存储管理问题请教
分页存储管理
每页都有信息记录的,便于后续查找。继续装,混淆了找不到了
真正的模拟操作系统中 内存的分配 (分页存储管理)(操作系统模拟多进程内存分配)
连续的分配方式会形成许多碎片,虽然通过紧凑的方法将血多碎片拼接成可用的大块空间 但须付出很大的开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无需紧凑。基于这一思想产生了离散分配方式。如果离散分配方式是页,则被称为分页存储管理方式
1. 目的:
内存管理是操作系统的核心内容。本设计要求用高级语言编写模拟一个简单的内存管理程序。通过本实验可以加深对常见操作系统的内存管理模块的实现方法的理解。
2. 要求
(1)设计用户程序数组、PCB、页表、内存分配表等数据结构;
(2)编程模拟OS内存的动态分配过程。
(1)初始条件
用txt文件存储如下数据:内存总大小、进程数据(到达时间、结束时间、所需内存大小)
(2) 运行过程
程序先读入初始txt文档,获得数据;然后根据数据的内容来模拟操作系统进行内存的分配与回收过程;
要求程序能够给出运行的中间过程和结果(最好输出到文件)。包括:某时刻进程的页表、总得内存分配情况。最好能够动态的演示此过程。