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

关于 硬盘

关于 硬盘

    • 1. 机械硬盘
      • 1.1 基本概念
      • 1.2 工作原理
      • 1.3 寻址方式
      • 1.4 磁盘磁记录方式
    • 2. 固态硬盘
      • 2.1 基本概念
      • 2.2 工作原理

1. 机械硬盘

1.1 基本概念

机械硬盘即是传统普通硬盘,硬盘的物理结构一般由磁头盘片电动机主控芯片排线等部件组成。

所有的数据都是存储在盘片中的,盘面物理上讲就是一个铝合金或者玻璃盘子,上面涂一层磁性材料,然后上面覆盖一层润滑保护涂层。

磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取。硬盘作为精密设备,尘埃是其大敌,所以进入硬盘的空气必须过滤。

机械硬盘内部的实物结构
在这里插入图片描述
机械硬盘内部的逻辑结构
在这里插入图片描述
基本概念

  • 磁头(Heads):每张盘片(磁片)的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头就可以表示数据在哪个磁面。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。 如下图
    在这里插入图片描述
    在这里插入图片描述

  • 盘片和盘面:硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上计算面数。依次为0、1(底部盘片的两面),再上一个盘片的面编号为2和3。
    在这里插入图片描述
    在这里插入图片描述

  • 磁道(Track):当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。资料存储手段从LMR进展到PMR这中又有CMR、SMR等技术。
    在这里插入图片描述

  • 柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。因为磁头都是绑定在一起移动的,所以才会有柱面的结构,机械硬盘的读取数据都是按照柱面来进行的。
    在这里插入图片描述

  • 扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。硬盘的第一个扇区,叫做引导扇区。

    读取和写入数据的时候,磁盘会以扇区为单位进行读取和写入数据,即使电脑只需要某个扇区内的几个字节的文件,也必须一次把这几个字节的数据所在的扇区中的全部512字节的数据全部读入内存,然后再进行筛选所需数据。

    为什么要进行扇区的划分呢?
    是逻辑化数据的需要,能更好的管理硬盘空间。在计算机磁盘存储中,扇区是磁盘或光盘上磁道的细分,硬盘的最小存储单元。机械硬盘的CHS寻址方式和LBA寻址方式,都需要借助于扇区才能找到实际的存储地址。

    • 早期的硬盘每磁道扇区数相同,由于每磁道扇区数相同,外圈磁道半径大,里圈磁道半径小,外圈和里圈扇区面积自然会不一样。这样就是造成了外圈的密度比内圈小,会浪费大量的存储空间。
    • 如今的硬盘都使用ZBR(Zoned Bit Recording,区位记录)技术,盘片表面由里向外划分为数个区域,不同区域的磁道扇区数目不同,同一区域内各磁道扇区数相同,盘片外圈区域磁道长扇区数目较多,内圈区域磁道短扇区数目较少,大体实现了等密度,从而获得了更多的存储空间。

    在这里插入图片描述
    外侧的扇区数量比较多,那就意味着外侧数据的读取,能够有更高的读写速度了。

一些重要标准

  • 主轴转速:硬盘的主轴转速是决定硬盘内部数据传输率的决定因素之一,它在很大程度上决定了硬盘的速度,同时也是区别硬盘档次的重要标志。硬盘转速以每分钟多少转来表示,单位表示为RPM,RPM是Revolutions Per minute的缩写,是转/每分钟。RPM值越大,内部传输率就越快,访问时间就越短,硬盘的整体性能也就越好。家用的普通硬盘的转速一般有5400rpm、7200rpm几种,高转速硬盘也是现在台式机用户的首选;而对于笔记本用户则是4200rpm、5400rpm为主,虽然已经有公司发布了7200rpm的笔记本硬盘,但在市场中还较为少见;服务器用户对硬盘性能要求最高,服务器中使用的SCSI硬盘转速基本都采用10000rpm,甚至还有15000rpm的,性能要超出家用产品很多。
  • 寻道时间:该指标是指硬盘磁头移动到数据所在磁道而所用的时间,单位为毫秒(ms)。
  • 硬盘表面温度:该指标表示硬盘工作时产生的温度使硬盘密封壳温度上升的情况。
  • 道至道时间:该指标表示磁头从一个磁道转移至另一磁道的时间,单位为毫秒(ms)。
  • 高速缓存:该指标指在硬盘内部的高速存储器。目前硬盘的高速缓存一般为512KB~2MB,SCSI硬盘的更大。购买时应尽量选取缓存为2MB的硬盘。

