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

网站建设找酷风wordpress divi 数据

网站建设找酷风,wordpress divi 数据,建设银行官方网站入口,创意设计报告为什么要虚拟内存 我们知道#xff0c;在之前上微机原理时#xff0c;我们的程序是可以直接访问内存的#xff0c;而且访问的是直接的物理内存#xff0c;在实模式下#xff0c;寄存器是16位的#xff0c;数组总线#xff08;data bus#xff09;是16位的#xff0c;…为什么要虚拟内存 我们知道在之前上微机原理时我们的程序是可以直接访问内存的而且访问的是直接的物理内存在实模式下寄存器是16位的数组总线data bus是16位的但地址总线是20位的这带来了一个问题需要两个寄存器去访问一个数据为什么地址中心不是16位呢那样不就好了不是不想是不够用啊16位的地址总线才能访问64KB内存。所以用CS:IP两个寄存器去访问内存。 这样做有什么问题呢碎片。碎片分为内部碎片和外部碎片内部碎片是指已经被分配但是没有被使用的地址空间比如你申请了7bit但是内存为了对齐不得不给你分配8bit的空间这就产生了1bit的碎片外部碎片是指未分配且未使用的地址空间申请4字节的Int类型再申请8字节的long类型为了内存对齐其中4字节无法装入8字节类型这就产生了4字节的外部碎片。 内部碎片是已经被分配的内存是操作系统不可以利用的空间但是外部碎片是未被分配的但是该空间过小无法装载资源无法被利用外部碎片是可以解决的。 为了解决内存的碎片化问题计算机专家们提出了分段式管理的思想但是再说分段之前需要说一下早期的虚拟内存模型 早期虚拟内存模型 在经历了纯物理地址后科学家们期望解决这种内存模型难以统一的问题于是虚拟内存技术孕育而生但困扰科学家们的是如何将虚拟地址转换成物理地址。早期的科学家想到的是将整个程序作为一个整体并为每个进程分配一个基址寄存器和界限寄存器基址寄存器存放该虚拟地址在实际物理地址的起点界限寄存器用来判定程序是否访问非法地址通过这种方式实际的地址是很好计算的实际地址虚拟地址基址这种方式虽然解决了地址翻译问题但是产生了大量的内部碎片。 从图中可以看出如果我们将整个地址空间放入物理内存那么栈和堆之间的空间并没有被进程使用却依然占用了实际的物理内存。因此简单的通过基址寄存器和界限寄存器实现的虚拟内存很浪费。 另外我们必须要确保内存足够放得下进程的虚拟地址空间但通常主存成本是比较昂贵的不如磁盘廉价这种方式通常不支持大的虚拟地址如果剩余物理内存无法提供连续区域来放置完整的地址空间进程便无法运行。例如现在32位的进程空间通常是4GB主存根本就装不下几个进程。 所以我们需要物尽其用早起的科学家们想到了分段这种思想 分段式管理的思想 分段思想其实就是将基址加界限的概念泛化在上述例子中我们为代码、堆、栈分别设置一个段基址加段界限寄存器这样我们不必要每次都强制装入整个进程空间每个基址寄存器存放在该段在物理地址的实际空间界限寄存器用来保护地址空间对程序未使用的空间我们没必要为其分配我们仍需要为堆分配较多的内存除了堆段其余空间都是在编译期间就确定了的这样便大大提高了内存的利用率而且我们发现可以离散的分配内存空间即物理内存中的地址不必要时连续的能大大提高对物理地址的利用率。 分段地址的转换 分段式的思想讲完了但是还有一些问题地址怎么转换其实分段地址转换与基址加界限的思想差不多操作系统通过维护一个段表来维护各段的信息 段表的地址是操作系统维护的段表项主要维护段长和段基址段基址指该段在物理内存中的起始地址那么该段中的虚拟地址对于实际地址为 段基址段内偏移 分段系统的逻辑地址结构是段号(段名) 和 段内地址段内偏移量组成的下图很好的说明了分段是怎么找到实际内存地址的。 你可能发现了虚拟地址中每个段的起始地址都是固定的每个段的总大小也是固定的其大小为 2p2^p2p 字节 其中 ppp 为段内地址的位数。此外栈是反向增长的因此段表中必须维护一个比特位描述是否为栈段。 分段的优点 **1、**生成了虚拟内存避免了程序直接访问物理内存 **2、**很大程度上避免了内存浪费 **3、**可以很好的支持共享 随着分段机制的不断改进系统设计人员很快意识到通过再多一点的硬件支持就能实现新的效率提升。具体来说要节省内存有时候在地址空间之间共享share某些内存段是有用的。尤其是代码共享很常见今天的系统仍然在使用。 为了支持共享需要一些额外的硬件支持这就是保护位protection bit。基本为每个段增加了几个位标识程序是否能够读写该段或执行其中的代码。通过将代码段标记为只读同样的代码可以被多个进程共享而不用担心破坏隔离。 **4、**虚拟地址翻译太慢 我们每次翻译一个虚拟地址都需要去找寻段表中的段表项相当于多一次地址访问这太慢了解决方案是为计算机设置一个小型的硬件设备将虚拟地址直接映射到物理地址而不必再访问段表。这种设备称为转换检测缓冲区 Translation Lookaside BufferTLB有时又称为快表。快表是一个小的高速缓存现代操作系统无论是分段还是分页中都利用了这种软件技术。 分段的缺点 **1、**太多的外部碎片 例如4kb的空间装入3kb的段产生的1kb的空间无法在装入任何段产生碎片的主要原因是因为分段使用的大小是不确定的。外部碎片可通过紧凑的方式以合成较大的空闲空间但这需要大量成本操作系统难以维护。由于这个原因分页思想诞生 分页式管理的思想 分段式管理一段时间后主存上会遍布着大大小小的外部碎片操作系统难以维护分页的思想就是将空间划分成较小的固定长度的分片这就是分页式管理分页式管理将程序资源划分为固定大小的页将每一个虚拟页映射到物理页之中由于每个页是固定大小的操作系统可以整齐的分配物理内存空间避免产生了外部碎片例如一个页大小是4kb而主存是40kb操作系统稍加管理便能确保无论何时都能整齐的装入10个页面。 页在物理内存中也不是连续存在的进程未使用的页也没有必要为其分配内存通过这种方式我们就解决了由分段产生的大量外部碎片问题同时由于页比较小只有在已使用的页才会产生较少的内部碎片这是可以接受的目前来看分页是一种很好的办法。 分页地址的转换 分页地址的转换与分段地址转换一致为页基址页内偏移页表是操作系统维护的操作系统知道页表的起始位置页表项大小是固定的在32位地址空间中通常是8字节这64bit中不仅存储了页基址还存放着一些其他重要的数据。 假设我们有一个线性地址已经经过了分段机制的转换其地址为二进制表示0000000011_0100000000_000000000000那他的转换过程就如下图所示 高 10 位负责在页目录表中找到一个页目录项这个页目录项的值加上中间 10 位拼接后的地址去页表中去寻找一个页表项这个页表项的值再加上后 12 位偏移地址就是最终的物理地址。 现在我们是不是出现了很多关于地址的名词逻辑地址线性地址物理地址虚拟地址这我们就不得不讲讲Intel管理内存的两板斧了分段与分页对就是上面说的进入保护模式后分段就必须打开了分页不是必须的 分段机制的目的是为每个程序或者任务提供单独的代码段数据段和栈段使其不会相互干扰。 分页机制的目的使程序可以按需取用内存也可以在多任务的时候起到隔离内存空间的作用 逻辑地址我们程序员写代码时给出的地址叫逻辑地址其中包含段选择子和偏移地址两部分。 线性地址通过分段机制将逻辑地址转换后的地址叫做线性地址。而这个线性地址是有个范围的这个范围就叫做线性地址空间32 位模式下线性地址空间就是 4G。 物理地址就是真正在内存中的地址它也是有范围的叫做物理地址空间。那这个范围的大小就取决于你的内存有多大了。 虚拟地址如果没有开启分页机制那么线性地址就和物理地址是一一对应的可以理解为相等。如果开启了分页机制那么线性地址将被视为虚拟地址这个虚拟地址将会通过分页机制的转换最终转换成物理地址。
http://www.hkea.cn/news/14343197/

