欢迎光临散文网 会员登陆 & 注册

计算机组成原理(三)——存储系统

2023-02-07 21:20 作者:UCLmsc  | 我要投稿
  • 1 存储系统层次结构

  • 2 主存中的数据组织


  • 3 静态存储器工作原理

SRAM(静态随机存取存储器)


  • 4 动态存储器工作原理

DRAM(动态随机存取存储器)


  • 5 存储扩展


  • 6 多体交叉存储器

    基本思想是在不提高存储器速率、不扩展数据总线位数的前提下,通过存储芯片的交叉组织,提高CPU单位时间内访问的数据量,从而缓解快速的CPU与慢速的主存之间的速度差异。

  • 7 Cache的基本原理

  • 8 相联存储器


  • 9 Cache地址映射与变换方法

  • 10 替换算法



  • 12 虚拟存储器



  • 13 TLB


  • 14 RAID


  • 快速面经

    • Q: RAFT协议中,Leader写成功日志Log20但未同步给Followers后宕机,Follower重新选举后产生一条新日志Log20,这时Leader重启,整个系统发现两种不一样的Log20的记录,请问如何区分并拒掉前面的Log20?

      • A: 在RAFT协议中,如果Leader写入了一条成功日志Log20但没有在宕机前与Followers同步,随后Follower重新选举产生了一条新日志Log20,当原先的Leader重启时,系统发现两种不同的Log20记录,为了区分并拒绝先前的Log20,系统使用了term编号的概念。每个日志条目都被分配了一个term编号,这是在创建条目时leader的term。具有较高term编号的日志条目被认为是更近的,因此被采纳为正确的。在这种情况下,具有较高term编号的日志将被保留,而具有较低term编号的日志将被拒绝。

    • Q: 在共识协议中,为什么说允许数据被覆盖会带来数据一致性问题?

      • A: 因为不同的节点可能会有不同的数据版本,导致数据不一致。

    • Q: 什么场景适合乐观锁?什么场景适合悲观锁?

      • A: 乐观锁适合在读多写少的场景中使用,而悲观锁适合在读少写多的场景中使用。

    • Q: 三阶段提交缓和两阶段提交的哪两个问题?

      • A: 三阶段提交缓解了两阶段提交中的超时问题和单点故障问题。

    • Q: 两阶段提交中,什么场景需要数据库管理员介入?

      • A: 当事务超时或者其他问题导致事务无法完成时,需要数据库管理员介入。

    • Q: 数据库里的一致性和分布式系统中的一致性有什么区别?

      • A: 数据库里的一致性指的是数据库中的数据满足事务的ACID特性,而分布式系统中的一致性指的是在分布式环境中多个节点上的数据是相同的

    • Q: CAP理论中,请举例说明可用性和一致性的矛盾?

      • A: 可用性要求系统能够尽可能快地响应请求,而一致性要求所有节点的数据在某一时刻是相同的。在分布式系统中,如果要求高可用性,可能会牺牲一致性;如果要求高一致性,可能会牺牲可用性。

    • Q: 什么是最终一致性?什么是线性一致性?

      • A: 最终一致性是指所有节点最终都会达成一致的数据状态,线性一致性是指在分布式系统中所有节点的操作顺序是确定的

    • Q: 为什么在4将军问题中,增加1轮协商就可以对抗拜占庭故障?

      • A: 增加1轮协商可以消除拜占庭将军的影响,因此可以达成共识。

    • Q: 为什么TCP采用三次握手?而不是两次和四次?

      • A: TCP采用三次握手是因为这样可以确保数据传输的可靠性和安全性。第一次握手是为了确认连接,第二次握手是为了确认收到第一次握手的确认,第三次握手是为了确认第二次握手已经收到。

    • Q: 两将军问题为什么理论上永远达不成共识?

      • A: 因为没有确定哪个将军是“好的” ,在分布式环境中可能会出现“恶意将军”的情况,因此无法达成共识。

    • Q: 分布式系统有哪些优势和挑战?

      • A: 优势:可扩展性、高可用性、冗余性、容错性。挑战:复杂性、性能、数据一致性、安全性。


    • Q: SQL注入是什么,如何避免?

      • A: SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。简而言之,SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。

      • SQL注入的原理:恶意拼接查询、利用注释执行非法命令、传入非法参数、添加额外条件。

      • 避免SQL注入:过滤输入内容,校验字符串、参数化查询、安全测试/安全审计、避免使用动态SQL、不要将敏感数据保留在纯文本中、限制数据库权限和特权、避免直接向用户显示数据库错误。


计算机组成原理(三)——存储系统的评论 (共 条)

分享到微博请遵守国家法律