操作系统相关问题

虚拟存储实现的思想是什么?(以分页为例)

虚拟存储是利用大容量的外存来扩充了内存,也就是说产生了一个比实际物理内存大得多的一个虚拟地址空间,也就由此产生了逻辑地址和物理地址,当处理器执行某一条指令时,首先将逻辑地址转化为物理地址,然后根据物理地址找到指令或数据。以分页为例,内存分成了多个等大的页框,每个进程分成了多个等大的页面。每个进程建立了一个进程页表,用于存放内存中的页框号。进程执行时,将进程的某一些页面载入内存。当处理器要执行某个进程的指令时,首先根据逻辑地址的找到相应的页框号,如果未找到,发生缺页中断,将相应的页加载入内存,从用户角度来看就好像整个进程装入了内存,然后找到页框号之后,根据页框号中存储的基地址以及逻辑地址中的偏移地址组成物理地址,最终寻到指令。

分页和分段所具备什么样的特征来支持虚拟存储的实现?

对于分页来说,每个进程被划分为等大的页面,内存被划分为等大的页框,每个进程拥有自己的页表。当执行进程时,不再需要将整个进程加载入内存,而只需要将部分的页面加载入内存,其他的页面存在虚存中。当执行某条指令时,如果指令在内存中,则直接执行,如果不在,发生缺页中断,将此页面加载入内存

对于分段也是同样的道理,进程被划分为多个段,每个进程拥有自己的段表,进程执行时,将一部分段加载入内存中,其他的段存放在虚存中。处理器执行某条指令时,如果指令在内存中,执行,如果不再,大声缺段中断,将此段加载入内存。

局部性原理是什么?如何理解他是虚拟存储实现的理论基础。

局部性原理:程序在执行过程中的一个较短的时期内,所执行的指令地址和指令的操作数地址分别局限于一定的区域。局部性原理分为时间局部性和空间局部性。时间局部性:一条指令的依次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短时期内。
空间局部性:当前的指令和临近的几条指令,当前访问的数据和临近的数据都集中在一个较小的区域内。
虚拟存储是利用了大容量的外存来扩充了内存,也就是说部分的指令或数据不再内存中,那么当下一条要执行的指令不再内存中时,需要将其调入内存,如果没有局部性原理的基础,那么可能出现的情况是,10条指令中可能有5到6条指令不再内存中,导致频繁的调入,降低了处理器的效率,但是因为局部性原理,临近的指令一般都局限于一个区域,不需要频繁的调入,使得虚拟存储成为可能。

虚拟页式管理中页表项中有哪些信息,作用是什么?

存在位(P):表明该页是在内存中还是在外存。
修改位(M):查看此页是否在内存中被修改过。
访问位:根据访问位来决定淘汰哪一页
页框号:存放的内存只能给的页框编号

为什么要引入TLB?

原因:原则上,每次的虚存访问都可能会引起两次物理内存访问:一次取相应的页表项,一次取需要的数据,会导致时间花销大。TLB的作用就是减少访问内存的时间,当给定虚拟地址时,处理器首先检查TLB,如果在其中,则检索页框号形成实地址。如果没有找到,再检索页表。

不同页面大小的设置各有何利弊?

小页面 优点:内碎片小,进程在内存中的页面数目多,随这执行,内存页面包含进程最近访问的内容,缺页率低。缺点:一个进程需要有更多的页面,意味着页表更大,导致页表的大部分在虚存中。
大页面 优点:辅存可以有效的进行大块数据的传输,页表短,管理开销小,交换时对外存I/O效率高
缺点:内碎片大,大的页面不能体现最近访问,缺页率上升。

发布了33 篇原创文章 · 获赞 2 · 访问量 1729

猜你喜欢

转载自blog.csdn.net/weixin_42469716/article/details/90311466
今日推荐