嵌入式操作系统_5.存储管理

2024-06-15 14:36

本文主要是介绍嵌入式操作系统_5.存储管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.存储管理 

        存储管理是嵌入式操作系统的基本功能之一。其管理的对象是主存,也称内存。它的主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。存储器管理的目的就是提供一个有价值的内存抽象,其目标包括:

  • 地址保护:一个程序不能访问另一个程序地址空间;
  • 地址独立:程序并发的地址应与物理主存地址无关。

2.存储管理方法        

        存储管理方法的主要目的是解决多个用户使用主存的问题,其存储管理方法主要包括分区存储管理分页存储管理分段存储管理段页存储管理以及虚拟存储管理等5种。 

2.1分区管理

         分区存储管理又有三种不同的方式:静态分区可变分区可重定位分区

(1)静态分区

         静态分区存储管理是预先把可分配的主存储空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同。为了说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”。主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被作业占用。进行主存分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。采用静态分区存储管理,主存空间的利用率不高。

(2)可变分区

         可变分区方式是安作业的大小来划分分区。当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间,若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间。由于分区的大小是按作业的实际需要量来定的,且分区的个数也是随机的,所以可以克服固定分区方式中的主存空间的浪费。

        随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。当一个新的作业要求装入时,必须找一个足够大的空闲区,把作业装入该区,如果找到的空闲区大于作业需要量,则作业装入后又把原来的空闲区分成两部分,一部分给作业占用了;另一部分又分成了一个较小的空闲区。当以作业结束撤离时,它归还的区域如果与其他空闲区相邻,则可合成一个较大的空闲区,以有利于大作业的装入。可变分区调度算法有:首次适应算法、最佳适应算法、最坏适应算法。

(3)可重定位分区        

        可重定位分区也可称之为动态重定位分区方法,它是充分利用存储器管理的虚拟-物理地址动态映射关系实现存储分配的。其工作原理是作业在动态运行时装入内存的所有地址都是一种相对地址(即逻辑地址),将相对地址转换为物理地址的工作,被推迟到程序指令要真正执行时进行。为使地址的转换不会影响到指令的执行速度,必要有硬件地址变换机构的支持(如:MMU),即需在系统中增设一个重定位寄存器,用来存放程序(数据)在内存中的起始地址。 程序在执行时,真正访问的内存地址是相对地址与重定位地址寄存器中的地址相加而形成的。

2.2分页存储

        分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称为“业内碎片”。

2.3分段存储

         在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等。每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。

2.4段页存储

         段页式系统的基本原理,是基本分段存储管理方式和基本分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。

2.5虚拟存储

         当程序的存储空间要求大于实际的内存空间时,就使得程序难以运行了。虚拟存储技术就是利用实际内存空间和相对大得多的外部存储器存储空间相结合构成一个远远大于实际内存空间的虚拟存储空间,程序就运行在这个虚拟存储空间中。能够实现虚拟存储的依据是程序的局部性原理,即程序在运行过程中经常体现出运行在某个局部范围之内的特点。在时间上,经常运行相同的指令段和数据(称为时间局部性),在空间上,经常运行与某一局部存储空间的指令和数据(称为空间局部性),有些程序段不能同时运行或根本得不到运行。虚拟存储是把一个程序所需要的存储空间分成若干页或段,程序运行用到页和段就放在内存里,暂时不用就放在外存中。当用到外存中的页和段时,就把它们调到内存,反之就把它们送到外存中。装入内存中的页或段可以分散存放。

这篇关于嵌入式操作系统_5.存储管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063725

相关文章

操作系统分页式存储管理

每次输入地址后,计算出页号,若页号越界,则给出错误提示。否则依次调用FIFO和LRU算法,这里值得注意的是,由于我们的FIFO算法先于LRU算法被调用,那么当在处理FIFO算法时,我们暂且不将位视图相应位置做变化,留到处理LRU算法再做处理。 对于FIFO、LRU算法的缺页,我们分两种情况考虑,第一种是模拟栈内还有空间,那么直接将其入栈。第二种是模拟栈内无空间,要发生置换。发生置换时把模拟栈最底