1.2 工作原理

机械硬盘在工作的时候,磁头会悬浮于磁盘面上方几纳米的距离。磁盘面上有很多的小格子,小格子内有很多的小磁粒。

这些磁盘上的磁粒有一定的极性,当磁粒极性朝下的时候记为0,磁粒极性朝上的时候记为1,这样磁头就可以通过识别磁盘磁粒的极性读取数据了。

而磁头也可以利用其变化的磁场改变磁盘磁粒的极性,这样就做到写入和改写磁盘数据了。

在这里插入图片描述
在这里插入图片描述
所以,一般读取数据都会比写入快

1.3 寻址方式

我们知道机械硬盘中划分了,磁道和扇区已经柱面,那么一个当一个数据被写入到盘面中,下次的读取如何定位到盘片中具体的位置呢?

为了在硬盘中写入或读取数据,磁盘的每一个存储单元(扇区)都必须是一个固定的地址。对于机械硬盘而言,有两种地址编号方式,对应两种寻址方式:

  • CHS寻址方式;
  • LBA寻址方式。
  • CHS寻址方式
    之前的机械硬盘,盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的CSH 3D参数 (Disk Geometry)。即磁头数(Heads),柱面数(Cylinders),扇区数(Sectors),以及相应CHS寻址方式。

    CHS寻址方式是过去采用的一种方式,也就是用柱面(Cylinder)/磁头(Head)/扇区(Sector)三个参数来定位一个唯一的扇区地址。

    需要存储每个区域的三个参数(这称为3D参数),使用时再分别读取三个参数,然后在送到磁盘控制器去执行。

    随着硬盘技术的进步,硬盘容量越来越大,CHS模式无法管理超过8064 MB的硬盘,因此工程师们发明了更加简便的LBA寻址方式。

  • LBA寻址方式
    LBA寻址方式是一种线性寻址模式,这种模式下,不需要考虑磁盘的物理结构,直接将磁盘上的所有扇区依次从“0”开始进行编号,直到磁盘的最大扇区数减1。

    它把机械硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了 烦琐的磁头/柱面/扇区的寻址方式。在访问硬盘时,由硬盘控制器在这种逻辑地址转换为实际硬盘的物理地址。

    例如:数据存放在磁盘的第五磁道的第七扇区上:
    在这里插入图片描述
    那磁头就会先摆动到第五磁道上空,然后等待第七扇区转过来。当第七扇区转到磁头下面的时候,才可以读取数据。

1.4 磁盘磁记录方式

磁盘上是磁性物质,通过写磁头写入数据,通过读磁头,读取数据。提高磁盘的密度,可以提高磁盘的存储容量。磁头分为写磁头和读磁头,写磁头因为其自身体积限制没办法做到和读取磁头一样大,所以写入数据磁头会比读取磁头大很多。

垂直磁记录(PMR)
PMR,也称为常规磁记录(CMR),通过将代表数据位的磁性元素的磁极与磁盘表面垂直对齐来工作。磁道并排写入,不重叠。由于写入磁头通常大于读取磁头,因此HDD制造商会尽量缩小写入磁头的大小。
在这里插入图片描述
使用PMR技术,除了磁道和磁道之间的空格,同时写磁头比读磁头宽,加上读写磁头的宽度差值,造成了磁盘中有很多空间被浪费了。所以引入了SMR叠瓦式磁盘技术

叠瓦式磁性记录(SMR)
SMR是PMR的延伸,可提供更高的面密度。 SMR不会将每个磁道重叠写入,而是将每个新磁道与之前写入磁道的一部分重叠,非常像屋面瓦。通过重叠磁道,写入磁头会变得更薄,从而提高面密度。

在这里插入图片描述
通过磁道的叠加,使得磁盘中可以容纳更多的磁道了,从而提高了存储面密度,进而降低了磁盘单位存储容量的成本。

性能对比
但是使用SMR叠瓦式磁盘技术的磁盘没有使用PMR技术的磁盘性能好,为什么呢?这里来分析下。
叠瓦式通过磁道的叠加增加了磁道的密度,读磁头因为小是不影响的,但是因为写磁头比较宽,在写入数据的时候会出现下面两种情况:

  1. 第一次写入数据的时候,会写入相同的数据到叠加的两条磁道中,后面的磁道需要写入的时候,就需要把自己磁道中的内容擦除,然后写入;
  2. 修改数据,如果需要修改中间磁道中的数据,会影响到后一条磁道的数据,只有先将后一条磁道数据取出来暂时放入缓存中,等数据修改完成,再将缓存的信息重新写入磁道中。

