计算机组成原理 | 第四章:存储器 | 存储器与CPU连接 | 存储器的校验 | Cache容量计算

news2024/9/21 12:47:15

文章目录

  • 📚概述
    • 🐇存储器分类
    • 🐇存储器的层次结构
      • 🥕原理
      • 🥕主存速度慢的原因
      • 🥕存储器三个主要特征的关系
      • 🥕缓存-主存层次和主存-辅存层次⭐️
  • 📚主存储器
    • 🐇概述
      • 🥕主存的基本组成
      • 🥕主存和CPU的联系⭐️
      • 🥕存储单元地址的分配(大端小端⭐️)
      • 👀按字寻址和按字节寻址⭐️
      • 🥕主存的技术指标
        • 🍃存储容量
        • 🍃存储速度
        • 🍃存储器的带宽
    • 🐇半导体存储芯片
      • 🥕半导体存储芯片的基本结构
      • 🥕芯片容量计算及芯片选用⭐️
    • 🐇随机存取存储器(RAM)
      • 🥕RAM分类
      • 🥕动态RAM刷新⭐️
        • 🍃集中刷新
        • 🍃分散刷新
        • 🍃异步刷新
    • 🐇存储器的扩展及与CPU连接⭐️⭐️⭐️
      • 🥕存储器容量的扩展
        • 🍃位扩展(增加存储字长)
        • 🍃字扩展(增加存储字的数量)
        • 🍃字位扩展(上述二者结合)
      • 🥕存储器与CPU的连接
        • 🔑【存储器和CPU连接】技巧总结(感悟版)
    • 🐇存储器的校验
      • 🥕求海明校验码⭐️
      • 🥕海明码检验⭐️
        • 🔑【海明码检验】技巧程序化
    • 🐇提高访存速度的措施
      • 🥕细说调整主存结构
        • 🍃单体多字系统
        • 🍃多体并行系统
        • 🔑求【顺序存储】和【交叉存储】的带宽
  • 📚高速缓冲存储器
    • 🐇概述
      • 🥕问题的提出(解答题🔔)
      • 🥕Cache的工作原理
        • 🔑【Cache命中率】及【Cache-主存系统的效率】
      • 🥕Cache的基本结构(了解)
      • 🥕Cache的读写操作(了解)
      • 🥕Cache的改进(了解)
    • 🐇Cache-主存的地址映射
      • 🥕直接映射
      • 🥕全相联映射
      • 🥕组相联映射
      • 🥕Cache替换算法(了解)
      • 🥕Cache容量计算⭐️⭐️
        • 🍃方法
        • 🍃例题
  • 📚小结
    • 🔑本章掌握要点

📚概述

存储器保存内容:程序数据

🐇存储器分类

在这里插入图片描述

🐇存储器的层次结构

🥕原理

在这里插入图片描述

🥕主存速度慢的原因

  • 主存增速与CPU增速不同步
  • 指令执行期间多次访问存储器

🥕存储器三个主要特征的关系

在这里插入图片描述

🥕缓存-主存层次和主存-辅存层次⭐️

局部性原理

  • 时间局部性:现在被访问的信息在不久的将来还将再次被访问,程序结构体现:循环结构
  • 空间局部性:现访问信息,下一次访问其附近的信息,程序结构体现:顺序结构

在这里插入图片描述

  • Cache缓存:解决CPU与主存速度不匹配的矛盾——缓存-主存层次起加速作用
  • 主存:冯诺依曼计算机体系结构
  • 辅存:解决主存容量不足与高成本矛盾——主存-辅存层次起扩容作用

计算机存储系统采用分级方式主要是为了解决容量、速度、价格三者的矛盾

📚主存储器

🐇概述

🥕主存的基本组成

在这里插入图片描述

MAR:存储器地址寄存器
MDR:存储器数据寄存器

🥕主存和CPU的联系⭐️

在这里插入图片描述

