操作系统知识-存储管理+文件管理管理-嵌入式系统设计师备考笔记

news2024/10/6 14:31:50

0、前言

  本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。

本章的主要内容见下图:

1、存储管理(有计算题)

1.1分区存储

分区存储是指将存储介质分割成多个独立的存储区域,每个存储区域可以单独管理和使用。在存储管理中,分区存储是通过以下步骤实现的:

  1. 确定分区的大小和数量:根据需求确定每个分区的大小和数量,通常会考虑到数据的类型、访问频率、备份需求等因素。

  2. 创建分区:通过存储管理软件或操作系统的工具,将存储介质按照预先确定的大小和数量进行分区划分。

  3. 分配存储空间:为每个分区分配存储空间,并确定其访问权限和管理策略,如读写权限、备份策略等。

  4. 管理分区:对每个分区进行管理,包括监控存储空间的使用情况、定期清理无用数据、备份重要数据等操作。

  5. 提供访问接口:为用户或应用程序提供访问分区的接口,使其可以对存储空间进行读写操作。

通过以上步骤,分区存储可以实现对存储空间的有效管理和利用,提高数据的安全性和可靠性。

 

可变分区分配算法举例:

1.2页式存储 

页式存储是一种基于页面(Page)的存储管理技术,将存储介质划分成固定大小的页面(通常为4KB或8KB),并将数据按照页面的单位进行存储和管理。页式存储通常用于虚拟存储系统和操作系统中,其主要特点包括:

  1. 分页管理:将存储介质划分成大小固定的页面,每个页面都有唯一的地址。数据被分割成页面大小的块进行存储,便于管理和访问。

  2. 页面映射:通过页表(Page Table)将逻辑地址映射到物理地址,实现虚拟地址空间到物理地址空间的转换。页表记录了每个页面在物理地址空间中的位置。

  3. 页面置换:当物理内存不足时,需要进行页面置换(Page Replacement)操作,将一部分页面从内存中换出到磁盘上,以释放空间给新的页面。常用的页面置换算法包括最近最少使用(LRU)和先进先出(FIFO)等。

  4. 快速访问:由于页面大小固定,可以通过页表快速定位到存储数据的物理地址,提高数据访问的效率。

  5. 内存保护:通过页表可以实现内存保护,限制程序对其他进程或系统资源的访问。

页式存储可以提高存储管理的效率和灵活性,同时也有利于实现虚拟存储和内存保护等功能。然而,页式存储也会引入一定的开销,如页表维护和页面置换操作可能会增加系统的负担。

优点:利用率高,碎片小,分配及管理简单

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

1.3段式存储 

段式存储是一种存储管理技术,将存储空间划分成不同大小的段(Segment),每个段用于存储一组相关的数据或程序段。段式存储与页式存储相比,更注重数据和程序的逻辑结构,而不是物理地址的顺序。

在段式存储中,每个段都有自己的段号和段长度,可以存储不同类型的数据或程序段,如代码段、数据段、堆栈段等。段式存储的主要特点包括:

  1. 分段管理:将存储空间划分成多个段,每个段具有独立的段号和段长度。不同的段用于存储不同类型的数据或程序,使得数据和程序可以更灵活地组织和管理。

  2. 段映射:通过段表(Segment Table)将逻辑地址映射到物理地址,实现逻辑地址空间到物理地址空间的转换。段表记录了每个段在物理地址空间中的起始地址和长度。

  3. 动态增长:每个段的长度可以根据需要动态增长,适应不同大小的数据或程序段。

  4. 内存保护:通过段表可以实现内存保护,限制程序对其他段或系统资源的访问。

  5. 碎片问题:段式存储可能会导致内部碎片(Internal Fragmentation),即段长度不是页面大小的整数倍时,会浪费一部分存储空间。

段式存储适用于需要灵活管理数据和程序段的场景,如操作系统、数据库管理系统等。通过合理划分和管理段,可以提高存储管理的效率和灵活性。

优点:多道程序共享内存,各段程序修改互不影响

缺点:内存利用率低,内存碎片浪费大

 1.4段页式存储

段页式存储是将段式存储和页式存储结合起来的一种存储管理技术,旨在克服段式存储和页式存储各自的缺点,提高存储管理的效率和灵活性。在段页式存储中,存储空间被划分成多个段和多个页面,每个段包含多个页面,每个页面属于一个段。

段页式存储的主要特点包括:

  1. 分段管理:将存储空间划分成多个段,每个段用于存储一组相关的数据或程序段。不同的段可以有不同的长度和权限。

  2. 分页管理:每个段被划分成多个页面,每个页面具有固定大小。数据和程序按页面的单位进行存储和管理,便于页面置换和内存管理。

  3. 段页映射:通过段表和页表将逻辑地址映射到物理地址,实现逻辑地址空间到物理地址空间的转换。段表记录了每个段的基地址和长度,页表记录了每个页面在物理地址空间中的位置。

  4. 动态增长:每个段和页面的长度可以根据需要动态增长,适应不同大小的数据或程序段。

  5. 内存保护:通过段表和页表可以实现内存保护,限制程序对其他段或页面的访问。

