系统架构设计·操作系统·存储和文件管理

一、存储管理

         1.1 页式存储

                页式存储是操作系统的一种存储管理方式;

                因为我们的程序往往是远远大于内存的,所以程序在执行的时候,是不会一次性把所有内容都装入到内存中,它会把程序分为若干个页,每个页固定大小,一般是4K,然后把这些页离散存入到内存中,而内存是按块来划分的,所以就通过页表来进行映射程序中的页在内存中的块的存储;

                进程(程序)中的地址,我们称之为逻辑地址(虚地址),而内存中的地址我们称之为物理地址(实地址)

                每个页分为页号和页内地址,页号用来和块号对应,代表存储的位置,大小可以代表页的数量,页内地址代表的是存储的数据内容,大小可以代表数据大小;

                优点:利用率高、碎片小(只在最后一个页中有)、分配及管理简单。

                缺点:增加了系统开销,可能产生抖动现象。 

         1.2 页面置换算法

                有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。

                缺页:表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低

                最优算法OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。

                先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)

                最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象。

        1.3 快表

                是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号(可以看成是页表的频繁访问数据的副本)。

                快表是将页表存于Cache中;慢表示将页表存于内存上。

                因此慢表需要访问两次内存才能取出数据,而快表是访问一次Cache和一次内存,因此更快

         1.4 段氏存储

                将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的.

                地址表示:(段号,段内偏移):其中段内偏移不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址+段内偏移。

                优点:程序逻辑完整,修改互不影响 内存利用率低;

                缺点:内存碎片浪费大 

        1.5 段页式存储

                对进程空间先分段,后分页,具体原理图和优缺点如下:

                优点:空间浪费小、存储共享容易、能动态连接。

                缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降;

二、文件管理

        2.1 文件结构

                计算机系统中采用的索引文件结构如下图所示:

                系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB*10=40KB数据;

                10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024*4KB=4098KB数据。

                

                二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为1024*1024*4KB数据。

     2.2 树形文件

                相对路径:是从当前路径开始的路径。

                绝对路径:是从根目录开始的路径。 全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。 树形结构主要是区分相对路径和绝对路径,如下图所示:

     2.3 空间存储

                空闲区表法:将所有空闲空间整合成一张表,即空闲文件目录。

                空闲链表法:将所有空闲空间链接成一个链表,根据需要分配。

                成组链接法:既分组,每组内又链接成链表,是上述两种方法的综合。

                位示图法:对每个物理空间用一位标识,为1则使用,为0则空闲,形成一张位示图。

三、微内核操作系统 

        微内核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样,系统就被分为了用户态和内核态,如下图所示;

 四、嵌入式操作系统

        嵌入式操作系统特点:微型化、代码质量高、专业化、实时性强、可裁剪可配置。

        实时嵌入式操作系统的内核服务:异常和中断、计时器、I/O管理。

        常见的嵌入式RTOS(实时操作系统):VxWorks、RT-Linux、QNX、pSOS。

        嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为: 芯片级初始化->板卡级初始化->系统级初始化。

        芯片级是微处理器的初始化,板卡级是其他硬件设备初始化,系统级初始化就是软件及操作系统初始化

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通用动态分区分配存储管理系统是一个操作系统的重要组成部分,其主要作用是管理计算机的内存资源,有效地分配和回收内存空间,以满足系统的运行需求。以下是一个简单的通用动态分区分配存储管理系统的设计: 1. 内存分区管理 系统需要维护一个内存分区表,记录可用和已分配的内存分区的信息。每个内存分区表项包括以下信息: - 分区大小 - 起始地址 - 是否已分配 系统需要实现内存分区的分配和回收操作。分配操作根据分配请求的大小,从可用分区中选择合适的分区进行分配。回收操作将已分配的分区释放,并将该分区标记为可用。 2. 内存分配算法 系统需要实现不同的内存分配算法,以满足不同的应用场景需求。常见的内存分配算法包括: - 首次适应算法:按照分区起始地址从低到高的顺序查找,找到第一个符合大小要求的空闲分区进行分配。 - 最佳适应算法:按照分区大小从小到大的顺序查找,找到最小的符合大小要求的空闲分区进行分配。 - 最坏适应算法:按照分区大小从大到小的顺序查找,找到最大的符合大小要求的空闲分区进行分配。 3. 内存碎片整理 随着内存的不断分配和回收,可能会产生很多小的空闲分区,导致内存碎片化。系统需要实现内存碎片整理算法,将多个小的空闲分区合并成一个大的空闲分区,以充分利用内存资源。 4. 进程内存管理 对于每个进程,系统需要维护其内存使用情况,包括已分配的内存大小和起始地址。当进程需要更多内存时,系统需要为其分配新的内存分区,当进程不需要某些内存时,系统需要回收这些内存分区。 5. 内存保护 系统需要实现内存保护机制,防止一个进程越界访问另一个进程的内存空间,或者访问操作系统的内存空间。系统可以通过硬件机制(如MMU)或软件机制(如地址转换和访问权限控制)来实现内存保护。 以上是一个简单的通用动态分区分配存储管理系统的设计。实现这个系统需要考虑各种不同的情况和应用场景,需要仔细设计和测试,确保其稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值