🥕存储单元地址的分配(大端小端⭐️)

  • 数据存储与边界的关系(了解)

    • 按边界对齐的数据存储
      在这里插入图片描述
      理解:总体来看,放不下就另开一行,放得下就挤一挤
    • 未按边界对齐的数据存储
      在这里插入图片描述
      理解:挤着来(虽然节省了空间,但增加了访存次数)
  • C语言变量在内存分配字节数(了解)
    在这里插入图片描述

在这里插入图片描述
理解:大端就是按顺序来,小端就是倒着来
在这里插入图片描述

对于24位地址线的主存而言

  • 若字长为32位:
    • ①按字节寻址的范围为16M。【 2 24 2^{24} 224B / 1B=16M】
    • ②按寻址的范围为4M。【 2 24 2^{24} 224B / 4B = 4M】
  • 若字长为16位:
    • ①按字节寻址的范围为16M。【 2 24 2^{24} 224B / 1B=16M】
    • ②按寻址的范围为8M。【 2 24 2^{24} 224B / 2B = 8M】
  • 1MB = 2 20 2^{20} 220B
  • 👇下边有详解~

👀按字寻址和按字节寻址⭐️

  • 基本概念
    • 字长:表示机器CPU的处理能力,即CPU在单位时间内能处理的最大二进制数的位数称为字长
      • 若字长为32位,表明存储器一次可以处理4个存储单元,指令长度为4个存储单元。
        • 1字节 = 1B = 8b = 8位
        • 1字 = 4B = 32b = 32位
    • :数据存储的最小单位,一个位的取值只能是0或1
    • 字节(B/Byte):1个字节等于8位,即1Byte=8bit
    • :在计算机中,一串数码作为一个整体来处理或运算的,称为一个字。字的位数称为字长;字通常分若干个字节。
    • 寻址空间与寻址范围
      • 寻址范围只是一个数字范围,不带有单位
      • 而寻址范围的大小指的是寻址空间的大小,寻址空间指能够寻址的最大容量, 单位一般用MB、B来表示。
  • 按字寻址
    • 一组地址线的每个不同状态对应一个字的地址,存储空间的最小编址单位是字
      • 一个字由若干个字节构成,所以计算机在寻址过程中会区分字里面的字节,即会给字里面的字节编址,这样就会占用部分地址线
      • 例如,有24根地址线,机器字长为16位,若按字寻址的话,16位=2个字节,需要占用一根地址线用来字内寻址,这样就剩下23根地址线,故按字寻址范围是2^23,也就是8M。【真正用于按字寻址的地址线只有24-1=23根】
  • 按字节寻址
    • 一组地址线的每个不同状态对应一个字节的地址,存储空间的最小编址单位是字节
      • 例如,对24位地址线的主存而言(也就是有24根地址线),按字节寻址,每根线有两个状态,那么24根地址线组成的地址信号就有 2 24 2^{24} 224个不同的状态,每个状态对应一个字节的地址空间的话,那么24根地址线的可寻址空间为 2 24 2^{24} 224B,即16MB。

🥕主存的技术指标

🍃存储容量

主存存放二进制代码的总位数

  • 存储容量 = 存储单元个数 × 存储字长(每个存储单元的位数)
  • 也可用字节总数来表示: 存储容量 = 存储单元个数 × 存储字长/8

🍃存储速度

  • 存取时间:存储器的访问时间(读出时间 < 写入时间)
  • 存取周期:连续两次独立的存储器操作(读或写)所需的最小间隔时间
  • 因为存取周期内,存取操作结束后仍需要一段时间来更改状态,即存取周期 = 存取时间 +恢复时间,所以存取时间 < 存取周期

🍃存储器的带宽

  • 带宽 = 时钟频率 × 总线宽度
  • 带宽 = 存储字长/存储时间
  • Mbps = Mb/s
  • 8Mbps换算成下载速度就是1MB/s

🐇半导体存储芯片

🥕半导体存储芯片的基本结构

