计算机的主存储器与辅助存储器

文章目录

  • 前言
  • 一、主存储器(内存)
    • 1.主存储器特征
    • 2.主存储器构成
    • 3.主存储器和CPU如何交互
    • 4.主存储器和操作系统位数的关系
  • 二、辅助存储器(磁盘)
    • 1.辅助存储器构成
    • 2.辅助存储器特征
    • 3.磁盘的调度算法
      • 3.1先来先服务算法
      • 3.2最短寻道时间优先算法
      • 3.3扫描算法(电梯算法)
      • 3.4循环扫描算法


前言

今天给大家介绍计算机的主存储器辅助存储器,也就是我们所说的主存辅存主存一般就是指内存,辅存指的就是磁盘。在正式介绍之前,大家可以思考两个问题:为什么计算机断电,内存数据会丢失?为什么计算机断电,磁盘数据不会丢失?这两个问题贯穿我们今天要介绍的全部内容。


一、主存储器(内存)

主存储器也就是内存,长相如下图所示,左边的是台式机的内存,右边是笔记本的内存:

在这里插入图片描述

1.主存储器特征

主存储器特征如下:

  • 它属于RAM(随机存取存储器:Random Access Memory)类型
  • RAM通过电容存储数据,必须隔一段时间刷新一次
  • 如果掉电,那么一段时间后将丢失所有数据

2.主存储器构成

主存储器构成如下图所示,包含有半导体存储器、驱动器、译码器、读写电路、控制电路五部分:

在这里插入图片描述

3.主存储器和CPU如何交互

主存储器和CPU是怎么交互的呢?对于CPU来说,它里面有一个主存数据寄存器(MDR),该寄存器通过数据总线和读写电路进行连接。同时,在CPU里面还有一个主存地址寄存器(MAR),这个部分通过地址总线和内存进行连接。因为有数据总线和地址总线的存在,CPU就可以通过地址总线来指定数据的位置,通过数据总线来传输相关的数据。示意图如下所示:

在这里插入图片描述

4.主存储器和操作系统位数的关系

主存储器和操作系统位数也有关系,我们平时所说的32位系统以及64位系统,不同位数的系统对内存的支持也是不一样的。比如说:32位系统最多只能支持4GB的内存(2^32 = 4 x 2^30 = 4GB),也就是说在32位系统里面,即使加更多的内存也是没有用的,它最多只能支持4GB的内存。因为对32位系统来说,它的地址总线只有32位,所以呢,它的寻址范围最多就是4GB的大小;而对于64位系统,它所能支持的内存是(2^64 = 2^34 x 2^30 = 2^34GB),这是非常大的数值了,这就是操作系统位数与主存储器的关系。

二、辅助存储器(磁盘)

辅助存储器也叫磁盘,长相如下图所示:

在这里插入图片描述

1.辅助存储器构成

辅助存储器主要由两部分组成:图中右边光滑的盘片和左边的磁头(也叫悬臂),盘片是利用磁材料存储数据,磁头通过左右移动来读取特定磁道里面的信息。磁盘的立体结构如下图所示:

在这里插入图片描述

图中盘片就是使用磁材料存储数据的,磁道可以理解为盘片一周的内容,扇区可以理解为磁道里面的一部分内容。

接下来我们来看盘片的平面图如下:

在这里插入图片描述

图中绿色的一圈我们称为磁道,而磁道的一部分我们称为扇区。除了磁道和扇区以外,我们平时在描述一个磁盘的时候,还关注磁头位置,来描述磁头当前是位于哪个磁道的。同时还有磁头方向,比如是往里走还是往外走的。

2.辅助存储器特征

辅助存储器特征如下:

  • 表面是可磁化的硬磁性材料
  • 移动磁头径向运动读取磁道信息

3.磁盘的调度算法

了解了磁盘的物理结构和特征之后,我们重点来看看磁盘的调度算法,总共有4种:

  • 先来先服务算法
  • 最短寻道时间优先
  • 扫描算法(电梯算法)
  • 循环扫描算法

