当前位置: 首页 > news >正文

海珠营销型网站建设青岛开发区 网站建设

海珠营销型网站建设,青岛开发区 网站建设,wordpress企业站模板,制作网站 太原本篇遵循内存管理-地址空间-虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系#xff0c;较为详细的介绍了作为在校大学生对于虚拟内存的理解。 内存管理 引入 RAM#xff08;内存#xff09;是计算机中非常重要的资源#xff0c;由于造价的昂贵地址空间-虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系较为详细的介绍了作为在校大学生对于虚拟内存的理解。 内存管理 引入 RAM内存是计算机中非常重要的资源由于造价的昂贵我们家用的计算机一般是8/16G。对于如此紧俏的资源我们当然需要对它好好管理尽力做到不浪费高效压榨它的每一分资源。因此我们需要内存管理。在计算机中有着高达几TB的低速、廉价、持久化存储的磁盘也有着GB单位的速度与价格适中的具有亦失性的内存还有昂贵的高速缓存CPU种种硬件叠加在一起形成分层存储器体系。在操作系统中管理分层存储器体系的部分称为存储管理器。接下来我们来介绍存储管理器。 存储管理器的两种抽象 最简单的存储器抽象 最简单就是没有存储器抽象。对于无存储器抽象的情况这里不做过多讨论一般在嵌入式像门卡这种设备才会出现这种情况因为门卡这样的设备只需要执行预定好的程序不会发生冲突程序要做的事情都是预先确定好的。我们这里只要清楚一点即无存储管理器抽象的计算机上程序都是直接操作物理内存地址的。而暴露物理地址给进程会有如下几个问题 用户程序可能会破坏操作系统访问了不该访问的区域比如无意间修改了系统的数据导致系统出错。无法同时运行多个程序一个程序运行可能会覆盖另外一个程序的代码或数据。 地址空间 地址空间的引入 为了解决无存储器抽象带来的两个问题我们引入地址空间这个存储器抽象的概念我们的主题虚拟内存就和地址空间有关。首先无存储器抽象的两个问题主要就是一个问题即用户程序随意寻址进行操作这个问题拆分成子问题就是解决保护和重定位 这里引入A、B进程A 进程要想防止 B 进程修改 A 的代码或数据我们就需要对 A 所用到的内存地址进行保护防止 B 程序修改 A所用到的地址上的内容。但同时我们的 B 进程之所以会去修改是因为 B 进程有指令执行可能B进程的目的不是修改A的某个用到的地址所填的内容或数据而只是想要执行CPU指令如果光光进行保护而不重定向B这个指令就没法儿执行所以还需要对 B 指令索引的地址进行重定向到别的位置来实现 B 进程的指令。 此时我们就可以提出地址空间的概念了地址空间是一个进程可用于寻址内存的一套地址集合。它保证了每个进程都有自己独立的地址空间。 怎么做到每个进程都有自己独立的地址空间的 答案就是我们今天的主题虚拟内存 虚拟内存 阅读完前面的内容对于虚拟内存的由来大致有了一个了解接下来介绍虚拟内存的原理以及相关周边知识。 页、页表、页表项、页框 首先我们了解一下这四个概念 页 每个程序拥有自己的地址空间这个空间被分割成多个块每一块称作一页。每一页有连续的地址范围。一般在32为地址空间中是4KB。页框 与虚拟地址相映射的实际的物理地址页表 类似一个数组保存了大量的页表项。用页号作为页表的索引页表项 存储着进程所使用到的虚拟地址空间与实际物理地址的映射关系同时还保存了该地址是否存在权限是读、写还是执行修改位等都是使用比特位的方式进行标识。为锻炼广大猿友的搜索能力有兴趣的还请自行搜索了解页表项中的内容 虚拟内存与分页的基本思想 虚拟内存的基本思想是: 这些页被映射到物理内存但并不是所有的页都必须在内存中才能运行程序。当程序引用到一部分在物理内存中的地址空间时由硬件立刻执行必要的映射。当程序引用到一部分不在物理内存中的地址空间时由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令(缺页中断)。 什么意思呢举个例子 windows上的游戏3A大作动辄上百个G的资源文件下下来那么多的代码和数据资源我们的电脑也就16G的内存如果全部加载到内存中依据我们电脑上显示的实际物理内存游戏怎么可能跑的起来呢有了虚拟内存我们计算机只从磁盘加载部分当前和最近一部分时间会用到的数据到内存中当需要磁盘中其他部分代码和数据时我们再动态的加载那部分代码和数据。我们打游戏时或处理使用一些大型软件时电脑会发热本质也就是因为硬件在不断的进行 IO 操作摩擦生热。 下面对提到的页进行一个介绍 分页的基本思想 如果没有虚拟内存那么操作系统会将CPU会将指令直接传递到内存总线来获取物理地址。 而使用了虚拟内存管理策略OS将会把CPU指令所需的内存地址传输给另一个硬件设备(CPU的一部分)内存管理单元(Memory Management Unit-MMU)。MMU会将虚拟地址映射成物理内存地址最后返还给CPU。 具体是怎么做的呢 - 虚拟地址一共两部分组成虚拟页号(高位)以及偏移量(低位)。页号作为页表的索引根据页号在页表中找到对应的页表项通过页表项中存的页框号拼接到偏移量的高位以替代虚拟页号MMU拿到该拼接而成的地址后判断是否满足保护位的要求即能不能写或读或执行确认没有问题后将其通过地址总线送往内存进行寻址找到对应数据进行读写操作。如果在页表项中没有找到对应的映射则触发缺页中断。 下面介绍缺页中断 缺页中断之页面置换 首先缺页中断指的就是在虚拟地址所对应的页表项中没有找到对应的物理地址映射时称为缺页。此时CPU陷入内核态OS找到一个已经存在映射关系的并且很少使用的页框将其内容写回磁盘内存中不再保留该页框存储的数据随后将触发缺页中断的指令对应要进行的操作读到刚才找到的页框中那么此时该页框就有了新的数据该页表项中就写入了刚才找到的页框地址。新的映射关系就这样建立了。那么页面置换就是上面讲到的内容缺页中断中的一个策略也是动态加载内存的关键。当发生缺页中断时操作系统必须在内存中选择一个页面将其换出内存以便为即将调入的页面腾出空间。如果要换出的页面在内存驻留期间已经被修改过就必须把它写回磁盘以更新该页面在磁盘上的副本如果该页面没有被修改过那么它在磁盘上的副本已经是最新的不需要回写。直接用调入的页面覆盖被淘汰的页面就可以了。 分页系统的两个问题 虚拟地址到物理地址的映射性能问题页表太大的问题 性能问题 想要知道关于性能问题的原理可以自行看现代操作系统内存管理一章这里只对解决方案进行介绍。 要解决每次访问内存都要从虚拟地址映射的物理地址的速度问题TLB(转换检测缓冲区/快表)问世。其实该技术就是基于程序届的二八原则热点总是少数的被经常访问的页面总是那么一小撮绝大部分很少被用到那么基于该原则TLB被设计出来。其工作原理就是开一块儿小空间加载少量页表项将虚拟地址送到MMUMMU先去TLB里找虚拟地址对应的页表项如果找到了就直接通过内存总线传输物理地址去内存没找到再去页表里找。 页表太大 在32位的地址空间中假设1个page4kb那么一共就会有2^32/4kb100万个页也即100万个页表项。通常一个页表项为4字节那1个进程就需要4MB的内存来存页表。 但在现代计算机中绝大部分是64位的我们来计算一下64位系统1个进程所需维护的页表大小 64位虚拟地址空间的大小是2^64字节。 如果使用4KB为一个页的大小,则整个虚拟地址空间需要的页表项数是:2 ^64/2 ^12(4KB) 2 ^52个 每个页表项这里算4字节(x86_64),那么一个页表占用的空间是:2^52 * 4字节 也就是说,在64位系统下,如果一个进程使用1级页表管理整个64位虚拟地址空间,仅页表就需要很多很多G。 实际上,一个进程通常无法使用这么大的地址空间,所以会使用多级页表来节省页表空间占用。 如果使用4级页表,则页表占用会减少到只需要几MB的数量级。 所以1级页表在64位系统中无法实际应用,必须使用多级页表才能降低单进程的页表空间占用。 于是产生出了多级页表这里以2级页表为例 32位地址空间把它分成10位的1级页目录表项10位页表项和12位偏移量 我们一级页表一共有1024个表项对应10位的1级页表2级页表每个也有1024个表项对应PT2。 当我们CPU发出指令需要某一块儿地址时MMU来一级页表寻找如果一级页表对应的虚拟地址没有映射二级页表则触发缺页中断加载对应的2级页表然后再通过加载的2级页表找到对应的映射继而执行CPU指令。 所以从这里我们可以看出多级页表有1个功能叫做动态加载即我需要你的时候再加载这块空间的页表进来而不用一次性维护上百万的页表项。
http://wiki.neutronadmin.com/news/351204/