在这里插入图片描述

  • 地址线是单向输入的,其位数与芯片容量有关
  • 数据线是双向的,其位数与芯片可读出或可写入的数据位数有关

🥕芯片容量计算及芯片选用⭐️

在这里插入图片描述
在这里插入图片描述

👀在题目中体悟方法,直接上题目——

  • 一个16K×32位的存储器,其地址线和数据线的总和是多少❓
  • 选用如下规格(A.1K×4位芯片 B.4K×8位芯片)的存储器芯片时,需要多少片❓
  • 内存的容量有多少,就是用多少个二进制数表示,地址线的条数就是多少根
    • 16K是其容量大小,16K= 2 14 2^{14} 214,故地址线14根;
    • 1K = 2 10 2^{10} 210
  • 数据线指一次传输的数据的宽度,32位的宽度需要用32根数据线
  • 故总和为14+32=46根
  • 片数确定
    • A.(16K×32)/(1K×4)=16×8=128片
    • B.(16K×32)/(4K×8)=4K×4=16片

已知存储器的容量为1MB,那地址线和数据线一共多少根❓

  • 只要写成n MB的形式,一律默认为n M × 8
  • 1MB可以写成1M×8
    • 1M = 2 20 2^{20} 220,因此地址线为20根
    • 数据线为8根,一共28根

🐇随机存取存储器(RAM)

🥕RAM分类

  • 静态存储器:利用双稳态触发器存储信息,速度快,非破坏性读出
    • 用途:高速缓存。
  • 动态存储器:依靠电容上的存储电荷存储信息,集成度最高,但信息易失,需要定时刷新内容
    • 用途:作主存。
比较动态RAM(DRAM)静态RAM(SRAM)
存储原理电容触发器
集成度
芯片引脚
功耗
价格
速度
刷新

🥕动态RAM刷新⭐️

👀因为动态存储器依靠电容上的存储电荷存储信息,集成度最高,但信息易失,所以需要定时刷新内容
👀动态RAM时序——行列地址分开传送
在这里插入图片描述
👀刷新与行地址有关。刷新是一行行进行的,必须在刷新周期内,由专用的刷新电路来完成对基本单元电路的逐行刷新,才能保证DRAM内的信息不丢失。

🍃集中刷新

  • 集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新此刻必须停止读/写操作
  • 速度高,但死时间长,关注死区和死时间率

在这里插入图片描述

🍃分散刷新

  • 分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。其中,把机器的存取周期 t C t_C tC分成两段,前半段 t M t_M tM用来读/写或维持信息,后半段 t R t_R tR用来刷新。
    • 在每个存取操作后绑定一个刷新操作,延长了存取周期,这样存取周期就成了0.5μs + 0.5μs =1μs,也就不需要专门给出一段时间来刷新了
    • 这样,每有128个读取操作,就会把0-127行全部刷新一遍。故每隔128μs 就可将存储芯片全部刷新一遍,即刷新周期是1μs×128=128μs,远短于2ms。
  • 不存在停止读/写的死时间,但是存取周期长了,整个系统速度降低了

在这里插入图片描述

🍃异步刷新

  • 分散刷新与集中刷新相结合,既可以缩短“死时间”,又充分利用最大刷新间隔为2ms的特点
  • 具体操作为:在2ms内对128行各刷新一遍,即每隔15.6μs刷新一行(2000μs/128≈15.6μs),而每行刷新的时间仍为0.5μs。
    • 这样,刷新一行只能停止一个存取周期,对每行来说,刷新间隔时间仍为2ms,而死时间为0.5μs。相对每一段来说,是集中式刷新,相对整体来说,是分散式刷新
  • 如果将DRAM的刷新安排在CPU对指令的译码阶段,由于这个阶段CPU不访问存储器,所以不会出现“死区”问题,从根本上上提高了整机的工作效率。

在这里插入图片描述

🐇存储器的扩展及与CPU连接⭐️⭐️⭐️

🥕存储器容量的扩展