相关文章:

  • wordpress 出错求职seo推荐
  • 具有价值的响应式网站网站建设以什么盈利
  • 威海房地产网站建设宜阳县住房和城乡建设局网站
  • 奉贤网站建设专家wordpress文档主题
  • 京东网站建设网页设计欣赏案例
  • 抚州教育网站建设重庆装修公司一览表
  • aspx网站架设全省建设信息网站
  • 做高级电工题的网站直播软件开发商
  • 找人做网站维护多少钱.net做网站的方式
  • 南阳淅川县制作网站的公司传媒公司网站建设策划
  • 怎么提高网站收录量计算机网站建设专业热门吗
  • 更改网站名字软件商城电脑版下载
  • 医疗企业网站模板免费下载cdr 做网站
  • 有没有网站专门做cnc招聘做网站不搭建本地环境
  • 网站建设需要购买什么长沙建设品牌网站
  • 网站建设维护费怎么说如何查看一个网站的所有二级域名
  • 智趣游戏型网站开发生产管理软件系统
  • 怎么修改别人做的网站在线设计平台代理加盟
  • 吕子乔做网站一段台词免费网站建设支持ftp
  • 网站制作怎么入门地产网
  • 网站设计学什么专业有限公司和有限责任公司
  • 网站主体变更邯郸企业做网站方案
  • 帝国网站系统做专题做女装的看哪个网站好
  • 郑州网站建设哪家专业Ext做网站
  • 做购物网站哪家公司好企业网站报价模板
  • 织梦电影网站模板推广方案
  • 如何做 网站的seo上海设计公司官网
  • 如何做网站开发手机网站后台
  • 泉州手机网站建设seo关键词快速排名
  • 长春建设局网站做一个像qq空间的网站