每天3分钟操作系统修炼秘籍:虚拟内存简介

f-ck-need-u      2022-02-16     693

关键词:

点我查看秘籍连载

资源隔离:虚拟内存

前面描述的所有操作系统基础知识都是进程和CPU资源相关的内容,另一个操作系统中和进程相关的比较重要的话题是内存资源。

操作系统主要目的是执行程序,而程序在执行时,程序自身以及程序所访问的数据、所产生的数据都在内存里(至少所有数据的流向都会经过内存)。此外,现代操作系统可以同时运行多个进程,而每个进程都有属于自己的一部分内存。

操作系统必须负责管理这些同时运行的这些进程的内存,并且还要保证进程A不会访问到进程B的内存,从而实现进程的隔离。

操作系统使用了一个称为虚拟内存(Virtual Memory,VM)的概念来实现进程的内存管理,虚拟内存也称为地址空间或虚拟地址空间,和物理内存的称呼相对应。

每个进程都拥有一个属于自己的虚拟内存。进程在使用自己的虚拟地址空间时,任何虚拟地址都必须翻译成对应的物理内存地址才能使用到物理内存。

虚拟内存是操作系统对进程营造的另一个假象:让进程以为自己占有了所有的物理内存。但实际上,它只使用了物理内存的一部分,每个进程所实际使用的那部分物理内存由操作系统进行分配和回收,从而实现内存的管理。

虚拟内存的主要目标之一是对进程透明,进程不应该感知到内存被虚拟的这个事实,相反,还要让进程以为自己拥有所有的物理内存,想怎么使用就怎么使用,而不应该收到限制。

虚拟内存另一个目标是保护进程,进程A不允许访问到进程B的虚拟内存时,在进程A崩溃时也不应该让它影响到进程B,更不能让用户进程影响到操作系统本身。所以,每个进程都是完全隔离的,互不影响。

每天3分钟操作系统修炼秘籍(25):进程调度算法图解说明(代码片段)

点我查看秘籍连载进程调度在这里简单介绍一些进程调度相关的算法策略,虽然了解这些对于使用Linux来说不会有很大帮助,但是却能帮助我们了解进程调度追求的是什么,它和生活中的很多案例都类似。进程调度的两个关键性... 查看详情

虚拟化-每天5分钟玩转openstack

  OpenStack是云操作系统,要学习OpenStack,首先需要掌握一些虚拟化和云计算的相关知识。 虚拟化虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存... 查看详情

cpu和内存虚拟化原理-每天5分钟玩转openstack

前面我们成功地把KVM跑起来了,有了些感性认识,这个对于初学者非常重要。不过还不够,我们多少得了解一些KVM的实现机制,这对以后的工作会有帮助。CPU虚拟化KVM的虚拟化是需要CPU硬件支持的。还记得我们在前面的章节讲过... 查看详情

限制容器对内存的使用-每天5分钟玩转docker容器技术(27)

...多资源而影响其他容器乃至整个host的性能。内存限额与操作系统类似,容器可使用的内存包括两部分:物理内存和swap。Docker通过下面两组参数来控制容器内存的使用量。-m 查看详情

限制容器对内存的使用-每天5分钟玩转docker容器技术(27)

...多资源而影响其他容器乃至整个host的性能。内存限额与操作系统类似,容器可使用的内存包括两部分:物理内存和swap。Docker通过下面两组参数来控制容器内存的使用量。-m 查看详情

java修炼秘籍第八章:《string类》(代码片段)

往期:JAVA修炼秘籍第一章:《痛苦的折磨》JAVA修炼秘籍第二章:《逐渐魔化》JAVA修炼秘籍第三章:《绝地反击》JAVA修炼秘籍第四章:《闭关修炼》JAVA修炼秘籍第五章:《卧薪尝胆》JAVA修炼秘籍第六章&#x... 查看详情

读书·深入理解java虚拟机(代码片段)