MySQL数据备份的存储管理:策略、实践与自动化

数据备份是数据库管理中的关键环节,它确保了在数据丢失或损坏的情况下能够恢复数据。在MySQL中,有效的数据备份存储管理不仅涉及到备份的创建,还包括备份的存储、组织、维护和验证。本文将详细介绍如何在MySQL中实现数据备份的存储管理,包括备份策略的制定、存储解决方案的选择、自动化备份流程的构建以及备份的验证和维护。 1. 数据备份存储管理的重要性 数据备份存储管理是确保数据备份有效性和可访问性的

架构设计(11)常见的几个嵌入式操作系统介绍

嵌入式操作系统 嵌入式操作系统(Embedded Operating System, EOS)是专为嵌入式系统设计的操作系统。它们在性能、资源管理和实时性方面满足特定应用的需求。以下是一些关键概念和常见的嵌入式操作系统: 关键概念 实时性(Real-Time Capabilities): 硬实时:系统必须在严格的时间限制内完成任务。常用于工业控制、医疗设备等关键系统。软实时:系统期望在时间

11种基于ARM的嵌入式操作系统

来源于:http://www.stmcu.org/article/id-330074 1、Android  Android 是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。Android 作为一个完全开源的操作系统,是由操作系统Linux、中间件以及核心应用程序组成的软件栈。通过 android SDK 提供的 API 以及相应的开发工具, 程序员可以很方

操作系统(七)——存储管理

存 储 管 理 一、基础概念:    什么是储存器?:通俗的说就是在电脑中存储文件、数据或其他东西的设备。        什么是存储管理?:即使对电脑的“主存器”进行管理,根据用户程序的要求为他分配 主存空间和实现重定位,同时还保护用户存放在主存储器中的程序和数据不被破坏。必 要是可以

《操作系统》—页式存储管理

说到页式存储管理,我想应该先说用户的程序,因为页式存储管理就是为用户的程序或者是说进程服务的,一个程序编制好了以后它肯定占用空间,也就是说它肯定有大小,程序既然有大小就能将它划分,在这里,就将程序的逻辑空间划分成若干页,称为逻辑页面也叫页。     一、页的划分      页的大小是根据什么划分的那?这就追溯到内存的划分了。页的大小是根据内存中的块大小来划分的。什么是内存中的块那?

《操作系统》——存储管理

谈到存储器,我们有可能想到很多,与计算机有关的存储器,大概分为三个层次,寄存器、主存储器和高速缓冲存储器、辅助存储器等等。今天我和大家分享的是主存储器的管理与使用。想必大家都知道,CPU能直接访问主存储器和高速缓冲存储器,不能直接访问辅助存储器,那么,当CPU处理一些作业时是怎样在主储存器找到它们的那?作业又是以怎样的方式在主存储器中被管理的那?     大家先看一张图

【软考】嵌入式操作系统

目录 1. 说明2. 主要特点3. 常见系统4. 例题4. 例题1 1. 说明 1.嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的名种部件装置等资源进行统一协调、处理、指挥和控制。 2. 主要特点 1.微型化。从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。2.可定制。从减少成

Linux操作系统段式存储管理、 段页式存储管理

1、段式存储管理 1.1分段 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。内存分配规则:以段为单位进行分配,每个段在内存中占连续空间,但各段之间可以不相邻。 分段系统的逻辑地址结构由段号(段名)和段内地址(段内偏移量)所组成。 1.2段表 每一个程序设置一个段表,放在内存,属于进程的现场信息

MySQL存储管理(一):删数据

从表中删除数据 从表中删除数据,也即是delete过程。 什么是表空间 表空间可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。默认情况下,InnoDB存储引擎有一个共享表空间idbdata1,即所有数据都存放在这个表空间内。如果用户启用了参数 innodb_file_per_table,则每张表内的数据可以单独放到一个表空间内。 如果启用了 innodb