进程页表位置进程页表位置的权威专家分享
本文目录
- 页表基址寄存器作用?
- 某进程的逻辑地址空间为32页,页的大小为2kb,物理地址空间大小为4mb。该进程的页表有多少项?
- 页表是什么时候创建的?
- 页表项长度和页面大小的区别?
- 段页式存储管理地址结构的段数量?
页表基址寄存器作用?
页表是一张存放在主存中的虚页号和实页号的对照表,记录虚页调入主存时被安排在主存中的位置,页表一般长期存放在主存中。
每个进程都有页表基址寄存器,用于存放进程的页表首地址,根据虚地址高位部分的页号找到相应页表项,此时若装入位为 1,则取出物理页号和虚地址低位部分的页内地址拼接组成实际物理地址;若装入位为 0,则表示缺页,此时需要操作系统进行缺页处理。
某进程的逻辑地址空间为32页,页的大小为2kb,物理地址空间大小为4mb。该进程的页表有多少项?
32项(从第0项到第31项!),至少占16位。
页表是什么时候创建的?
页表
页表是系统为保证进程的正确运行而建立的页面映像表。分页转换功能由驻留在内存中的表来描述,该表称为页表(page table),存放在物理地址空间中。页表可看做简单的2的20次方(2^20)个物理地址数组。线性到物理地址的映射功能可以简单地看做进行数组查找。
页表项长度和页面大小的区别?
分页系统中,允许将进程的每一页离散地存储在内存的任一物理块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程建立一张页面映射表,简称页表。页表的作用是实现从页号到物理块号的地址映射。 页表长度就是页表项的个数。页表长度=虚存容量/页面大小。 比如虚存容量为1GB,则虚拟地址是30位,2^30,如页面大小为4KB(z^12),则页表长度是 2^30/2^12=2^18=256K。
段页式存储管理地址结构的段数量?
为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。
每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。 地址变换的过程:
(1)程序执行时,从PCB中取出段表始址和段表长度,装入段表寄存器。
(2)由地址变换机构将逻辑地址自动分成段号、页号和页内地址。
(3)将段号与段表长度进行比较,若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4)将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
(5)取出段描述子得到该段的页表始址和页表长度。
(6)将页号与页表长度进行比较,若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(7)将页表始址与页号和页表项长度的乘积相加,便得到该页表项在页表中的位置。
(8)取出页描述子得到该页的物理块号。
(9)对该页的存取控制进行检查。
(10)将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。