主存和内存的区别

目录

主存和内存的区别

抛出问题

胡说八道

question 1

question 2


主存和内存的区别

抛出问题

  • 内存和主存的区别

  • 什么是磁盘IO

胡说八道

question 1

内存包括主存(内存条,基于DRAM)与高速缓存(Cache,基于SRAM)两部分。

一、定义上的区别:

  1. 主存储器(Main memory),简称主存。是计算机硬件的一个重要部件,其作用是存放指令和数据,并能由中央处理器(CPU)直接随机存取。现代计算机是为了提高性能,又能兼顾合理的造价,往往采用多级存储体系。

  2. 内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

二、功能上的区别:

  1. 主存即由存储容量小,存取速度高的高速缓冲存储器,存储容量和存取速度适中的主存储器是必不可少的。主存储器是按地址存放信息的,存取速度一般与地址无关。

  2. 只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行内存是由内存芯片、电路板、金手指等部分组成的。

question 2

转自:磁盘I/O那些事 - 美团技术团队 (meituan.com)

背景

计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的CPU主频早已超过3GHz,内存也进入了普及DDR4的时代。然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时SSD硬盘价格高昂,不能在短时间内完全替代传统硬盘。传统磁盘的I/O读写速度成为了计算机系统性能提高的瓶颈,制约了计算机整体性能的发展。

硬盘性能的制约因素是什么?如何根据磁盘I/O特性来进行系统设计?针对这些问题,本文将介绍硬盘的物理结构和性能指标,以及操作系统针对磁盘性能所做的优化,最后讨论下基于磁盘I/O特性设计的技巧。

硬盘的物理结构

硬盘内部主要部件为磁盘盘片、传动手臂、读写磁头和主轴马达实际数据都是写在盘片上,读写主要是通过传动手臂上的读写磁头来完成。实际运行时,主轴让磁盘盘片转动,然后传动手臂可伸展让读取头在盘片上进行读写操作。磁盘物理结构如下图所示:

由于单一盘片容量有限,一般硬盘都有两张以上的盘片,每个盘片有两面,都可记录信息,所以一张盘片对应着两个磁头。盘片被分为许多扇形的区域,每个区域叫一个扇区,硬盘中每个扇区的大小固定为512字节盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用。磁盘盘片垂直视角如下图所示:

磁盘用磁头来读写存储在盘片表面的位,而磁头连接到一个移动臂上,移动臂沿着盘片半径前后移动,可以将磁头定位到任何磁道上,这称之为寻道操作。一旦定位到磁道后,盘片转动,磁道上的每个位经过磁头时,读写磁头就可以感知到该位的值,也可以修改值。对磁盘的访问时间分为 寻道时间旋转时间,以及传送时间

由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,因此为了提高效率,要尽量减少磁盘I/O,减少读写操作。 为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。这样做的理论依据是计算机科学中著名的局部性原理:当一个数据被用到时,其附近的数据也通常会马上被使用。由于磁盘顺序读取的效率很高(不需要寻道时间,只需很少的旋转时间),因此预读可以提高I/O效率。

页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(1024个字节或其整数倍),预读的长度一般为页的整倍数。主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

文件系统的设计者利用了磁盘预读原理,将一个结点的大小设为等于一个页(1024个字节或其整数倍),这样每个结点只需要一次I/O就可以完全载入。那么3层的B树可以容纳102410241024差不多10亿个数据,如果换成二叉查找树,则需要30层!假定操作系统一次读取一个节点,并且根节点保留在内存中,那么B树在10亿个数据中查找目标值,只需要小于3次硬盘读取就可以找到目标值,但红黑树需要小于30次,因此B树大大提高了IO的操作效率。

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

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

相关文章

线上系统部署的时候,JVM堆内存大小是越大越好吗?

“ 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗? 先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况,不是普通的Java应用…

java 内存