段页式存储综合了段式存储和页式存储的优点,同时也克服了它们各自的缺点,提高了存储管理的效率和灵活性。段页式存储常用于现代操作系统和虚拟存储系统中,为应用程序提供高效的存储管理机制。

优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降

 1.5虚拟存储

  • 具有部分装入和部分对换功能,能从逻辑上对内容容量进行大幅度扩充,使用方便的一种存储器系统
  • 实际上是为扩大主存而采用的一种设计技巧
  • 虚拟存储器的容量与主存大小无关
  • 虚拟存储器的实现对用户来说是透明的

 实现方式:

  • 请求分页系统
  • 请求分段系统
  • 请求段页式系统

1.6磁盘结构及调度算法

2、文件管理

2.1文件组织结构

2.2空闲存储空间管理

 位示图法:直观表示存储空间是否被占用的方法,

位示图法是一种用于管理磁盘空间的技术,通过使用位图(Bitmap)来表示磁盘上每个数据块(或扇区)的使用情况。在位示图法中,每个数据块都对应位图中的一个位(通常用0或1表示),用于表示该数据块的使用状态。

位示图法的实现方式如下:

  1. 初始化位示图:在磁盘上创建一个位示图,位示图的每一位对应磁盘上一个数据块。初始状态下,所有位都是0,表示对应的数据块都是空闲的。

  2. 分配数据块:当需要存储数据时,系统会查找位示图中第一个为0的位,表示一个空闲的数据块。然后将该位设置为1,表示该数据块已被分配。

  3. 释放数据块:当数据块不再被使用时,系统会将对应的位设置为0,表示该数据块已被释放,可以重新被分配。

  4. 查询空闲数据块:系统可以通过扫描位示图找到所有为0的位,从而获取空闲的数据块列表。

  5. 碎片问题:位示图法可能会导致碎片问题,即数据块的空闲空间被分割成多个小块,难以有效利用。

位示图法是一种简单有效的磁盘空间管理技术,可以快速查询和分配数据块。然而,随着磁盘容量的增大,位示图的大小也会增加,可能会占用较多的存储空间。因此,在实际应用中,位示图法通常会与其他磁盘空间管理技术结合使用,以提高磁盘空间的利用率和管理效率。

例子见下图:

 块号有时候是从0开始的,如果没有规定默认从1开始。

3、设备管理

虚设备与SPOOLING技术

技术流程

 A,B,C,D共用一台打印机X,要进行资料打印时,很容易出现“打印机正在使
用!”如何处理该问题?

4、操作系统知识总结

本章着重考查操作系统基础知识,考查形式主要是概念区分以及部分计算题型,只出现在上午的选择题当中。复习时注意对于相关概念联系并区别记忆,固定题和计司型多做练习熟能生巧(计算要仔细哦~)。

4.1选择题常考

1、操作系统的作用
2、进程、程序、线程对比
3、进程的三态模型
4、PV操作
5、死锁条件、死锁预防、死锁避免

6、 存储管理的基本概念

7、页式/段式/段页式存储特点对比
8、磁盘相关概念
9、文件相关概念
10、1/0设备和I/0软件11、虚设备和假脱机技术

4.2计算题常考 

1、PV操作分析
2、PV与前趋图结合

3、死锁资源数计算
4、银行家算法
5、页式存储地址转换和页面置换
6、段式存储合法段地址判断

7、磁盘存取时间和优化存储
8、索引目录结构计算
9、树形目录结构(绝对路径和相对路径)
10、位示图计算

尾言

        本专栏我总结了大量的思维导图,但是因为思维导图太大与CSDN的排版不匹配,故我会把每篇博文绘制的思维导图上传到我的资源里,有需要的自取,我会设置为0积分下载的,创作不易还望各位大佬点赞支持一下谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1525980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构取经之路】归并排序

简介 归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,…

在Docker上传我们自己的镜像(以springboot项目为例)

首先确定好在我们的centOS服务器上已经安装并配置好docker 配置自己的springboot镜像并运行 获取springboot的jar包 maven clean--》mavenue package --》复制target目录下生成的jar包 在服务器选择一个文件夹上传jar包,我这里选用的文件夹叫做/opt/dockertest…

如何在HomeAssistant智能家居系统中添加HACS集成并实现无公网IP远程连接家中设备

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant,通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店,将米家,果家设备接入 Home Assistant。 基本条件…

Python the code is unreachable

