操作系统面试重点

发布时间 2023-09-30 16:43:28作者: 游客0721

1.简述一下虚拟内存和物理内存,为什么要用虚拟内存,好处是什么

1.物理内存:物理内存有四个层次,分别是寄存器、高速缓存、主存、磁盘。

  • 寄存器:速度最快、量少、价格贵。
  • 高速缓存:次之。
  • 主存:再次之。
  • 磁盘:速度最慢、量多、价格便宜。
    操作系统会对物理内存进行管理,有一个部分称为内存管理器(memory manager),它的主要工作是有效的管理内存,记录哪些内存是正在使用的,在进程需要时分配内存以及在进程完成时回收内存。

.虚拟内存:操作系统为每一个进程分配一个独立的地址空间,进程持有的虚拟地址会通过 CPU 芯片中的内存管理单元(MMU)的映射关系,来转换变成物理地址,然后再通过物理地址访问内存,

3.为什么要用虚拟内存
如果在内存中同时运行两个程序,将会出现内存覆盖,问题是这两个程序都引用了绝对物理地址

4.使用虚拟内存的好处

  • 扩大地址空间。每个进程独占一个4G空间,虽然真实物理内存没那么多,使得进程的使用空间变成一个整体,有自己的空间,而不是在在物理内存散开分布
  • 防止同时运行多个程序,将会出现内存覆盖
  • 可以实现内存共享,实现共享内存进程通信

5,使用虚拟内存的缺点

  • 虚拟内存需要额外操作系统构建数据结构,占用空间。
  • 虚拟地址到物理地址的MMU转换,增加了CPU执行时间。
  • 页按照页换出不需要的页到磁盘,段则是整块,虽然会快一点,但都需要花费CPU时间
  • 页的分配方式最小按页分配会找出内部内存碎片,段会出现外部内存碎片