所以这样看下来,叠瓦式硬盘相比垂直式硬盘性能差不少。

叠瓦式硬盘主要的表现是数据写入性能,尤其是频繁擦写硬盘的数据,或者碎片化文件写入时候,会出现速度慢,还有可能出现突发性的掉速,严重的突发性掉速就会造成系统死机或者游戏卡死的问题。此外,叠瓦式硬盘由于改变了磁道的分布方式,因为叠瓦式擦除+覆写数据的操作需要磁头写入两次数据,需要先擦掉然后再写入,这样一来无疑是增加了硬盘的负载,让硬盘在工作的时候噪音变大,其寿命也会受到一定影响。

所以大家之后选硬盘的时候,需要注意这一点,选PMR技术的机械硬盘性能肯定是更好的。

2. 固态硬盘

固态硬盘(Solid State Drive),简称SSD(固盘),是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)以及缓存单元组成。区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。
在这里插入图片描述

2.1 基本概念

一般固态硬盘由三大块主控芯片、闪存颗粒、缓存单元构成。
在这里插入图片描述
在这里插入图片描述
主控芯片
又称主控晶片,主控制器芯片。类似电脑中 cpu 一样,该模块也是固态硬盘的核心器件。作用主要有下面几个:

  1. 负责协调整个SSD的程序运作、数据调度包括平衡闪存颗粒的平均损耗等,直接决定了一块固态硬盘的性能高低;
  2. 当数据由接口传输至SSD时,要经由主控芯片中转至闪存颗粒进行存储;
  3. 主控芯片的一个重要功能就是在需要的时候通过启动固件算法,执行错误校正码、坏块管理、垃圾回收算法等等重要任务。

闪存颗粒

闪存是一种电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead Only Memory,EEPROM),具有非易失、读写速度快、抗震、低功耗、体积小等特性,目前己广泛应用于嵌入式系统、航空航天、消费电子等领域。

闪存存储器主要分为NOR型和NAND型两种:

  • NOR型闪存有独立的地址线和数据线,它支持按位进行访问,具有高可靠性且随机读取速度较快,但NOR闪存的擦除和写操作速度较慢、容量小、价格昂贵,主要用于存储程序代码并在内存中直接运行。NOR闪存在手机上得到了广泛的应用。
  • NAND闪存相对于NOR型闪存拥有更大的容量,适合进行数据存储。

闪存颗粒负责数据的存储,在固态硬盘里面,闪存颗粒则替代了机械磁盘成为了存储单元。一般使用非易失性存储器作为闪存颗粒(在断电情况下仍能保持所存储的数据信息),在固态硬盘中,NAND闪存因其具有非易失性存储的特性,即断电后仍能保存数据,被大范围运用。

根据NAND闪存中电子单元密度的差异,可以分为SLC(单层次存储单元)、MLC(双层存储单元),TLC(三层存储单元)以及QLC(四层式存储),这四种存储单元在寿命以及造价上有着明显的区别。

  • SLC(单层式存储)为单层电子结构,写入数据时电压变化区间小,寿命长,读写次数在10万次以上;造价高,多用于企业级高端产品;
  • MLC(多层式存储)使用高低电压构建的双层电子结构,寿命长,价格中等,多用于民用高端产品,读写次数在5 000次左右,相比SLC写入速度和次数减少了,控制芯片采取磨损均衡算法以满足长时间使用的要求;
  • TLC(三层式存储)是MLC闪存延伸存储密度最高(达3 bit/cell),容量是MLC的1.5倍,造价成本低,使命寿命也低,读写次数在1 000~2 000次左右。TLC是当下主流厂商首选闪存颗粒。
  • QLC(四层式存储)存储密度最高(达4 bit/cell),容量是MLC的2倍,造价成本最低,使命寿命也是最低,读写次数仅为100-300次左右。目前绝大部分定位低端的固态硬盘都采用的这个颗粒类型。

在这里插入图片描述
缓存单元
缓存芯片主要是进行常用文件的随机性读写,以及碎片文件的快速读写。