Python the code is unreachable 正文 正文 相信有不少小伙伴在使用 Python 的时候有时候会遇到 the code is unreachable 这样的 warning 提示。这种提示表示在我们当前书写的代码种有一部分代码被屏蔽了。可能会存在潜在的 bug,需要我们注意,那么什么…

2023年蓝桥杯省赛——幸运数字

目录 题目链接:0幸运数字 - 蓝桥云课 (lanqiao.cn) 解法 思路 高级思路 总结 题目链接:0幸运数字 - 蓝桥云课 (lanqiao.cn) 解法 首先是我写了差不多一个小时的解法,裂开了,为什么我如此废物 思路 寻找第2023个在二进制、八…

弱电工程是什么?常见的类型有哪些?

一、什么是弱电工程?强电和弱电的区别有哪些? 弱电工程又叫智能建筑,也叫系统集成工程,所有与信息有关的都属于弱电这一块的。弱电是相对于强电而言的强电和弱电从概念上讲,一般是容易区别的,主要区别是用途的不同。强电是用作…

Compute Express Link (CXL): An Open Interconnect for Cloud Infrastructure——论文阅读

DAC 2023 Paper CXL论文阅读笔记整理 背景 Compute Express Link是一种开放的行业标准互连,在PCI Express(PCIe)之上提供缓存和内存语义,具有资源池和织物功能。本文探讨了CXL在解决云基础设施中的一些挑战方面的作用。 CXL主要…

Python:文件的操作

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) Python的os库主要用于与操作系统进行交互,它提供了多种功能,使得在Python程序中处理操作系统级任务变得容易。这里是一些…

外包干了3个月,技术明显进步。。。。。

在湖南的一个安静角落,我,一个普通的大专生,开始了我的软件测试之旅。四年的外包生涯,让我在舒适区里逐渐失去了锐气,技术停滞不前,仿佛被时间遗忘。然而,生活的转机总是在不经意间降临。 与女…

1.MongoDB的特点与应用场景

什么是 MongoDB ? MongoDB 是基于 C 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql,它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势。 大致有如下特…

Vulnhub - Morpheus

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢! 个人博客链接:CH4SER的个人BLOG – Welcome To Ch4sers Blog Morpheus 靶机下载地址:Matrix-Breakout: 2 Morpheus ~ VulnHub 0x01 信息收集 Nmap扫描…

代码随想录算法训练营第二十四天|● 理论基础 ● 77. 组合(JS写法)

回溯理论基础 回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。递归就要有终止条件,所以必然是一棵高度有限的树&#xff…

一篇搞定ECharts的基本使用,赶快收藏起来学习吧~

准备工作 引入 声明一个有宽高的dDOM元素 echarts.init(DOM) option配置对象 echarts.setOptions(option) 基础配置 option类似于一个容器,那么里面的属性就相当于组件: xAxis(直角坐标系 X 轴)、yAxis(直角坐…

关于udp能跨局域网传输的问题

UDP(用户数据报协议)以其独特的传输特性在多种应用场景中都有着极其重要的作用。然而,关于UDP是否能跨局域网(LAN)进行传输,以及这一传输过程中的优缺点,一直是网络技术领域讨论的热点。本文将详…

git基础命令(四)之分支命令

目录 基础概念git branch-r-a-v-vv-avv重命名分支删除分支git branch -h git checkout创建新的分支追踪远程分支同时切换到该分支创建新的分支并切换到该分支撤销对文件的修改,恢复到最近的提交状态:丢弃本地所有修改git checkout -h git merge合并指定分…

Windows系统安装VNC客户端结合内网穿透实现公网远程连接Deepin桌面

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 x11vnc是一种在Linux系统中实现远程桌面控制的工具,它的原理是通过X Window系统的协议来实现远程桌面的展…

1688商品详情API接口采集商品上货

阿里巴巴1688平台并没有直接公开商品详情API接口供普通用户或开发者进行商品采集和上货。1688平台主要服务于批发和采购业务,其API服务通常面向的是有深度合作关系的商家或开发者,且需要经过申请和审核流程。 请求示例,API接口接入Anzexi58 …

Python Web开发记录 Day14:Django part8 订单管理

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据库准备2、添加订单3、订单列表4、删除订…

C#集合:从字典到队列——探索数据结构核心

文章目录 C# 中的集合类型C# Dictionary 字典C# Hashtable:哈希表Hashtable 类中的属性Hashtable 类中的方法 C# SortedList:排序列表SortedList 类的中的属性SortedList 类的中的方法 C# Stack:堆栈Stack 类中的属性Stack 类中的方法 C# Que…

产品经理:前端实现网页防篡改,你会怎么做?

公众号:程序员白特,欢迎一起交流学习~ 如果产品经理要求系统中某个页面的输入框做防止篡改处理,你会怎么做呢? 需求梳理 首先,什么是防篡改? 简单来说,就是用户输入input框值,我们…