当前位置:2019年全年资料内部公开 > 缺页频率 >

2019备考[嵌入式系统设计师]之“存储管理篇”

  通过分析历年考题发现,在存储管理方面的题目蛮多的,应该是一个重要考点。无论是概念、理论、分析和计算都相当容易出题。这里就先拿这个点说说吧,其他的以后有时间再写了。

  计算机系统的存储器被组织成一个金字塔的层次结构。自上而下为:CPU内部寄存器、芯片内部高速缓存(cache)、芯片外部高速缓存(SRAM、SDRAM、DRAM)、主存储器(NAND FLASH、NOR FLASH、EEPROM)、外部存储器(磁盘、光盘、CF卡、SD卡)和远程二级存储器(分布式文件系统、WEB服务器),6个层次的结构。上述设备从上而下,依次速度更慢、容量更大、访问频率更小,造价更便宜。

  工作原理:主要利用了程序的局部性特点。地址映象是指把主存地址空间映象到cache的地址空间。地址变换是指当程序或数据已经装入到cache后,在实际运行过程中,把主存地址如何编程cache空间的地址。

  直接映象和变换:速度快,造价低,但有局限性,不能充分利用cache的好处。

  MMU在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个过程称为内存映射。MMU主要完成下面的工作:

  嵌入式系统中常常采用页式存储管理。为了管理这些页引入了页表的概念。页表是位于内存中的表,它的每一行对应虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的访问权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。

  由于页表存储在内存中的,整个查询过程需要付出很大的代价。根据程序局部性的特点,增加了一个小容量、高速度的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为:地址转换后备缓冲器(TLB)。

  当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU再从内存中的页表中查询,并把相应的结果添加到TLB中,更新它的内容。

  嵌入式系统中虚拟存储空间到物理空间的映射以内存块为单位进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。

  在页表和TLB中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相对应的一个内存块的基地址之间的对应关系。

  在MMU中实现虚拟地址到物理地址的映射是通过两级页表来实现的。禁止MMU时,所有物理地址和虚拟地址相等,即使用平板存储模式。

  在实模式存储管理方案下,主要的工作在于堆空间的管理,即如何来管理空闲的堆空间、如何来分配内存、如何来回收内存等等。

  B.每个应用程序只能访问自己的地址空间,不能去破坏操作系统和其他应用程序的代码和数据。

  固定分区:各个用户分区的个数、位置和大小一旦确定后,就固定不变,不能再修改。

  可变分区:动态创建,在装入一个程序时,系统将根据它的需求和内存空间的使用情况来决定是否分配。

  静态地址映射:当用户程序被装入内存时,直接对指令代码进行修改,一次性地实现逻辑地址到物理地址的转换。

  当用户程序被装入内存时,不对指令代码做任何修改,而是在程序的运行过程中,当它需要访问内存单元的时候,再来进行地址转换。

  在具体实现时,这项转换工作一般是由硬件的地址映射机制来完成的。通常设置一个基地址寄存器,或者叫重定位寄存器。当一个任务被调度运行时,就把它所在分区的起始地址装入到整个寄存器中。然后,在程序运行的过程中,当需要访问某个内存单元时,硬件就会自动地将其中的逻辑地址加上基地址寄存器中的内容,从而得到实际的物理地址,并且按照这个物理地址区执行。这个基地址寄存器位于MMU的内部,整个地址映射过程是自动运行的。从理论上说,每访问一次内存都要进行一次地址映射。

  把物理内存划分为许多固定大小的内存块,称为物理页面;把逻辑地址空间也划分为大小相同的块,称为逻辑页面。当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续的区域,而是以页面为单位来进行分配的。对于一个大小为N的页面程序,需要有N个空闲的物理页面来把它装载。这些物理页面不一定是要连续的。

  在页式存储管理中需要解决三个问题:数据结构、内存分配与回收、地址映射。

  A.对于一个新来的任务,计算它所需要的页面数N,然后查看位示图,看是否还有N个空闲的物理页面。

  B.如果有足够的空闲物理页面,就去申请一个页表,其长度为N,并把页表的起始地址填入到该任务的控制块中。

  C.分配N个空闲的物理页面,把他们的变换填到页表中,建立逻辑页面与物理页面直接的对应关系。

  A.逻辑地址分析:对逻辑地址,找到它所在的逻辑页面,以及它在页面内的偏移地址。

  页表查找:页表作为操作系统的一个数据结构,通常保存在内核的地址空间中。页表基地址寄存器用来指向页表的起始地址;页表长度寄存器用来指示页表的大小,即对于当前任务,它总共包含有多少个页面。

  假设物理页面号为f,页内偏移地址为offset,每个页面大小为2n,那么相应的物理地址为:f×2n+offset。

  当一个用户程序需要调入内存去运行时,不是将这个程序的所有页面都装入内存,而是只装载部分的页面,就可以启动这个程序运行。在运行过程中,如果发现要执行的指令或者访问的数据不在内存当中,就向系统发出缺页中断请求,然后系统在处理这个中断请求时,就会将保存在外存中的相应页面调入内存,从而使该程序能继续运行。

  在虚拟页式存储管理中,页表包含:逻辑页面号、物理页面号、驻留位、保护位、修改位和访问位。

  1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执行程序计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺...

  操作系统对内存的管理 没有内存抽象的年代 在早些的操作系统中,并没有引入内存抽象的概念。程序直接访问和操作的都是物理内存。比如当执行如下指令时:mov reg1,1000 这条指令会毫无想象力的将物理地址1000中的内容赋值给寄存器。不难想象,这种内存操作方式使得操作系统中...

  儿童智能手表的品牌目前在市场上非常的多,不管从外观工艺和内置功能都日渐成熟同质化也日趋严重,对儿童手表了解稍微少一些的很容易被一些噱头给蒙蔽双眼。其实在选择儿童手表至少需要考虑以下几个方面:首先是安全性方面,主要包括从手表材质安全和防水性能,其次是通话的类型和定位的精度,另...

  糖友的生活方式也是健康的生活方式,其中饮食是很关键,选对了食物,血糖也会跟着乖,这样健康的辅助食疗很适合糖友。但必须定期食用才能增强辅助降糖的效果。 同时,这些食物要定时定量吃,还可维持机体对降糖成分的敏感性,避免产生依赖。下面介绍几种常见的食物,可供糖友在日常生活中作为参...

  年轻的我们,总是抱有满腔的自以为是,总以为每一个目标都能圆满完成,每一件事情的发展都能如自己所愿,不论结果,因为不后悔,因为不承担。我们所做的任何决定全凭自己的喜好和厌恶,我们注重声势浩大的开始,忘记怎么结束,我们全身心的恨一个人,喜爱一样事物,没有客观因素,全凭主观意识...

  面试第二天 第一天面试结束后,Z先生安慰自己说,什么事情都有第一次,坏事情结束了好事情就会来的,人生不会总是摔倒在同一堆狗屎上的……一大堆名人名言哲人警句飞快的在大脑里奔跑,Z先生认定一切都会朝着无比喜悦的方向发展。 中午吃完饭,Z先生刚躺下准备继续昨夜梦中的面试,电话就响...

  外面的雪还没有化。 收拾好行礼,躺在床上。点了一柱香,打开手机中的佛音《大悲咒》和《心经》。 点开简书的APP。突然觉得这种生活方式很喜欢,会不会在以后的生活中陪伴我呢? 听喜欢的音乐,让内心平静。看喜欢的文章,让内心澎湃或感动。 这是到西藏的第三年,这是在外飘泊的第十年。...

http://boardflip.com/queyepinlv/26.html
点击次数:??更新时间2019-05-17??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】