由于固态硬盘内部的磨损机制,就导致固态硬盘在读写小文件和常用文件时,会不断进行数据的整块的写入缓存,然而导出到闪存颗粒,这个过程需要大量缓存维系。特别是在进行大数量级的碎片文件的读写进程,高缓存的作用更是明显。

这也解释了为什么没有缓存芯片的固态硬盘在用了一段时间后,开始掉速。

2.2 工作原理

Nand Flash表示的是 Flash 颗粒,SSD 控制器通过若干个主控通道并行操作这些 Flash 颗粒,就像 raid0 一样,这样可以提高数据写入的并行性及效率。每一个 Flash 颗粒又进一步细分为多个 block (块),每一个 block 又包含多个 page,在 SSD 内部,SSD 控制器和 Flash 之间的最小访问单元粒度是 page。一般一个 page 的大小为4 k,一个 block 包括16个 page。在写入数据的时候,像 raid0 的工作机制一样,同时并行地将数据写入到每个 Flash 颗粒的 block 中可用的 page 上,当一个 block 写满之后会接着写下一个 block。
在这里插入图片描述
闪存最基础的结构:浮栅晶体管
固态硬盘存储数据的基本单元叫浮栅晶体管,基本结构有:存储电子的浮栅层,控制极G、衬底P、源极D与漏极S。
在这里插入图片描述
我们将浮栅层中的电子数量高于一定值计为0,低于一定值计为1。
在这里插入图片描述
写入数据
写入数据时,需要在控制极G施加一个高压,这样电子就可以穿过隧穿层,进入浮栅层,因为有绝缘层的存在,电子不能再向前移动了,就被囚禁在了浮栅层。
在这里插入图片描述
这样,当我们写完数据撤去电压,电子就被囚禁在了浮栅层,因为隧穿层本质上也相当于绝缘体,所以电子就被保存在了浮栅层,这样我们的数据就被写入进去了。

但是这些电子,还是会存在越狱的情况,如果里面所有的电子都越狱了,也就意味着我们保存的数据丢失了。作为固态硬盘的存储单元的NAND flash不通电时间长了会导致数据丢失。

读取数据
如果浮栅层中没有数据,我们给控制级一个低压,由于电压低,电子只能被吸引到靠近隧穿层的位置,却无法穿过隧穿层,因而源极漏极可以导通,形成电流。

如果检测到电流,就说明里面没有电子,本次读取数据记为1。
在这里插入图片描述
当浮栅层中存在电子时(存储数据为0),我们还给控制极一个低压,由于浮栅层里面的电子对这些电子有排斥作用,所以电子无法被吸引到靠近隧穿层的位置,源极漏极不会导通,不会形成电流。

如果无法检测到电流,那么说明浮栅层储存一定量电子,则读取数据为0。
在这里插入图片描述
这样通过浮栅层是否有电子,我们就能读出两种数据。大量的浮栅晶体管堆叠在一块就可以存储大量的0和1,这样就可以满足我们的存储和读取的要求了。

相关文章:

关于 硬盘

关于 硬盘 1. 机械硬盘1.1 基本概念1.2 工作原理1.3 寻址方式1.4 磁盘磁记录方式 2. 固态硬盘2.1 基本概念2.2 工作原理 1. 机械硬盘 1.1 基本概念 机械硬盘即是传统普通硬盘,硬盘的物理结构一般由磁头与盘片、电动机、主控芯片与排线等部件组成。 所有的数据都是…...

Java反射实体组装SQL

之前在LIS.Core定义了实体特性,在LIS.Model给实体类加了表特性,属性特性,外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类&#xff0c…...

tensorrt安装使用教程

一般的深度学习项目,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深…...

Java后端开发(十)-- idea(2022版)将 已push 的 远程仓库 的 多条commit记录 进行撤销

目录 1.多次 修改Test01类后,提交到本地仓库 。 2.多次重复 1 的步骤,多次commit成功后,在Git =》Log中会显示,commit记录...

常见面试题-Netty专栏(一)

typora-copy-images-to: imgs Netty 是什么呢?Netty 用于做什么呢? 答: Netty 是一个 NIO 客户服务端框架,可以快速开发网络应用程序,如协议服务端和客户端,极大简化了网络编程,如 TCP 和 UDP …...

【iOS】JSONModel的基本使用