为了方便介绍这几种算法,我们把盘片的磁道图中最外面的一圈称为磁道1,把最里面的一圈称为磁道5,如下图所示:

在这里插入图片描述

假设现在磁头在磁道4,并且磁头方向向外现在需要读取磁道:1 4 2 3 1 5。要完成整个读取过程分别按照上面的4种算法是怎么读取的呢?我们逐一看看。

3.1先来先服务算法

先来先服务算法是按顺序访问进程的磁道读写需求,这个算法就是对于多个读写磁盘的请求,将这些请求排成队。谁先来我就先服务谁,可以说是粗暴简单的一种方法。

如果使用先来先服务算法来完成上面的案例,过程是这样的:首先调度读取第1个磁道,这个时候磁头会从第4个磁道移向第1个磁道,接着将会读取第4个磁道,然后读取第2个磁道,接着读取第3个磁道,然后读取第1个磁道,最后再读取第5个磁道,这就是先来先服务算法的过程。

在这里插入图片描述

3.2最短寻道时间优先算法

最短寻道时间优先算法调度的顺序与磁头当前位置有关,它将会优先访问离磁头最近的磁道,还是以刚才的例子来说明该算法的调度过程。

过程是这样的:首先将会读取第4个磁道,因为当前磁头就是位于磁道4的,所以按照最短寻道时间优先的判断,首先读取第4个磁道,接着读取第5个磁道还是第3个磁道呢?5和3都是与4相邻,这里我们假设读取的是第5个磁道,剩下的就只有1、2、3、1这几个磁道了,按照最短寻道时间优先,接着读取第3个磁道,然后是读取第2个磁道,最后才是读取第1个磁道,读取两次。这就是最短寻道时间优先算法,这个算法每次都是找到当前磁头最近的这个磁道去读取。

在这里插入图片描述

3.3扫描算法(电梯算法)

扫码算法本质上和电梯的调度算法是一致的, 故而又称为电梯算法,该算法特征如下:

  • 磁头每次只往一个方向移动(比如磁头有内往外或者由外往内,一次只往一个方向移动)
  • 到达一个方向需要服务的尽头再反方向移动

以刚才的例子来说明扫描算法的过程,是这样的:磁头首先读取第4个磁道,因为当前磁头位于4磁道,且方向向外,所以接着读取第3个磁道,接着读取第2个磁道,接着读取第1个磁道,接着还是读取第1个磁道,接下来因为到了一个方向服务的尽头了,所以这时候磁头反方向运动,变为由外往内移动,所以再读取第5个磁道,这就是使用扫描算法调度得到的结果。

在这里插入图片描述

3.4循环扫描算法

因为上述扫描算法其实并不公平,所以在扫描算法的基础上就提出了循环扫描算法。与扫描算法不一样的是:循环扫描算法读取的时候只往一个方向读取,到了尽头也不会调转方向,而是从尽头的另一边起始磁道重新继续朝这个方向读取

还是以刚才的例子来说,只是稍作变化,这里假设默认磁头方向是从外往内,那么读取的过程是:首先读取第4个磁道,接着由外往内读取第5个磁道,到了第5个磁道就到了尽头,因此会把磁头移动到另一边的最开始的第1个磁道里面,所以接下来会读取第1个磁道,接着读取第1个磁道,然后读取第2个磁道,最后是第3个磁道。

在这里插入图片描述

循环扫描算法相对于扫描算法就会比较公平,这里需要区分的是:循环扫描算法只能往一个方向读取,而扫描算法读取的时候可以两个方向的读取

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

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

相关文章

错误:ERROR Cannot read properties of null (reading ‘type‘)

ERROR Cannot read properties of null (reading ‘type’) TypeError: Cannot read properties of null (reading ‘type’) <template><el-card><el-row :gutter"20" class"header"><el-col :span"7"><el-input pl…

大厂面试题-innoDB如何解决幻读

