当前位置: 首页 > news >正文

系统分析师-计算机系统-操作系统-存储器管理设备管理

目录

一、存储器管理

1. 分区存储管理

系统分配内存的算法(可变分区)

2. 分页存储管理

页面置换算法

3. 分段存储管理

4. 段页式存储

5. 虚拟存储管理

二、设备管理

1. 设备管理概述

2. I/O软件

3. 设备管理技术

相关推荐


一、存储器管理

1. 分区存储管理

        所谓分区存储管理,就是整存,将某进程运行所需的内存整体一起分配给它然后再执行。有三种分区方式:

  • 固定分区:静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片。

  • 可变分区:动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片。
    可变分区的算法(如下 2.系统分配内存的算法(可变分区))。

  • 可重定位分区:可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。

系统分配内存的算法(可变分区)
  1. 首次适应算法(First Fit):将内存分块,从内存的起始位置开始,找到第一个大小满足要求的空闲块,进行分配。

  2. 最佳适应算法(Best Fit):在所有空闲块中找到大小最接近需求的块进行分配,以尽量减少剩余碎片。

  3. 最坏适应算法(Worst Fit):在所有空闲块中找到大小最大的块进行分配,以便将更多的空闲块保留给后续请求。

  4. 快速适应算法(Quick Fit):将内存划分为几个固定大小的块,每个块有一个空闲块链表,根据所需大小直接从相应链表中取得空闲块进行分配。

  5. 分区算法(Partitioning):将内存划分为固定大小或可变大小的分区,每个分区只能被一个进程占用。常见的分区算法包括等分分区算法、按比例分区算法和动态分区算法。

        这些算法在资源分配效率、内存利用率、响应速度等方面有不同的优势和劣势,根据具体的应用场景和需求选择合适的算法。

2. 分页存储管理

逻辑页分为页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址。

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

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

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

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

  3. 最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多。

  4. 淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面。

快表

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

  • 快表是将页表存于Cache中;慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次cache和一次内存,因此更快。

3. 分段存储管理

        将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是每段物理大小不同,分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,而下图所示,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。

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

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

4. 段页式存储

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

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

  • 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。

5. 虚拟存储管理

如果一个作业只部分装入主存便可开始启动运行,其余部分暂时留在磁盘上,在需要时再装入主存,这样可以有效地利用主存空间。从用户角度看,该系统所具有的主存容量将比实际主存容量大得多,人们把这样的存储器称为虚拟存储器。

程序在运行中所产生的缺页情况会影响程序的运行速度及系统性能,而缺页率的高低又与每个进程所占用的物理块数目有关。但是,究竟应该为每个进程分配多少个物理块才能把缺页率保持在一个合理的水平上是无法预测的,否则会因为进程频繁地从辅存请求页面而出现“颠簸”(也称抖动,现象

程序在运行时对页面的访问是不均匀的,如果能够预知程序在某段时间间隔内要访问哪些页面并能将它们提前调入主存,将会大大地降低缺页率,从而减少置换工作,提高CPU的利用率。当每个工作集都已达到最小值时,虚存管理程序跟踪进程的缺页数量,根据主存中自由页面的数量可以适当增加其工作集的大小。

虚拟存储器是具有请求调入功能和置换功能,仅把作业的一部分装入主存便可运行作业的存储器系统,是能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围来决定,其运行速度接近于主存速度,成本也有所下降。

二、设备管理

1. 设备管理概述

  • 设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为 I/O 系统。因此,I/O 系统由设备、控制器、通道(具有通道的计算机系统)、总线和 I/O 软件组成。

  • 设备的分类:

    • 按数据组织分类:块设备、字符设备。

    • 按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备。

    • 资源分配角度分类:独占设备、共享设备和虚拟设备。

    • 数据传输速率分类:低速设备、中速设备、高速设备。

  • 设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成1/0 设备与主存之间的数据交换。

  • 设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。

2. I/O软件

        I/O设备管理软件的所有层次及每一层功能如下图:

        当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。 与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O 硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次 I/O 请求。用户进程在得到了所需的硬盘文件内容之,后继续运行。

3. 设备管理技术

  • 一台独占设备,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。

  • 引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机这就是物理设备的虚拟化。如下图所示:

相关推荐

系统分析师-计算机系统-操作系统-操作系统概述&进程管理-CSDN博客文章浏览阅读382次,点赞9次,收藏6次。本文系统介绍了操作系统的核心概念,包括其定义、功能特征和分类。重点阐述了进程管理相关内容:通过前趋图和进程资源图分析任务并行与顺序关系;解析进程组成、状态转换及信号量PV操作原理;详细说明死锁产生的四个必要条件及预防/避免/检测/解除方法。同时概述了操作系统五大功能模块(处理机/存储/设备/文件管理及用户界面)和各类操作系统特性(批处理/分时/实时/网络/分布式/嵌入式系统)。文章还简要介绍了线程概念及其与进程的关系,为理解操作系统核心机制提供了系统化的知识框架。 https://shuaici.blog.csdn.net/article/details/149402159系统分析师-计算机系统-指令系统&多处理机系统-CSDN博客文章浏览阅读1.5k次,点赞41次,收藏49次。本文介绍了计算机指令系统、多处理机结构和计算机可靠性三大核心技术。指令系统部分详细解析了指令组成(操作码+操作数)、执行流程(取指-分析-执行)及寻址方式(顺序/跳跃/立即等),对比了CISC与RISC架构特点及关键技术(延迟转移/寄存器窗口等)。多处理机部分阐述了共享存储与分布式存储结构,分析了MPP、SMP等并行处理系统的特性及互连方式(总线/交叉开关等)。可靠性部分定义了MTTF、MTTR等核心指标。 https://shuaici.blog.csdn.net/article/details/149375979

http://www.dtcms.com/a/290664.html

相关文章:

  • Oracle From查看弹性域设置
  • (3)Oracle基本语法与常用函数
  • Oracle自治事务——从问题到实践的深度解析
  • 基于MySQL实现分布式调度系统的选举算法
  • CLIP与SIGLIP对比浅析
  • RuoYi配置多数据源失效
  • vscode 使用说明二
  • 前端图像视频实时检测
  • AJAX 概念与 axios 使用
  • AI探索 | 基于 Node.js 开发 MCP 客户端+服务端及优秀项目分享
  • 【华为机试】240. 搜索二维矩阵 II
  • Node.js- node管理工具nvm
  • Git上传与下载GitHub仓库
  • 新手向:基于Python的快捷启动器(本地应用/文件秒开工具)
  • 本地项目提交到git教程
  • 代码随想录算法训练营二十二天|回溯part04
  • 第十八节:第八部分:java高级:动态代理设计模式介绍、准备工作、代码实现
  • 【设计模式C#】简单工厂模式(用于简化获取对象实例化的复杂性)
  • Spring Boot注解详解
  • PDF 表单字段属性详解
  • 泛型:C#中的类型抽象艺术
  • 三款适合户外探险、应急救援的智能三防手机,各有各的优势
  • kafka 日志索引 AbstractIndex
  • Elasticsearch X-Pack安全功能未启用的解决方案
  • 模型系列(篇一)-Bert
  • 暑期算法训练.5
  • 分布在内侧内嗅皮层(MEC)的带状细胞对NLP中的深层语义分析有什么积极的影响和启示
  • [硬件电路-64]:模拟器件 -二极管在稳压电路中的应用
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 乘性季节性 Multiplicative Seasonality
  • JS实现矩阵左右旋转90度