文章目录 前言一、导入JSONModel二、JSONModel的基本使用1.基本用法2.模型集合3.模型导出为NSDictionary或JSON4.设置所有属性可选(所有属性值可以为空)5.下划线(蛇式)转驼峰命名法 前言 JSONModel 是一个用于 Objective-C 的开源库,它用于简…...

imu预积分学习(更新中)

imu预积分学习(更新中) IMU预积分可以做什么? 以上面那个经典图片为例子,IMU可以通过六轴数据,拿到第i帧和第j帧之间的相对位姿,这样不就可以去用来添加约束了吗 但是有一个比较大的问题是: I…...

算法刷题-链表

算法刷题-链表 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]…...

Linux 挂载磁盘到指定目录

问题:公司分配了数据磁盘,但是分区也没有挂载到目录 首先 df -h 查看一下挂载点的情况 查看服务器上未挂载的磁盘 fdisk -l 注:图中sda、sdb (a、b指的是硬盘的序号) 分区操作 我们可以看到b硬盘有536G未分区&…...

ZYNQ linux调试LCD7789

一,硬件管脚 1,参数解释和实物 LVGL是一个开源的图形库,主要用于MCU上屏幕UI的部署,功能完善,封装合理,可裁切性强,也可以实现Linux上fbx的部署。LVGL官网LVGL - Light and Versatile Embedded Graphics Library 每根线的作用...

【双向链表的插入和删除】

文章目录 双向链表双向链表的插入双向链表的删除操作 双向链表 双向链表的结构定义如下: //双向链表的结构定义 typedef struct DuLNode {ElemType data;struct DuLNode* prior, * next; }DuLNode,*DuLinkList;双向链表的结点有两个指针域:prior&#…...

【Android知识笔记】Webview专题

WebView 核心组件 类名作用常用方法WebView创建对象加载URL生命周期管理状态管理loadUrl():加载网页 goBack():后退WebSettings配置&管理 WebView缓存:setCacheMode() 与JS交互:setJavaScriptEnabled()WebViewClient处理各种通知&请求事件should...

Leetcode第 368 场周赛

元素和最小的山形三元组 II 预处理前缀和后缀最小值,记为pre[i]和sa[i] 对于当前编号i,如果前面的最小值和后面的最大值都小于nums[i],则记录ans[i] nums[i]pre[i-1]sa[i1] 结果输出最小的ans[i]即可。 合法分组的最少组数 统计每一个数字出现的次数。将每一个数…...

Mysql数据库 3.SQL语言 DML数据操纵语言 增删改

DML语句:用于完成对数据表中数据的插入、删除、修改操作 一.表数据插入 插入数据语法: 步骤例: 1.声明数据库:use 数据库名; 2.删除操作:drop table if exists 表名; 3.创建数据库中的表:create table 表…...

Java中,如何去掉字符串中前面所有的0

大家好,我是三叔,这期主要给大家分享下在开发中使用的字符串的一些常见方法。 例如:00000000110,现在需要去掉前面所有补的0,得到110,相信大家在开发中肯定有遇到过类似的开发需求,如何做&…...

数组能开空间大小

奈何辰星无可奈_leetcode,中等难度,算法-CSDN博客 这个博客介绍的很好,可以参考下...

Python 数据类 - dataclass 的作用与不足

https://docs.python.org/zh-cn/3/library/dataclasses.html https://peps.python.org/pep-0526/ https://peps.python.org/pep-0557/ dataclass 简单示例 from dataclasses import dataclassdataclass class User:name: strage: intif __name__ __main__:response_json {na…...

【C++初阶】类与对象(一)

目录 1、初识面向对象思想2、类 struct2.1 C中的struct及使用 3、类 class3.1 类的定义3.2 类的访问限定符3.2.1 访问限定符是什么3.2.2 访问限定符的使用3.2.3 访问限定符的使用规范3.2.4 访问限定符与封装 3.3 类做声明和定义分离3.3.1 声明和定义分离3.3.2 在函数声明的地方…...

thinkPHP框架详解+部署

目录 什么是ThinkPHP: ThinkPHP的主要特性: 什么是ThinkPHP: ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,由国内的技术爱好者创建,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和…...

Java拦截器(Interceptor)和过滤器(Filter)实例详解

一、Java过滤器和拦截器 1.1、过滤器(Filter) Filter过滤器,是Servlet(Server Applet)技术中的技术,开发人员可以通过Filter技术,管理web资源,可以对指定的一些行为进行拦截,例如URL级别的权限…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...