从三个方面来回答&#xff1a; 1、Mysql的事务隔离级别 Mysql有四种事务隔离级别&#xff0c;这四种隔离级别代表当存在多个事务并发冲突时&#xff0c;可能出现的脏读、不可重复读、幻读的问题。 其中InnoDB在RR的隔离级别下&#xff0c;解决了幻读的问题。 2、什么是幻读&…

Java前后端分离的在线考试系统源码

Java前后端分离的在线考试系统源码 技术栈 1&#xff0c;SpringBoot 2&#xff0c;Mybatis-plus 3&#xff0c;MySQL 5.7 4&#xff0c;Vue全家桶 5&#xff0c;ElementUI 6&#xff0c;Redis 7&#xff0c;Swagger 8&#xff0c;阿里云OSS 9&#xff0c;Log4j 考…

2023 electron最新最简版windows、mac打包、自动升级详解

这里我将讲解一下从0搭建一个electron最简版架子&#xff0c;以及如何实现打包自动化更新 之前我有写过两篇文章关于electron框架概述以及 常用api的使用&#xff0c;感兴趣的同学可以看看 Electron桌面应用开发 Electron桌面应用开发2 搭建electron 官方文档&#xff1a;ht…

Temu新规定强制要求卖家上传英代、欧代信息——站斧浏览器

根据官方消息&#xff1a;自10月15日起&#xff0c;Temu要求所有在欧洲站点销售的电子产品包装标识上都要加上英代和欧代信息&#xff0c;否则产品可能会被拒收。因此&#xff0c;欧洲站的卖家要抓紧时间完成欧代、英代合规&#xff0c;以免造成损失。 同时&#xff0c;近日Tem…

uboot启动linux kernel的流程

目录 前言流程图autoboot_commandrun_command_listdo_bootmdo_bootm_statesdo_bootm_linuxboot_prep_linuxboot_jump_linux 前言 本文在u-boot启动流程分析这篇文章的基础上&#xff0c;简要梳理uboot启动linux kernel的流程。 流程图 其中&#xff0c; autoboot_command位于…

苹果Mac电脑fcpx视频剪辑:Final Cut Pro中文最新 for mac

Final Cut Pro是苹果公司开发的一款专业视频剪辑软件&#xff0c;它为原生64位软件&#xff0c;基于Cocoa编写&#xff0c;支持多路多核心处理器&#xff0c;支持GPU加速&#xff0c;支持后台渲染。Final Cut Pro在Mac OS平台上运行&#xff0c;适用于进行后期制作。 Final Cu…

应用场景 | 中小河流治理监测系统,提升流域智能感知能力

当前&#xff0c;受全球气候变化和人类活动影响&#xff0c;我国中小河流洪涝灾害呈多发、频发趋势&#xff0c;中小河流洪水已成为严重威胁人民群众生命财产安全的重大风险隐患。中小河流治理作为一项重要的民生水利任务&#xff0c;近十年来国家不断加大以防洪为主的治理投入…

预处理、编译、汇编、链接

1.预处理 宏替换去注释引入头文件 2.编译 3.汇编 4.链接 gcc 基于C/C的编译器 补充说明 gcc命令 使用GNU推出的基于C/C的编译器&#xff0c;是开放源代码领域应用最广泛的编译器&#xff0c;具有功能强大&#xff0c;编译代码支持性能优化等特点。现在很多程序员都应用…

2023数学建模国赛C题赛后总结

今天国赛的成绩终于出来了&#xff0c;盼星星盼月亮的。之前面试的时候已经把我给推到国奖评委那里去了&#xff0c;可是好可惜&#xff0c;最终以很微小的劣势错失国二。只拿到了广西区的省一。我心里还是很遗憾的&#xff0c;我真的为此准备了很久&#xff0c;虽然当中也有着…

如何对非线性【SVM】进行三维可视化

