进程管理
2021-11-03
2分钟阅读时长
请求分页管理方式
设计算机中各项操作时间如下所示:
- 访问快表命中率$P_1$
- 访问内存页表命中率$P_2$
- 访问快表耗时$a$
- 访问内存耗时$b$
- 更新快表耗时$c$
- 更新内存耗时$d$
- 磁盘I/O耗时e(磁盘I/O包括读磁盘和写磁盘,一般会用到读磁盘,但不一定需要写磁盘,因此这里的e不是定值,需要特别注意)
则平均访问时间:
$$ P_{1}(a+b)+(1-P_{1})[P_{2}(a+b+b+c)+(1-P_{2})(a+b+e+d+c+a)] $$第一部分是访问快表,得到物理地址后直接在内存中寻址;
第二部分是快表未查找到,因此在内存中查找页表,然后得到物理地址并在内存中寻址,最后更新快表;
第三部分是快表和内存都未查找到,因此发生缺页中断,需要调页。中断后首先读磁盘,接下来分为两种情况:
- 内存页表已满,需要换出一页,因此选中需要调出的页,判断是否修改,进而判断是否需要写磁盘(与此同时需要删去快表中被调出的页表项,但通常并行因而忽略),然后更新内存(包括换入页及更新页表两方面),最后更新快表并查快表;
- 内存页表未满,因此不需要写磁盘,直接更新内存,更新快表,查快表。
特别地,需要注意访问内存和查快表、更新内存和更新快表是否能够同时执行。若能同时执行,则忽略掉快表所需时间。因为快表是高速缓存硬件,速度比内存快得多。更新快表一般包括删去被调出的页表项及增加新页表项两方面,但前者通常与磁盘I/O并行,因而忽略)