...3.准备4.解析5.初始化前言欢迎关注微信公众号“江湖喵的修炼秘籍”撰文之前看到一段话,颇为喜欢,任性的写在这里:“入楼十七日,日日苦修,却修不 查看详情

git每天1分钟系列——3分钟理解git

Git简介Git是目前世界上最先进的分布式版本控制系统Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的... 查看详情

学习—虚拟化-每天5分钟玩转openstack

...)和直接执行的模式,让x86芯片可以同时运行不同的几种操作系统,并且确保性能、稳定性和安全性。 从那时起,数以万计的企业已经从虚拟化中获得了极大的收益。但是,关于虚拟化的几种实现方式 查看详情

操作系统简介

‘‘‘操作系统1.内存管理2.驱动管理3.进程线程协程4.文件系统1.内存32位电脑4GDOS内存是程序自己控制Windows统一的内存空间4G虚拟存储器1.CPUn核心ALUcpu寄存器2.每个核心L1L23.整个CPuL33M4.内存很大很大8G5.硬盘6.网络传输虚拟存储器... 查看详情

3分钟,让虚拟机跑起python(代码片段)

文章目录Python入门第一天Python简介Python环境搭建Python解释器第一个Python程序总结Python入门第一天Python简介Python的简介Python官网Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可... 查看详情

阿里巴巴码农这修炼秘籍:sql语句书写规约

阿里巴巴码农这修炼秘籍:SQL语句书写规约【强制】不要使用count(列名)或count(常量)来替代count(*),count(*)就是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。说明:count(*)会统计值为NULL的... 查看详情

每天5分钟玩转容器技术整理目录

原 写在最前面-每天5分钟玩转容器技术(1)容器生态系统-每天5分钟玩转容器技术(2) 容器生态系统(续)-每天5分钟玩转容器技术(3)运行第一个容器-每天5分钟玩转容器技术(4)【视频】运行第一个容器-每天5分钟玩... 查看详情

每天玩转3分钟mybatis-plus-6.select用法

每天玩转3分钟MyBatis-Plus-1.配置环境每天玩转3分钟MyBatis-Plus-2.普通查询每天玩转3分钟MyBatis-Plus-3.高级查询(一)每天玩转3分钟MyBatis-Plus-4.高级查询(二)每天玩转3分钟MyBatis-Plus-5.高级查询(三)每天玩转3分钟MyBatis-Plus-6.select查... 查看详情

操作系统——内存管理:虚拟内存管理(代码片段)

2.虚拟内存管理2.1背景2.2请求调页2.3页面置换2.3.1基本页面置换2.3.2FIFO页面置换2.3.3最优页面置换2.3.4LRU页面置换2.3.5基于计数的页面置换2.4帧分配2.4.1帧的最小数2.4.2分配算法2.4.3全局分配与局部分配2.5系统抖动2.5.1系统抖动的原因... 查看详情

程序员的自我修炼

...是制定计划会让生活和工作清晰而不再会有无所事事感。每天花20分钟左右通过有道云笔记或文本文档制定将一天主要事情按轻重缓急计划好,然后,晚上睡前每项核对和记录进度! 3:改善健康睡眠和工作对于保持最佳的脑功能... 查看详情

民生直销银行终端安全修炼秘籍之hmscore两大安全能力

在金融行业数字化转型浪潮下,传统商业银行先后推出手机银行、直销银行等移动金融客户端。作为民生银行“数字金融”的试验田,民生直销银行始终秉承“简单的银行”发展理念,着力打造生态平台,通过互... 查看详情

民生直销银行终端安全修炼秘籍之hmscore两大安全能力

在金融行业数字化转型浪潮下,传统商业银行先后推出手机银行、直销银行等移动金融客户端。作为民生银行“数字金融”的试验田,民生直销银行始终秉承“简单的银行”发展理念,着力打造生态平台,通过互... 查看详情