首页 > 其他分享 >操作系统面试重点

操作系统面试重点

时间:2023-09-30 16:44:06浏览次数:34  
标签:操作系统 面试 物理地址 内存 进程 重点 虚拟内存 物理

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

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

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

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

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

4.使用虚拟内存的好处

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

5,使用虚拟内存的缺点

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

标签:操作系统,面试,物理地址,内存,进程,重点,虚拟内存,物理
From: https://www.cnblogs.com/Gal0721/p/17737994.html

相关文章

  • Laxcus分布式操作系统相比Linux操作系统的优势
    一位微信网友的提问:LAXCUS分布式操作系统和LINUX操作系统相比,有什么优势?答:LAXCUS分布式操作系统做为一种新型的多机操作系统,是操作系统家族的新物种。它最大的特点是聚合能力,能够将海量的物理计算机集合到一起,变成一台物理分散逻辑统一的单台计算机,在此基础上,实现超大规模算力的......
  • java面试点
    语法基础关键字:final:用于表示某个变量、方法或类是最终的,不能被修改或继承super:可用于调用父类的方法或者字段synchronized:用于指定多线程代码中的同步方法、变量或者代码块transient:修饰的字段不会被序列化const在C语言中是声明常量的关键字,在Java中可以使用publ......
  • Java面试题之MyBatis
    1.MyBatis中#{}和${}的区别是什么#{}是预编译处理,${}是字符串替换;Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统安全性。2.M......
  • TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素
    TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素。下面是一些常见操作系统中TCP/IP连接数的默认值和最大值:Windows10/WindowsServer2019:默认值为16384,最大值为16777216Windows8/WindowsServer2012:默认值为16384,最大值为16777216Windows7/WindowsServer......
  • [笔记]操作系统_2024年考纲
    一、操作系统基础(一)操作系统的基本概念(二)操作系统发展历程(三)程序运行环境1.CPU运行模式内核模式,用户模式。2.中断和异常的处理3.系统调用4.程序的链接与装入5.程序运行时的内存映像与地址空间(四)操作系统结构分层,模块化,宏内核,微内核,外核。(五)操作系统引导(六)虚拟......
  • 百度面试题:为什么使用接口而不是直接使用具体类?
    大家好,我是小米!今天,我要和大家聊聊一个在Java编程中非常重要的话题:“百度面试题:为什么要使用接口而不是直接使用具体类?”这个问题在很多Java面试中都会被问到,因为它涉及到了面向对象编程的核心思想和Java语言的特性。在开始之前,让我们先来了解一下什么是接口(Interface)和具体......
  • 面试必问:JS单线程与事件循环,看这篇就够了
    JavaScript是一种单线程语言,它在任何给定时间只能执行一个任务。然而js确能够处理异步操作,这得益于其事件循环(EventLoop)机制。今天这篇文章带领大家深入理解JavaScript单线程特性,以及讲解事件循环和js多线程知识。一、背景:为什么JS是单线程?在最开始设计中,JS的主要用途是处理浏......
  • 分布式操作系统
    分布式操作系统属于多机操作系统,能够统一一套计算机集群,相比单机系统,分布式操作系统在管理计算机集群方面要简单很多。各种分布式的基础功能,都集中到分布式操作系统来实现,而不是单机系统的应用软件来实现,比如容错冗余、分布式应用的编程开发等。由于系统底层的改变,分布式操作系统......
  • 【Android 开发】 面试官喜欢一直问到底?教你如何避免翻车沟通表达能力
    在信息爆炸的时代,Android开发领域的知识日新月异,如何提升自己的能力和找到适合自己的学习资源是一个常见的问题。自我介绍是面试的必备环节之一时长通常在三分钟以内。在自我介绍时,候选人应该简明扼要地介绍自己的经历和能力,突出自己的优势和特点,以及为什么适合这个职位。基础知识......
  • 6-Linux操作系统 用户与用户组
    一、介绍说明  Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。  用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组......