存储容量 = 存储单元个数 × 存储字长

  • 存储单元个数扩展——>字扩展
  • 存储字长扩展——>位扩展

🍃位扩展(增加存储字长)

位扩展就是将两个存储芯片当成一个存储芯片来用,让两个存储芯片同时工作,同时被选中,同时做读/写操作。要想保证同时,就是把两个芯片的片选CS,用相同的信号连接

在这里插入图片描述
2片1K X 4位的芯片,可以组成1K X 8位的存储器(4位→8位
在这里插入图片描述

🍃字扩展(增加存储字的数量)

在这里插入图片描述
2片1K X 8位的芯片,可以组成2K X 8位的存储器(1K→2K
在这里插入图片描述

🍃字位扩展(上述二者结合)

在这里插入图片描述
1K X 4位的芯片,组成4K X 8位的存储器(1K→4K,4位→8位
在这里插入图片描述

🥕存储器与CPU的连接

在这里插入图片描述


上边这张图是理论上的方法,但我个人觉得没啥用 ,这里贴一个讲的很好的小破站视频,用一道例题把细致的点几乎都讲到了,点此直达,看完视频后建议再过一下以下两道例题,应该就能懂啦~


上例题!
在这里插入图片描述
在这里插入图片描述

补大图
在这里插入图片描述
在这里插入图片描述


🔑【存储器和CPU连接】技巧总结(感悟版)

  • 系统程序区——>ROM用户地址区——>RAM

  • 字扩展和位扩展都可选时,首选位扩展(位扩展优于字扩展优于字位扩展)

  • G 1 G_1 G1高电平, G ‾ 2 A \overline{G}_{2A} G2A G ‾ 2 B \overline{G}_{2B} G2B低电平, Y ‾ 0 到 Y ‾ 7 \overline{Y}_0到\overline{Y}_7 Y0Y7都是低电平,低电平要画小圈圈
    在这里插入图片描述

  • G 1 G_1 G1若有空余,外接5V

  • M R E Q ‾ \overline{MREQ} MREQ把它看作是0,如果最后 G 1 G_1 G1只能和它连,但是 G 1 G_1 G1按道理要连1,那就在它俩之间加一个非门
    在这里插入图片描述

  • RAM连接 W R ‾ \overline{WR} WR,ROM只读外接 P D ‾ / P r o g r \overline{PD}/Progr PD/Progr

  • 关于二进制地址码
    在这里插入图片描述


🐇存储器的校验

  • 同一编码中,任意两个合法编码之间相应位不同的数目称为码距
  • 计算方法:对两个位串进行异或运算,并计算异或运算结果中1的个数
    • 110⊕011=101——>110和011之间码距等于2
  • 码距越大,抗干扰能力越强,纠错能力越强,编码效率低

🥕求海明校验码⭐️

海明校验:在位序是2的整数次幂的位置放置检验位,其他位置放有效信息

  • m个数据 + k个校验位 = m+k个码字
  • m+k+1≤ 2 k 2^k 2k

在这里插入图片描述

🥕海明码检验⭐️

在这里插入图片描述

  • 错误字G指明
    • 当G等于全0时,无错误
    • 当G不等于0时,代码错误,G指明位置
  • 错误字 g 4 g 3 g 2 g 1 = 0000 g_4g_3g_2g_1=0000 g4g3g2g1=0000 不一定无错,存在同时出错反而显示正确的情况
  • 海明校验只能发现并纠正一位错误,不能识别多位错误

🔑【海明码检验】技巧程序化

在这里插入图片描述

🐇提高访存速度的措施

  • 采用高速器件——高性能存储芯片
  • 采用层次结构Cache-主存(详见下文)
  • 调整主存结构

🥕细说调整主存结构

🍃单体多字系统

在这里插入图片描述

🍃多体并行系统

  • 高位交叉(顺序存储)
    在这里插入图片描述
  • 低位交叉(交叉存储)
    • 在不改变存取周期的前提下,增加存储器的带宽
      在这里插入图片描述

🔑求【顺序存储】和【交叉存储】的带宽

👀上边提到的系统了解就好,主要知道求【顺序存储】和【交叉存储】的带宽的方法

在这里插入图片描述

  • b代表bit(位),B代表Byte,注意大小写区分
  • 1Byte=8bits
  • Mbps=Mb/s=M/s 三个的意思一致。
  • 1MB/s=8Mbps=8Mb/s

📚高速缓冲存储器

🐇概述

🥕问题的提出(解答题🔔)

在这里插入图片描述

  • Cache的作用
    • 计算机中设置Cache主要是为了加速CPU访存速度,避免CPU“空等”现象。
    • ps:由于主存是按地址访问,Cache是按内容及地址访问,所以不能把Cache的容量扩大到最后取代主存
  • 程序访问的局限性
    • 在一小段时间内,最近被访问过的程序和数据很可能再次被访问;
    • 在空间上,这些被访问的程序和数据往往集中在一小片存储区;
    • 在访问顺序上,指令顺序执行比转移执行的可能性大
    • 存储系统中Cache-主存层次就是采用了程序访问的局部性原理

🥕Cache的工作原理

在这里插入图片描述
在这里插入图片描述

  • 命中与未命中
    • 缓存共有 C 块,主存共有 M 块,M >> C
    • 命中:主存块调入缓存,主存块与缓存块建立了对应关系。用标记记录与某缓存块建立了对应关系的主存块号
    • 未命中:主存块未调入缓存,主存块与缓存块未建立了对应关系。

🔑【Cache命中率】及【Cache-主存系统的效率】

在这里插入图片描述

🥕Cache的基本结构(了解)

在这里插入图片描述

🥕Cache的读写操作(了解)

在这里插入图片描述
在这里插入图片描述

🥕Cache的改进(了解)

  • 增加 Cache 的级数
  • 统一缓存和分立缓存
    • 统一缓存就是指令数据同一个
    • 分立缓存就是指令放指令Cache里,数据放数据Cache里

🐇Cache-主存的地址映射

🥕直接映射

在这里插入图片描述

  • 助记:一家公司员工(主存块)每天都是不假思索直接去自己所属的公司(Cache字块)
  • 优缺点
    • 直接映射是最简单的地址映射方式,它的硬件简单,成本低,地址变换速度快,而且不涉及替换算法问题。
    • 但是这种方式不够灵活Cache的存储空间得不到充分利用,每个主存块只有一个固定位置可存放,容易产生冲突,使Cache效率下降,因此只适合大容量Cache采用。
      • 例如,如果一个程序需要重复引用主存中第0块与第16块,最好将主存第0块与第16块同时复制到Cache中,但由于它们都只能复制到Cache的第0块中去,即使Cache中别的存储空间空着也不能占用,因此这两个块会不断地交替装入Cache中,导致命中率降低。
  • 查找策略
    在这里插入图片描述

🥕全相联映射

在这里插入图片描述

  • 助记:有空位都可以坐
  • 特点:方式灵活,结构复杂。查找最慢,当Cache块装满的时候,可能需要遍历所有的Cache行
  • 查找策略
    在这里插入图片描述

🥕组相联映射

在这里插入图片描述

  • 优点:如上图,这种方式是上述两种方式的结合,这样既提高了查找效率,又减少了因为冲突导致的换入换出次数
  • 查找策略
    在这里插入图片描述

映射类型映射特点
直接映射某一主存块只能固定映射到某一缓存块(不灵活)
全相联映射某一主存块映射到任一缓存块(成本高)
组相联映射某一主存块只能映射到某一缓存中的任一块

🥕Cache替换算法(了解)

  • 当Cache内容/行已满,无法接收来自主存块的时候,替换机构将某个块移出Cache。
    • 先进先出 ( FIFO )算法
    • 近期最少使用( LRU)算法

🥕Cache容量计算⭐️⭐️

🍃方法

在这里插入图片描述

🍃例题

在这里插入图片描述
在这里插入图片描述

补水印遮挡:10 8 2
在这里插入图片描述

📚小结

🔑本章掌握要点

在这里插入图片描述
在这里插入图片描述
重点关注⭐️


👀参考博客
按字寻址和按字节寻址
DRAM的三种刷新方式的刷新周期问题
字扩展、位扩展、字位扩展

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

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

相关文章

【opencv】Haar分类器及Adaboost算法人脸识别理论讲解

提到opencv,就不得不提其图像识别能力,最近旷世开源的YoloX项目兴起,作为目前Yolo系列中的最强者,本人对其也很感兴趣,但是完全没用机器学习和计算机视觉的基础,知其然,不知其所以然,于是想稍稍入坑一下opencv图像识别,了解一下相关算法,(说不定以后毕设会用到呢)。…

磨金石教育影视干货分享|朋友亲身经历—给新人剪辑师的三个建议

大学的时候有一个同学很喜欢视频剪辑。平时没事就蹲在电脑前&#xff0c;下载一些素材&#xff0c;自学剪辑软件&#xff0c;慢慢的搞一些创意剪辑。那时候自媒体短视频已经很火爆&#xff0c;这位同学剪辑的视频&#xff0c;不管质量如何就往上面发。一开始我们对于新事物的认…

Java---微服务---分布式搜索引擎elasticsearch(2)

分布式搜索引擎elasticsearch&#xff08;2&#xff09;1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.示例1.2.4.总结1.3.精准查询1.3.1.term查询1.3.2.range查询1.3.3.总结1.4.地理坐标查询1.4.1.矩形范围查询1.4.2.附近查询1.5.复合查询1…

SpringBoot+Vue项目学生读书笔记共享平台

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

一起自学SLAM算法:10.3 机器学习与SLAM

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 前面已经分析过的8种SLAM算法案例&#xff08;Gmapping、Cartographer、LOAM、ORB-SLAM2、LSD-SLAM、SVO、RTABMAP和VINS&#xff09;都可以称为传统方法&#xff0c;因为这些算法都是在人为精心设计的特定规则下…

电子技术——MOS放大器基础

电子技术——MOS放大器基础 我们已经学过MOS可以当做一个压控流源&#xff0c;使用栅极电压 vGSv_{GS}vGS​ 控制漏极电流 iDi_DiD​ 。尽管两个量的关系不是线性的&#xff0c;稍后我们将会介绍偏置在线性区的工作方法。 构建压控压源放大器 现在&#xff0c;我们有了一个压…

【Java|golang】1664. 生成平衡数组的方案数---奇数前缀和 + 偶数前缀和

给你一个整数数组 nums 。你需要选择 恰好 一个下标&#xff08;下标从 0 开始&#xff09;并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。 比方说&#xff0c;如果 nums [6,1,7,4,1] &#xff0c;那么&#xff1a; 选择删除下标 1 &#xff0c;剩下…

[JAVA安全]JACKSON反序列化

前言 ackson是一个开源的Java序列化和反序列化工具&#xff0c;可以将Java对象序列化为XML或JSON格式的字符串&#xff0c;以及将XML或JSON格式的字符串反序列化为Java对象。 依赖 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifact…

中国省际铁路通行时间数据

一、数据简介 本数据来自南京大学长江产业经济研究院《全国统一大市场下的省际铁路交通研究报告》的附录部分。中国的铁路&#xff08;高铁&#xff09;建设取得了辉煌成果。但受铁路时刻众多、历史数据不容易搜集整理的限制&#xff0c;学术与政策研究者一直无法对铁路建设的时…

三、JDBC详解

教程相关资料&#xff1a;https://www.aliyundrive.com/s/wMiqbd4Zws6 1&#xff0c;JDBC概述 在开发中我们使用的是java语言&#xff0c;那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 JDBC概念 JDBC 就是使用Java语言操作关系型数据库的一套…

Nacos 配置中心 服务端推送变更源码讲解

目录 1. 配置引起变更的两种方式 1.1 后台管理直接操作 1.2 NacosClient 调用 RPC 接口 2. 变更事件处理 AsyncNotifyService 2.1 HTTP 任务 2.2 RPC任务 2.3 NacosServer 其他节点接收到消息后如何处理 3. 客户端推送实现&#xff1a;DumpService.dump 接着上一篇 Nac…

1601_读Dennis M. Ritchie and Ken Thompson的The UNIX TimeSharing System_Unix分时复用系统

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 很久之前就闻听了UNIX的大名&#xff0c;也看过很多相关的故事类文章。其中最让我印象深刻的莫过于Ken发明UNIX的故事以及这个系统对于Linux以及GNU的OS的影响&…

Linux操作系统之线程同步

文章目录一、线程的实现&#xff1a;用户级、内核级、组合二、线程的同步&#xff08;通讯&#xff09;&#xff1a;信号量&#xff0c;互斥锁&#xff0c;条件变量&#xff0c;读写锁1&#xff09;信号量2&#xff09;互斥锁操作&#xff1a;加锁&#xff0c;解锁。3&#xff…

浮躁的当下或许我们更加需要一颗平常心

科技的迅速发展&#xff0c;已经融入我们的生活&#xff1b;曾经的慢生活慢节奏早已离我们远去&#xff0c;取而代之的是伴随科技齿轮快速运转的生活&#xff0c;快节奏更是科技时代下人们普遍生活的真实写照。 然而&#xff0c;科技虽然带给了我们生活的极大的便利&#xff0…

php伪协议

目录 一、伪协议介绍 1、php://协议 2、php://filter伪协议 3.php://input&#xff08;读取POST数据&#xff09; 4、file伪协议 5、phar://伪协议(读取压缩包文件内容) 6、压缩文件伪协议 6.1.zip://[压缩文件绝对路径]%23压缩文件内的子文件名 6.2.compress.bzip2://…

Mybatis 的输出结果封装小细节

resultType 属性可以指定结果集的类型&#xff0c;它支持基本类型和实体类类型。我们在前面的 CRUD 案例中已经对此属性进行过应用了。需要注意的是&#xff0c;它和 parameterType 一样&#xff0c;如果注册过类型别名的&#xff0c;可以直接使用别名。没有注册过的必须使用全…

Markdown基础语法

文章目录Markdown基础语法一、标题使用&#xff1a;2、二级标题3、一次类推二、字体三、引用四、分割线五、插入图片六、超链接七、列表1、有序列表2、无序列表八、表格九、代码十、添加目录九、代码十、添加目录Markdown基础语法 一、标题使用&#xff1a; 格式&#xff1a;…

智能驾驶 车牌检测和识别(二)《YOLOv5实现车牌检测(含车牌检测数据集和训练代码)》

智能驾驶 车牌检测和识别&#xff08;二&#xff09;《YOLOv5实现车牌检测&#xff08;含车牌检测数据集和训练代码&#xff09;》 目录 智能驾驶 车牌检测和识别&#xff08;二&#xff09;《YOLOv5实现车牌检测&#xff08;含车牌检测数据集和训练代码&#xff09;》 1. 前…

[Vulnhub] DC-4

下载链接&#xff1a;https://download.vulnhub.com/dc/DC-4.zip 同DC-3 这个靶机也是只有一个flag。 全面信息搜集hydra爆破登录和ssh密码teehee命令(写入文件内容)提权/etc/passwd & /etc/sudoers 文件利用 目录 <1> 信息搜集 <2> hydra爆破登录密码 <…

怎么解除pdf的加密,建议收藏这几种方法

我们在下载资料的时候经常能遇到PDF文档&#xff0c;有时候这些文档还会被设置需要输入密码才能打开。有些朋友找不到密码就只能放弃这份资料&#xff0c;其实还可以再争取一下&#xff0c;解除PDF的加密不是没有可能的。将PDF的密码破除后我们就不再需要密码就能阅读使用该文档…