我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合特肖 > 访问局部性 >

2、操作系统内存管理——分页

归档日期:06-27       文本归类:访问局部性      文章编辑:爱尚语录

  ,采用了页作为分配的基本单位(大小通常是4K),而且在分配的过程中采用了页号(逻辑地址)和页框号(物理地址)的映射表,这样使得程序在内存中的分布就不需要严格的连续分布了。例子如下:

  在图一中,需要访问的地址是0x2240,且页面大小是4K,那么内存中的MMU就会进行计算0x2240/4K=0x0002(右移12位)得到页号,那么剩下的就是页内偏移量了。这样就的到了逻辑地址0x0002,0x0224,进程PCB中的页表指针就会根据逻辑地址中的页号去查询页号-页框号映射表,得到页框号3,在结合逻辑地址中的页内偏移量0x0224 ,得到物理地址3,240,然后进行访问。

  这样的方式看起来简单方便,但是却有一个极其致命的问题,我们计算机的内存如果是4GB,页面大小是4KB,那么就有4GB/4KB=1M这么多个表项,这个表项的存储代价是巨大的。虽然我们的程序用不到这么多,有很多表项是不需要的;但是我们为了提高查找效率(起始地址+偏移量)就必须把那些不需要的表项页记录在表中。为了解决这个问题,有以下两种解决方案:

  就像书的目录一样,先安装章排序,再每章按照小节排序,以此类推;这样的话如果需要找到某一项的话,就只需要先读入章目录,再读入特定章的小节目录,以此类推,这样就大大减少了内存的消耗,增加了内存使用的效率,节省了内存空间。

  虽然这种方式极大的提高了空间的利用率,但是依然存在问题,就是每查一级目录就需要访问一次内存,这样导致每次访问内存都需要额外的访问几次。为了解决这一问题,可以采用一种类似cache结构的折中方式——快表。

  快表是一种利用程序空间局部性(即一段时间内程序执行的是同一段程序),是一组相联快速存储,是寄存器(速度快,价格贵),大小一般在64-1024之间。

  快表的使用类似cache的使用,就是先直接在快表中顺序查找,如果找到就直接获得页框号,得到物理地址;如果没有找到,再采用多级页表查找。

  操作系统——分页式内存管理为什么要引入内存管理?答:多道程序并发执行,共享的不仅仅只有处理器,还有内存,并发执行不过不进行内存管理,必将会导致内存中数据的混乱,以至于限制了进程的并发执行。扩充内存的两...博文来自:MISAYAONE的博客

  前言每个进程创建的内存地址都是虚拟地址,操作系统使用了虚拟化技术,让进程觉得它拥有了大块可支配的内存的假象,操作系统拿到这个地址后会将它转变为真实的内存地址,从而拿到对应的信息。比如下面这段代码:#i...博文来自:asdf8968的博客

  简介   内存是计算机中最重要的资源之一,通常情况下,物理内存无法容纳下所有的进程。虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理内存如何增长,都赶不上程序增长的速度...博文来自:weixin_40237626的博客

  1.内存管理方法        内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2.连续分配存储管理方式      连续分配是指为一个用户程序分配连续的内存空间。连...博文来自:黄规速,程序人生。 逆水行舟,不进则退。

  转自: —–要说到操作系统的堆与内存的管理的话,那内容真的是海了去了,从开始的地方就能不停...博文来自:hemeinvyiqiluoben的专栏

  转自:为什么叫内存的抽象?如果看过设计模式的人可能会知道,设计模式中提到最多...博文来自:gaojing303504的博客

  对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持。对于专业的程序员而言,掌握一定的操作系统...博文来自:梦里水乡的专栏

  内存管理设计程序模拟内存的动态分区内存管理方法。内存空闲区使用空闲分区表进行管理,采用最先适应算法从空闲分区表中寻找空闲区进行分配,内存回收时不考虑与相邻空闲区的合并。假定系统的内存共640K,初始状...博文来自:魏宇轩

  内存为什么要管理在OS中,每个运行的进程都会占用内存,那么操作系统势必要做好两件事:内存分配和内存回收。这便是本次实验要做的模拟实验了。内存分配策略FF(首次适应算法)这种策略旨在从最低地址的空闲分区...博文来自:李余通的博客

  存储器管理存储器管理存储器的层次结构程序的装入和链接存储器的层次结构多层结构的存储器系统存储器的多层结构。存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。还可以根据具体的功能分...博文来自:yo_bc的博客

  内容会持续更新,有错误的地方欢迎指正,谢谢!内存管理问题1、什么是局部性原理?时间上的局部性:最近被访问的页在不久的将来还会被访问,例如:循环语句;空间上的局部性:内存中被访问的页周围的页也很可能被访...博文来自:陈云佳的专栏

  操作系统内存管理——段页式(虚拟内存)博文来自:iostream1001001的博客

  内存管理的功能1.内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配麻烦,提高编程效率。2.地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因...博文来自:JACK_JYH的博客

  目录:地址的动静态重定位内存分配算法程序的链接和装入(静态和动态)逻辑地址和物理地址虚拟内存,实际内存,内部外部碎片地址的重定位:程序执行时,必须将地址空间变为绝对地址才能访问系统分配的内存地址重定位...博文来自:k829593756的博客

  内存管理1.一段程序放入内存,cpu取指执行、取指执行,cup和内存都工作起来了2.程序在内存中分段处理,因为每个段有不同的特点(代码段只读,数据段可写,堆栈段单向增长),分治3.在内存中找一段空闲内...博文来自:lijunjie127的博客

  并发通过处理多个任务,即同时执行多条指令流1.进程进程是一个动态的概念,程序是一个静态的概念。相关命令和软件pstophtoppstreekill进程IDPID用于操作系统唯一标识的一个进程。//获取...博文来自:的博客

  1.两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚...博文来自:rabbit_in_android的博客

  简介   内存是计算机中最重要的资源之一,通常情况下,物理内存无法容纳下所有的进程。虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理内存如何增长,都赶不上程序增长的速度...博文来自:梦想从这里开始

  内存管理问题1、什么是局部性原理?时间上的局部性:最近被访问的页在不久的将来还会被访问,例如:循环语句; 空间上的局部性:内存中被访问的页周围的页也很可能被访问,例如:使用数组。2、什么是虚拟内存?1...博文来自:java小兵

  从逻辑上进行内存的扩充具有请求调入和置换功能传统存储管理方式的特征上一节所讨论的各种内存管理策略都是为了同时将多个进程保存在内存中以便允许多道程序设计。它们都具有以下两个共同的特征:1)一次性作业必须...博文来自:yutong5818的博客

  第四章文件系统1.在早期的UNIX系统中,可执行文件(a.out)以一个非常特別的魔数开始,这个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,...博文来自:cztqwan的博客

  //地址绑定1.是逻辑地址向物理地址映射的过程2.根据映射发生的时间分类:编译时:编译后,逻辑地址已经映射到物理地址。载入时:编译时候产生可重定位代码。将程序加载到内存时,逻辑地址映射到物理地址,一旦...博文来自:从零开始

  计算机体系结构/内存分层体系地址空间&地址生成连续内存分配3.1计算机体系结构/内存分配体系计算机体系结构内存分层体系在操作系统的内存管理范例计算机基本硬件结构 CPU完成了对整个程序或软件执行的控制...博文来自:落叶随枫

  不得不说做做题还是很有助于加深对一些概念的理解的。。。1.某系统具有多级存储系统,包括Cache、RAM和disk,并且启用虚拟存储器。已知访问Cache获取一个字word的时间为2ns,访问RAM的...博文来自:u014285517的专栏

  1.▲用户程序中的地址称为_____,逻辑地址的集合称为_____:内存中的地址称为_____址,物理地址的集合称为_____ 2重定位是指_____其方式有两种:_____和_____ 3.在把作装...博文来自:yutong5818的博客

  多数是根据英文版原版答案翻译过来,少部分加了个人的理解1、操作系统的两大主要作用是什么?1.为应用程序提供一个资源集的清晰抽象(另一种说法:操作系统给用户提供了一个可扩展的机器。个人理解是通过对底层的...博文来自:追yi流年

  课程内容概述本节课的内容比较简单。计算机体系结构和内存层次 地址空间和地址生成 连续内存分配 三种不同的分类策略 碎片整理 伙伴系统 uCore中的连续内存管理实现框架计算机体系结构和内存层次讲...博文来自:吴斌的博客

  一、内存管理的目的和功能内存一直是计算机系统中宝贵而又紧俏的资源,内存能否被有效、合理地使用,将直接影响到操作系统的性能。此外,虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以...博文来自:渴望,就奋力追寻...

  一、实验内容:掌握内存分配FF,BF,WF策略及实现的思路;掌握内存回收过程及实现思路;参考后面得程序思路,实现内存的申请、释放的管理程序,调试运行,总结程序设计中出现的问题并找出原因;二、实验代码:...博文来自:晨曦2012的专栏

  计算机体系结构和内存层次操作系统中内存的最小访问单位是 字节 ,也就是8bit。通常我们所说的计算机系统是32位的总线位总线就是说一次读写可以从内存当中读或者写32位(也就是4字节)。因为...博文来自:风雨落

  今天我们来看一下操作系统的存储管理。目的存储器是计算机结构中必不可少的一部分,每个用户程序都需要向操作系统申请存储资源,那么操作系统在存储管理发挥怎样的作用呢?主要有一下三点:1、为用户使用存储空间提...博文来自:Ajay666的博客

  1请说明内部碎片和外部碎片的区别:答:内部碎片(internalfragment),通常是指将内存以固定大小的块进行分配,采用这种方案,进程所分配的内存可能比所需的大,多出来的未被使用的内存叫做内部碎...博文来自:ms的专栏

  操作系统内存管理内存空间的连续分配方式1.概述、分类内存空间的连续分配方式,是指为一个用户程序(作业)分配一个连续的内存空间。按照内存空间划分方式的不同可将连续分配方式划分为以下四种方式:1.单一连续...博文来自:huangxiang360729的博客

  操作系统内存管理——页面的换入换出博文来自:iostream1001001的博客

  在多道程序中,需要从磁盘中同时读入多个进程到内存,我们需要对内存进行管理,使得能够有条理地执行进程。通常指令先要从内存中读入,进行解码,还要从内存中读取操作数,再将结果返回给内存。内存看到的只是地址。...博文来自:xiazdong

  一、虚拟内存管理(一)虚拟内存概念1、局部性原理大多数程序执行时,在一个较短时间内仅使用程序代码的一部分,相应地,程序所访问的存储空间也局限于某个区域,这就是程序执行的局部性原理。时间局部性。一条指令...博文来自:王喆峰的博客

  背景内存是现代计算机运行的中心。内存有很大一组字或字节组成,每个字或字节都有它们自己的地址。CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入。一个典...博文来自:Mr.Phoebe的专栏

  分段分段本是由于8086是16位总线位内存地址而增加的。在32位操作系统中,分段依然有用。1)段描述符:描述该段的安全属性,为一个64位长的值。在实地址模式中,只需要使用段寄存器(CS,D...博文来自:wangsifu2009的专栏

  操作系统连接着计算机的底层硬件与上层应用软件,控制着其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持。·内存管理的几种方式?·分段和分页的区别?·什么是虚拟内存?·什么是内存碎片?·虚...博文来自:CSDN_FTD的博客

  CPU直接访问的存储器只有内存和处理器内的寄存器。1.基本硬件     CPU可以在一个cpu时钟内执行一个或多个其内置寄存器的指令。而访问内存需多个cpu时钟。由于内存频繁访问,可以再cpu与内存之...博文来自:壞得彻底的专栏

  为了支持多进程(同一时间允许多个进程),解决直接操作内存带来的各种问题,引入了地址空间——允许每个进程都拥有自己的地址,硬件上需要两个寄存器——基址寄存器(保存进程开始地址)和界址寄存器(保存上界,防...博文来自:Tian_Ex的博客

  原文  主题 操作系统 HTML目录0.引言1.内存管理的概念2.内存覆盖与内存交换3.内存连续分配管理...博文来自:痞子龙3D编程

  为什么要分页在保护模式中,内存访问使用分段机制——即amp;quot;段基址:段内偏移地址amp;quot;的方式,为加强段内存的安全性和可管理性还引入了段描述符的概念对段内存加强...博文来自:程序人生

  一、问题提出:我们经常会使用malloc()以及free()函数进行堆区内存申请与释放。那么你是否会这样做:int*p=malloc(0);/*malloc分配了0个字节吗,如果是那么p指向谁呢,是N...博文来自:Apollon_krj的博客

  JVM优化之调整大内存分页(LargePage)本文将从内存分页的原理,如何调整分页大小两节内容,向你阐述LargePage对JVM的性能有何提升作用,并在文末点明了大内分页的副作用。OK,让我们开始...博文来自:Data & Analysis

  什么是内存分页?我们知道,CPU是通过寻址来访问内存的。32位CPU的寻址宽度是0~0xFFFFFFFF,计算后得到的大小是4G,也就是说可支持的物理内存最大是4G。但在实践过程中,碰到了这样的问题,...博文来自:Since_lily的博客

  分页内存和非分页内存  首先介绍几个术语:进程上下文,就是表示进程信息的一系列东西,包括各种变量、寄存器以及进程的运行的环境。这样,当进程被切换后,下次再切换回来继续执行,能够知道原来的状态。中断上下...博文来自:蜗牛的专栏

  相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是: ⑴ 找出算法...博文来自:杨威的博客

  本帖只谈技术实现,首先我们自己来编译一个比特币客户端吧, 技术讨论,欢迎大家入伙(注明:csdn)。...博文来自:开心乐源的专栏

  帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能。首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer...博文来自:kongwei521的专栏

  扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自:Lynn_Blog

  mybatis简单小巧易于上手,方便浏览修改sql语句博文来自:努力+坚持,而且还很年轻

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:Websites

  Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。   在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 (...博文来自:朱小厮的博客

  我们在做项目的时候有时候需要给图片添加水印,水寒今天就遇到了这样的问题,所以搞了一个工具类,贴出来大家直接调用就行。/** * 图片工具类 * @author 水寒 * 欢迎访问水寒的个人博客:...博文来自:水寒

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  1. 规则引擎面临的问题:业务规则的实现大部分是由开发人员来实现的 业务规则需要业务分析人员能够阅读和理解 业务规则的可读性和用户的友好性都不太好2. DSL领域特殊语言DSL == Domain...博文来自:哎幽的成长

  nginx 是个轻量级的Web服务器,比Apache不差博文来自:老徐2014

  若是研究区在中国,则在地理空间数据云有中国区合成好的数据,直接下载用即可。数据格式为TIF。坐标为WGS84,不用再转换投影。下载网址为:博文来自:hengcall的博客

本文链接:http://shawntierney.com/fangwenjubuxing/560.html