相关文章:

  • 网站快照更新慢南阳企业网站推广方法
  • 网站申请名称和域名wordpress后台数据库改密码
  • 档案网站 内容建设百度广告联盟收益
  • 桂林建设信息网站长沙优化网站推广
  • 商城网站建设建站系统国外知名平面设计网站
  • 网站建设费维护费做网站一年
  • 南阳网站网站建设成都微网站
  • 易语言怎么做网站自动登录网址收录查询
  • 怎样编辑网站域名注册平台的网站怎么做
  • 网站对应的ip地址吗做网站用vps还是虚拟主机
  • 网站公司查询网站幻灯片效果
  • 上海早晨新闻今天seo网站案例
  • 做免费网站推广开头语班级网站的规划与建设
  • 怎么建设免费小说网站给千图网等网站做设计赚钱吗
  • 网站编辑及seo招聘万能应用商店下载
  • 做网站构思有关做美食的网站乐
  • 国内做网站费用it培训机构学校
  • 做网站应该用什么配置的电脑贵州交通建设集团网站
  • 北京网站建设模板案例凡科h5制作
  • 亚成成品网站源码简述电子商务网站建设的主要步骤
  • 做网站的入门书籍某公司网站建设策划
  • 万网虚拟主机做网站教程网站排名影响因素
  • 呼和浩特建设厅网站制作网站的最新软件是什么
  • 北京网站代理备案seo厂家电话
  • vue做电商网站建设银行网站安全性分析
  • 网站图片的像素溧阳做网站价格
  • python做的网站源码深圳专业网站建设公司
  • 网站建设空间网站空间邮箱
  • 网站上地图怎么做的网站建设小说
  • 专门做定制的网站高校网站建设目的