java 内存 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) , VM Stack(虚拟机栈,也有翻译…

android内存显示大小不一样,对Android很重要!手机运行内存真的越大越好吗?

从去年开始,4G RAM 容量渐成 Android旗舰手机标配,甚至出现了恐怖的6GB RAM。在处理器核心数以及跑分对消费者刺激减弱的情况下,RAM 容量大小渐成 Android 手机阵营新的比拼点,那么大内存对手机运行速度有多大影响呢?手…

华为鸿蒙什么时候出12g内存,内存真是越大越好?为何华为不上12G,看完秒懂!...

苹果ios和安卓系统因为运行机制的不同,以流畅著称,安卓的卡顿那是出了名的,但是经过长期不懈的改进和软硬一体的优化,论流畅反应速度上华为已经超越了苹果。华为要悠着点,一是要控制价格,二是要控制成本&am…

鸿蒙运行内存4G手机,手机运行内存真的越大越好吗?其实你们都被忽悠了

从去年开始,4G RAM 容量渐成 Android旗舰手机标配,甚至出现了恐怖的6GB RAM。在处理器核心数以及跑分对消费者刺激减弱的情况下,RAM 容量大小渐成 Android 手机阵营新的比拼点,那么大内存对手机运行速度有多大影响呢?手…

你知道为啥给JVM分配的内存越大,结果性能越差吗?

前言 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗? 先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况,不是普通的Java应…

计算机硬盘越大运行速度越大吗,电脑的内存越大越好吗?如果只加大内存,电脑反而会被拖慢!...

科技一直在进步,电脑的部件也都在更新换代,但是为什么原来用的好好的电脑,都慢慢的变卡了呢?除了用的时间长的器件老化,还有一个原因就是软件和系统也在跟新换代,由与硬件的进步,软件和系统也都…

通常计算机的存储容量越大性能就越好吗,容量越大越好?教你正确挑选内存的姿势...

内存是计算机中重要的配件之一,是与CPU进行沟通的桥梁。主要用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。由于计算机中所有程序的运行都是在内存中进行的,因此内存的性能以及稳定运行对计算机的影响非常大。 很多用户对内…

计算机的储存容量越大性能就越好吗,内存是否越大越好

内存是大家耳熟能祥的东西,是电脑必备的配件之一,内存是否越大越好?合适的内存有助于提升电脑的性能,带给我们更畅快的体验。小编给大家科普一下内存知识吧。 电脑内存并不是越大越好,电脑的内存大小与计算机的运算速度…

是不是虚拟内存越大越好

虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用,这部分硬盘空间就叫虚拟内存。 windows 98中采用win386.swp文件的形式,而windows 2000/XP则采用页面文…

从零开始学习 Java:简单易懂的入门指南之多态(十)

多态&包&final&权限修饰符&代码块 第一章 多态1.1 多态的形式1.2 多态的使用场景1.3 多态的定义和前提1.4 多态的运行特点1.5 多态的弊端1.6 引用类型转换1.6.1 为什么要转型1.6.2 向上转型(自动转换)1.6.3 向下转型(强制转换…

【python】一文了解Python爬虫 | 文末送书

目录 引言 1. 爬虫基础知识 1.1 什么是爬虫 1.2 HTTP协议 1.2.1 HTTP请求方法 1.GET请求 1.2.2 请求头常见字段 1.2.3 响应状态码 1.3 HTML解析 1.3.1 Beautiful Soup 解析库 1.3.2 XPath xpath解析原理: xpath 表达式 2. 爬虫进阶技巧 2.1 防止被反爬虫 2.1.1 …

iphone或者ipad上安装自己打包的ipa文件

对于非ios开发者来说,这确实是一个问题,但我懂的也不多,也是抱着试试的态度安装了下,之前我以为安装ipa和在安卓手机上安装apk一样,qq或者微信传文件下载点击就可以安装了,但这个ipa如果在iphone上这样做&a…

误删库后的恢复方法分享

省流助手:项目代码中实现定时备份功能 写在前面:项目使用的是docker发布、下午相关同事反馈题库同步功能用不了了有报错,查看服务器这个项目发布的版本发现有段时间没更新了,所以当时想的会不会因为jar包没有更新,于是…

达梦数据库的备份、还原和恢复

一、备份、还原和恢复的意义 备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。还原与恢复的主要目的是将目标数据库恢复到备份结束时刻的状态。 二、备份的方式 物理备份…

PhoneRescue for Mac(iOS数据恢复软件)

一款帮助用户恢复手机数据的Mac手机助手,PhoneRescue for mac是个包罗万象的iOS数据恢复程序设计用于检索您丢失的照片,音乐和更多的信息,在您的iPhone,ipad和iPod-touch上进行数据恢复。 PhoneRescue mac版安装教程 软件下载完成…

Gitlab 数据备份和还原(填坑版)

此文章适用于因更换服务器或者 gitlab 安装方式变更&#xff08;普通方式 <> docker&#xff09;进行数据迁移&#xff0c;或者日常备份还原。 前提条件&#xff1a;备份和还原的 gitlab 版本一致&#xff01; gitlab 版本查看命令&#xff1a;gitlab-rake gitlab:env:…

iOS设备数据恢复工具:UltData mac中文版

Tenorshare UltData Mac版是一款非常优秀的iOS数据恢复工具。Tenorshare UltData为您提高了3种恢复模式&#xff0c;能够在几秒钟内找回您想要的所有数据信息&#xff0c;您从此就不用担心会丢失重要信息的问题。不仅如此&#xff0c;ultdata中文版还可以对各种iOS系统问题修复…

cs231nassignment2 q4 Convolutional Neural Networks

文章目录 嫌啰嗦直接看源码Q4 Convolutional Neural Networks 卷积神经网络conv_forward_naive题面解析代码输出 conv_backward_naive题面解析代码输出 max_pool_forward_naive题面解析代码输出 max_pool_backward_naive题面解析代码输出 Fast Layers遇到的问题解决办法输出 Th…

Mac中Jmeter下载与安装

Step 1:下载 1、下载网址&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 2、选择Binaries中的 apache-jmeter-5.1.tgz 进行下载&#xff08;binaries编译好的二进制压缩包&#xff1b;source为源码压缩包&#xff09; 3、下载完成后&#xff0c;双击压缩包进行解压…