首先导入相应的模块&#xff0c; from sklearn.datasets import make_blobs from sklearn.svm import SVC import matplotlib.pyplot as plt import numpy as np 我们使用make_circles()函数创建散点图&#xff0c;并将散点图中的点的横纵坐标赋值给x,y&#xff0c;其中x是特…

golang工程中间件——redis常用结构及应用(string, hash, list)

Redis 命令中心 【golang工程中间件——redisxxxxx】这些篇文章专门以应用为主&#xff0c;原理性的后续博主复习到的时候再详细阐述 string结构以及应用 字符数组&#xff0c;redis字符串是二进制安全字符串&#xff0c;可以存储图片等二进制数据&#xff0c;同时也可以存…

4、Python基本数据类型:数字、字符串、列表、元组、集合、字典

文章目录 1、Python基本数据类型简介2、数字3、字符串4、列表5、元组6、集合7、字典1、Python基本数据类型简介 Python是一种非常强大且易于学习的编程语言,它具有简洁的语法和丰富的数据类型。了解和掌握Python的基本数据类型是学习和使用Python的基础。本文将详细介绍Pytho…

react-app-env.d.ts是什么?

react-app-env.d.ts这个文件是使用CRA脚手架生成react项目时自动生成的&#xff0c;在平时的开发过程中看到这个文件就会感觉很疑惑&#xff0c;出于好奇心&#xff0c;在网上查找资料&#xff0c;得出下文 前置知识 这个是一个类型声明文件 它的内容很短&#xff0c;就一行…

ZYNQ_project:led

本次实验完成&#xff1a;led流水间隔0.5s 闪烁间隔0.25s。 名词解释&#xff1a; analysis分析&#xff1a;对源文件进行全面的语法检查。 synthesis综合&#xff1a;综合的过程是由 FPGA 综合工具箱 HDL 原理图或其他形式源文件进行分析&#xff0c;进而推演出由 FPGA 芯…

Blender vs 3ds Max:谁才是3D软件的未来

在不断发展的3D建模和动画领域&#xff0c;两大软件巨头Blender和3ds Max一直在争夺顶级地位。 随着技术的进步和用户需求的演变&#xff0c;一个重要问题逐渐浮出水面&#xff1a;Blender是否最终会取代3ds Max&#xff1f;本文将深入探讨二者各自的优势和劣势、当前状况&…

linux命令screen解决client_loop: send disconnect: Broken pipe

一、SSH连接服务器&#xff0c;client_loop: send disconnect: Broken pipe 最近需要在服务器上运行一个需要跑很久的脚本&#xff0c;但ssh连接的远程服务器的命令窗口经常会报&#xff1a;client_loop: send disconnect: Broken pipe&#xff0c;这个错误是ssh 命令之后没有活…

python图像处理 ——图像分块

python图像处理 ——图像分块 前言一、分块与合并1.读取原始图像2.网格划分&#xff0c;将图像划分为m*n块3.网格合并 二、代码 前言 根据图像尺寸创建一个 ( m 1 ) ( n 1 ) 个均匀的网格顶点坐标&#xff0c;对于图像块来说每个图像块的左上角和右下角可以唯一确定一个图像…

react+canvas实现横跨整个页面的动态的波浪线(贝塞尔曲线)

本来写这个特效 我打算用css实现的&#xff0c;结果是一波三折&#xff0c;我太难了&#xff0c;最终没能用css实现&#xff0c;转战了canvas来实现。来吧先看效果图 当然这个图的波浪高度、频率、位置、速度都是可调的&#xff0c;请根据自己的需求调整&#xff0c;如果你讲波…

前端框架Vue学习 ——(六)Vue组件库Element

文章目录 Element 介绍快速入门常见组件表格分页Dialog 对话框组件表单 Container 布局容器 Element 介绍 Element&#xff1a;是饿了么团队研发的&#xff0c;一套为开发者、 设计师和产品经理准备的基于Vue 2.0的桌面端组件库。 组件&#xff1a;组成网页的部件&#xff0c;…