虚拟内存技术使得每一个进程在运行过程中,始终都是显式独自占用当前系统内存资源,事实上,所有进程共享同一个物理内存,每一个进程只把自己目前需要的虚拟内存空间映射在物理内存上,此过程内核并不会立即把虚拟内存对应位置的程序数据和代码拷贝到物理内存中,只是建立一种虚拟映射关系,程序运行时通过此映射关系动态拷贝数据。

malloc也是内核为其分配虚拟内存,为这块虚拟内存对应的页表项做相应设置,当进程真正访问到此数据时,才可触发缺页异常

  • 虚存优点:

(1)虚拟内存技术扩大了各自进程的地址空间

(2)每个进程运行在各自的虚拟地址空间,互相不干扰对方。虚拟内存为特定的内存地址提供写保护。可以防止代码或数据被恶意篡改

(3)公平分配内存,采用虚拟内存之后,每个进程相对于具有相同大小的虚存空间

(4)进程通信,可以采用虚存共享的方式

(5)不同进程使用相同代码时,只需要在物理内存上存一份,各自进程将其虚拟内存映射过去即可,比如库函数,头文件的调用等,可以节省物理内存空间

(6)内存中可以保留多个进程,当一个进程等待在等待数据读入内存的过程中,可以将cpu资源交给另外一个进程使用,提高并发性(时间片轮转)

(7)需要分配连续存储空间时,只需要在虚拟内存空间上分配连续空间,而不需要在实际物理内存上开辟同样连续的空间,可以组织物理内存上内存碎片使用,实现离散式存储

  • 虚存缺点:

(1)虚拟内存的管理需要建立数据结构,数据结构需要额外内存空间

(2)虚拟地址到物理地址的转换,增加了指令的执行时间

(3)页面的换入换出需要通过磁盘IO来完成,增加耗时

(4)如果页表中只有一部分数据,会浪费内存

  • 虚拟内存管理方式:

分段式存储(段号+段内偏移)分段(栈区,堆区,数据段,代码段等待)

根据段号在段表找到物理空间起始地址,然后根据偏移量找到真正物理内存地址

分页式存储(页号+页内偏移)分页,分成多块

根据页号在页表找到物理空间起始地址,然后根据偏移量找到真正物理内存地址

段页式存储(先分段再分页)先分段再分页

面试中常被问到的(14)虚存管理和虚拟地址空间相关推荐

  1. Python培训常识:Python面试中常被问到的几种设计模式要知道

    学习Python技术大家都是为了日后能够找到适合自己的工作岗位,那么除了要学习好Python技术外,对于面试环节的问题也要有所了解,本期小编为大家介绍的Python培训教程就算关于Python面试中常 ...

  2. 面试中常被问到(11)虚函数/纯虚函数

    虚函数 如何定义一个虚函数?在基类成员函数前加入virtual关键字,但并不代表此函数不被实现,只是说明允许基类指针调用派生类重写的此函数 一个类只要声明有虚函数或者从基类继承了虚函数,在编译过程中就 ...

  3. e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗

    #新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...

  4. 面试中常被问到(五)C++析构函数,虚析构函数

    C++析构函数 (1)对于析构函数:析构函数与构造函数相呼应,从调用构造函数开始到自动执行析构函数二者调用期间即为所创建对象实例的生命周期. (2)析构函数与类名相同,仅前面加一个~,一般析构函数无参 ...

  5. 面试中常被问到(12)进程与线程的区别

    概念: 进程:进程是对运行时程序的封装,是操作系统进行资源分配基本单位.对于操作系统而言,进程就是程序运行时的描述,通过这个描述,操作系统就可以进行程序调度运行管理 线程:线程是CPU可识别和执行的最 ...

  6. Linux运维面试中常被问到的两个shell脚本

    脚本一: 在公司里有一个网段是 192.168.3.0的网段,现在想判断一下哪些主机在线,哪些主机不在线. shell脚本解决方案: 方法一: 思路 首先要循环目标主机的IP地址,IP地址分为两部分: ...

  7. 面试:整理面试中常被问到的8种数据结构

    数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作.数据结构在计算机科学和软件工程领域具有广泛而多样的用途. 几乎所有已开发的程序或软件系统都使用数据结构.此外,数据 ...

  8. 面试中常被问到的(21)TCP/UDP如何保持可靠性

    Tcp保持可靠性从以下三个方面描述: 1,可靠传输:面向连接,包序管理,确认应答,超时重传,校验和 2,避免丢包:滑动窗口流量控制,拥塞机制(慢启动快增长) 3,提高性能:确认序号快速重传,延迟应答, ...

  9. php面试中常被问到的问题--欢迎留言补充

    2019独角兽企业重金招聘Python工程师标准>>> 整理自己的项目 -- 问到的概率大 问项目的具体内容,遇到的挑战,具体解决办法. 为什么使用独立文件服务器?1,从服务器本身来 ...

最新文章

  1. 左神讲算法——二分法及其拓展
  2. Selenium2+python自动化1(环境安装)
  3. 7.26T2某不科学的迷你激光炮
  4. C指针详解(经典,非常详细)
  5. oracle 创建view时,授权给用户
  6. python3.6.2用pyinstaller3.4报错_OceanBase 2.2 版本体验:用 BenchmarkSQL 跑 TPC-C
  7. 快了!CVPR 2019 所有录用论文题目列表刊出,即将开放下载!
  8. [转载] python字典更新值_Python–字典元组值更新
  9. 岭回归、LASSO与LAR的几何意义
  10. 一个c3p0的数据库连接池的多线程测试
  11. Web前端开发工程师常用技术网站整理
  12. 小白初学c语言学习计划
  13. 计算机语言echo off什么意思,批处理文件的@echo off是什么意思?
  14. 配置vscode解决code runner乱码
  15. linux服务器插上u盘不显示,U盘在Linux下显示不正常的解决方法
  16. 内功图说--十二段锦
  17. 膨胀卷积dilated convolution 相关
  18. Python:NBA球员得分数据排行爬虫
  19. 如何入门学习cg原画
  20. Vista 兼容软件列表

热门文章

  1. STM32使用DHT11传感器读取温湿度,显示在LCD屏上
  2. 微软疯了|盘点微软的那些全屏通知操作
  3. 解决Xshell运行程序中途断网问题
  4. [Learn Note] MSBuild
  5. 中科院陈玉福算法设计与分析 动态规划矩阵连乘计算问题
  6. 乌海计算机打印准考证,2016年下半年乌海计算机一级准考证打印入口及网址,计算机等级考试时间查询...
  7. 【python/qt】Python+Qt实现简单的视频监控界面
  8. 《啊呜!卡通人》引成长共鸣,歌曲背后掌门教育高效个性化教学方法出圈
  9. android怎么监听多点触摸_Android多点触摸交互处理
  10. python的金融计算器_基于python实现的计算器