高级计算机体系结构--期末真题及题型总结

news2024/11/25 20:37:42

  • 2024 年春季学期期末考题回顾
  • 一、名词解释
  • 二、简答题
    • 2007 年简答题
    • 2008 年简答题
    • 简答题答案
  • 三、分析题
    • 1. MESI 和 Dragon 协议计算给定内存存取序列所需的时钟周期
      • 2007年第一题及参考答案
      • 例题及解答
    • 2. 顺序一致性存储模型,判断进程的合法输出
      • 2007年第二题及参考答案
    • 3. 磁盘预取
      • 2007年第三题及参考答案
      • 积极预取
      • 例题及解答
    • 4. 双路径和多路径多播路由
      • 2008年第三题及参考答案
      • 双路径和多路径多播路由算法
      • 例题及解答

考试开卷。
教材:《并行计算机体系结构》陈国良 吴俊敏 等 第一版

在这里插入图片描述

(可以在西区中文书库四层借到,高新区图书馆也有)

关于开卷考试资料,放到高新图书馆一层打印机旁边的图书漂流角了,等有缘人~

2024 年春季学期期末考题回顾

  • 名词解释(16分 10个名词),和往年差不多,书上都能找到,就像 07 年考了 S I M D SIMD SIMD,然后今年考了 M I M D MIMD MIMD,07 年考了 T F L O P S TFLOPS TFLOPS,今年考了 E F L O P S EFLOPS EFLOPS E i g a   b i l l i o n Eiga\ billion Eiga billion万亿次)。

在这里插入图片描述

  • 简答题(6题*9分),考了列举并行计算机的体系结构,描述高速缓存一致性存储模型(COMA), L L LL LL s c sc sc 实现票锁,双路径和多路径路由,何为多米诺效应及解决方案,顺序一致性模型不合法的输出(往年考过的原题)。

在顺序一致性存储模型下,有三个并行执行的进程如下所示,试问哪些 ( u , v , w ) (u,v,w) (u,v,w) 不是一个合法的输出?并加以解释。( A , B , C A,B,C A,B,C 初始值为 0)

P 1 P1 P1 P 2 P2 P2 P 3 P3 P3
A = 1 A=1 A=1
C = 1 C=1 C=1
u = B u=B u=B
B = 1 B=1 B=1
C = 2 C=2 C=2
v = A v=A v=A
B = 2 B=2 B=2
A = 2 A=2 A=2
w = C w=C w=C

【参考答案】包含两个 0 的肯定不是合法输出。因为只可能 ( u , v , w ) (u,v,w) (u,v,w) 中一条赋为 0,其他必然非 0。
有 0 的,必然执行在前面,但 ( 0 , 1 , 1 ) (0,1,1) (0,1,1) 一定不可能, u = B u=B u=B 一定在 P 2 P2 P2 P 3 P3 P3 前执行,则 A A A C C C 不可能都为 1。

  • 分析题只有两题(2题*15分),第一题是 M E S I MESI MESI D r a g o n Dragon Dragon 计算给定序列的时钟周期,第二题是推导蝶式网络 M I N MIN MIN 的自路由标记。

一、名词解释

在这里插入图片描述

二、简答题

2007 年简答题

  1. 请列举主要的并行计算机访存模型
  2. 请比较 A m d a h l Amdahl Amdahl 定律和 G u s t a f s o n Gustafson Gustafson 定律。
  3. 请给出二维网格中最小负优先路由算法
  4. 请描述立方网络中的自路由算法
  5. 假设处理器提供 L L LL LL s c sc sc 原子指令,请给出一个实现 A r r a y − b a s e d Array-based Arraybased 锁的指令序列。(其他普通指令可任意使用,加上注释)
  6. 请简单比较基于侦听的高速缓存一致性协议基于目录的高速缓存一致性协议
  7. 请回答为何并行检查点操作中会差生多米诺效应?如何解决?
  8. 请回答何为机群中的单一系统映像以及它主要包括哪些服务

2008 年简答题

  1. 请描述并行计算机中主要的访存结构模型
  2. 请比较描述可扩放性评价中的几种评价标准
  3. 请举例描述并行程序设计任务划分的几种主要方法。
  4. 请给出二维网格中最小北向最后算法
  5. 请举例说明为何下图所示的网络不是非阻塞网络

在这里插入图片描述

在这里插入图片描述

  1. 请简单比较基于侦听的高速缓存一致性协议基于目录的高速缓存一致性协议
  2. 请比较描述 S M P SMP SMP 中不同的锁机制
  3. 请描述基本的故障恢复策略。并举例说明何为非一致的全局检查点

简答题答案

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、分析题

1. MESI 和 Dragon 协议计算给定内存存取序列所需的时钟周期

2007年第一题及参考答案

假设在两种 SMP 机器中分别实现了 Illinois MESI 协议和 Dragon 协议,对于以下给定的内存存取序列,比较在这两种机器上的执行代价,并分析其性能差异的原因。

序列 r1 r1 r1 r2 r2 r2 r3 r3 r3 w1 w1 w1 w2 w1 w1 w3 r3

所有的存取操作都针对同一个内存位置,r/w 代表读/写,数字代表发出该操作的处理器。假设所有高速缓存在开始时是空的,采用写分配策略,使用下面的性能模型:读/写高速缓存命中,代价 1 个时钟周期;缺失引起简单的总线事务(如 BusUpgr,BusUpd),60 个时钟周期;缺失引起整个高速缓存块传输,90 时钟周期。

【参考答案】

MESI 协议: T H H T H H T H H B H H T T H T H 6 T + 1 B + 10 H = 610 6T+1B+10H=610 6T+1B+10H=610 时钟周期

Dragon 协议: T H H T H H T H H B B B B B B B H,共 3 T + 7 B + 7 H = 697 3T+7B+7H=697 3T+7B+7H=697 时钟周期

例题及解答

两种 基于总线的共享内存多处理机 分别实现了 Illinois MESI 协议和 Dragon 协议,对于给定的每个内存存取序列,比较在这两种多处理机上的执行代价,并就序列及一致性协议的特点来说明为什么有这样的性能差别。

序列 ①r1 w1 r1 w1 r2 w2 r2 w2 r3 w3 r3 w3

序列 ②r1 r2 r3 w1 w2 w3 r1 r2 r3 w3 w1

序列 ③r1 r2 r3 r3 w1 w1 w1 w1 w2 w3

所有的存取操作都针对同一个内存位置,r/w 代表读/写,数字代表发出该操作的处理器。假设所有高速缓存在开始时是空的,并且使用下面的性能模型:读/写高速缓存命中,代价 1 个时钟周期;缺失引起简单的总线事务(如 BusUpgr,BusUpd),60 个时钟周期;缺失引起整个高速缓存块传输,90 时钟周期。假设所有 高速缓存是写回式,并且 MESI 协议中使用 BusUpgr 事务

【答案】

读写命中、总线事务、块传输分别简记为 H H H B B B T T T

MESI 协议:

T H H H T B H H T B H H 2 B + 7 H + 3 T = 397 2B+7H+3T=397 2B+7H+3T=397 时钟周期

T T T B T T T T H B T 2 B + 1 H + 8 T = 841 2B+1H+8T=841 2B+1H+8T=841 时钟周期

T T T H B H H H T T 1 B + 4 H + 5 T = 514 1B+4H+5T=514 1B+4H+5T=514 时钟周期。

Dragon协议:

T H H H T B H B T B H B 4 B + 5 H + 3 T = 515 4B+5H+3T=515 4B+5H+3T=515 时钟周期

T T T B B B H H H B B 5 B + 3 H + 3 T = 573 5B+3H+3T=573 5B+3H+3T=573 时钟周期

T T T H B B B B B B 6 B + 1 H + 3 T = 631 6B+1H+3T=631 6B+1H+3T=631 时钟周期。

由结果得出,①、③ 序列用 MESI 协议时间更少,而 ② 序列用 Dragon 协议时间更少。

综上可知,

  • 如果同一块在写操作之后频繁被多个核读操作采用 Dragon 协议更好,因为 Dragon 协议写操作后会更新其它核副本。
  • 如果多次连续对同一块进行写操作 MESI 协议更好,因为它不需要更新其它核副本,只需要总线事务无效其它核即可。

【理解】

对于序列 ①r1 w1 r1 w1 r2 w2 r2 w2 r3 w3 r3 w3

MESI 协议:T H H H T B H H T B H H 2 B + 7 H + 3 T = 397 2B+7H+3T=397 2B+7H+3T=397 时钟周期

初始缓存为空,r1 读缺失造成 T P 1 P1 P1 从内存读该缺失块), w1 写命中 Hr1 读命中 Hw1 写命中 Hr2 读缺失造成 T P 2 P2 P2 从内存读该缺失块), w2 由于需要总线通知有该块的其他处理器 P 1 P1 P1 失效而造成 Br2 读命中 Hw2 写命中 H(此时不再有其他处理器有该块, P 1 P1 P1 虽有但已失效,故不再触发总线事务)。

Dragon协议:T H H H T B H B T B H B 4 B + 5 H + 3 T = 515 4B+5H+3T=515 4B+5H+3T=515 时钟周期

初始缓存为空, r1 读缺失造成 T P 1 P1 P1 从内存读该缺失块), w1 写命中 Hr1 读命中 Hw1 写命中 Hr2 读缺失造成 T P 2 P2 P2 从内存读该缺失块), w2 由于需要总线通知有该块的其他处理器 P 1 P1 P1 更新而造成 Br2 读命中 Hw2 由于需要总线通知 P 1 P1 P1 更新而造成 B

在这里插入图片描述

缓存从空到有,是从内存中读取数据,而从无效到有,可能是来自其他处理器的该块。

【总结】MESI 和 Dragon 的不同之处在于,假如 P 1 P1 P1 有该块, P 2 P2 P2 修改该块后,MESI 是让 P 1 P1 P1 中的该块失效,而 Dragon 是让 P 1 P1 P1 中的该块更新为新的值,两者均会触发总线事务。

  • 若现在 P 1 P1 P1 读该块,MESI 则会 P 1 P1 P1 读缺失 T,而 Dragon 则会 P 1 P1 P1 读命中 H
  • 若现在 P 2 P2 P2 再次修改该块, MESI 则会 P 2 P2 P2 写命中 H 不会触发总线事务,而 Dragon 仍会触发总线事务去更新 P 1 P1 P1 中的该块 B

2. 顺序一致性存储模型,判断进程的合法输出

2007年第二题及参考答案

在 DSM 系统的顺序一致性存储模型下,有三个并行执行的进程如下所示,试问 001110 是不是一个合法的输出?并加以解释。

在这里插入图片描述

【参考答案】

不是一个合法输出。

考虑顺序一致性存储模型,每个进程的程序序会被维护,那么无论哪个进程最后执行 Print 语句,则之前的 a=1,b=1,c=1 都已经完成,所以输出的最后两项必为 11,所以 001110 不是合法输出。

3. 磁盘预取

2007年第三题及参考答案

假设一个系统带有两个磁盘和一个大小为三个块的缓存。从磁盘读一个块要两个单位时间。每个磁盘只有一个块能被并行存取。对于块的请求序列 F 1 F1 F1 A 1 A1 A1 B 2 B2 B2 C 1 C1 C1 D 2 D2 D2 E 1 E1 E1 F 1 F1 F1,其中字母表示磁盘中的块,数字表示该块存储在哪个磁盘上。请给出一种预取策略使得最多只要 11 11 11 个周期就可以完成整个请求序列。

【参考答案】

T 1 T1 T1 T 2 T2 T2 T 3 T3 T3 T 4 T4 T4 T 5 T5 T5 T 6 T6 T6 T 7 T7 T7 T 8 T8 T8 T 9 T9 T9 T 10 T10 T10 T 11 T11 T11
服务块 F 1 F1 F1 A 1 A1 A1 B 2 B2 B2 C 1 C1 C1 D 2 D2 D2 E 1 E1 E1 F 1 F1 F1
块1 F 1 F1 F1 F 1 F1 F1 F 1 F1 F1 F 1 F1 F1 C 1 C1 C1 C 1 C1 C1 C 1 C1 C1 C 1 C1 C1 F 1 F1 F1 F 1 F1 F1 F 1 F1 F1
块2 B 2 B2 B2 B 2 B2 B2 B 2 B2 B2 B 2 B2 B2 B 2 B2 B2 B 2 B2 B2 E 1 E1 E1 E 1 E1 E1 E 1 E1 E1 E 1 E1 E1 E 1 E1 E1
块3 A 1 A1 A1 A 1 A1 A1 A 1 A1 A1 D 2 D2 D2 D 2 D2 D2 D 2 D2 D2 D 2 D2 D2 D 2 D2 D2 D 2 D2 D2

积极预取

【定义】一旦当磁盘准备好后,就进行预取,将内存中最远的将来才用到的数据块替换出去

例题及解答

假设一个系统,

  • 带有两个磁盘和一个大小为三个块的缓存
  • 从磁盘读一个块两个单位时间
  • 每个磁盘只有一个块能被并行存取

下表显示了对块的请求序列为 F 1 F1 F1 A 1 A1 A1 B 2 B2 B2 C 1 C1 C1 D 2 D2 D2 E 1 E1 E1 F 1 F1 F1 时磁盘存取的调度序列。

字母表示磁盘中的块,数字表示该块存储在哪个磁盘上。

该表显示使用积极预取算法要完成该请求序列需要 12 12 12 个单位时间。

【答案】

在这里插入图片描述

【理解】

  • 两个磁盘分别为 磁盘 1 1 1 和 磁盘 2 2 2,三个缓存块为 块 1 1 1、块 2 2 2、块 3 3 3
  • F 1 F1 F1 表示数据块 F F F 存储在磁盘 1 1 1 D 2 D2 D2 表示数据块 D D D 存储在磁盘 2 2 2 上。
  • 表中 T 1   T 2 T_1\ T_2 T1 T2 T 1 T1 T1 1 1 1 F 1 F1 F1 ,表示在第一二个单位时间内预取磁盘 1 1 1 上的数据块 F F F 到缓存块 1 1 1
  • 因为从磁盘读一个块要两个单位时间,所以表中预取时都是 F 1   F 1 F1\ F1 F1 F1 B 2   B 2 B2\ B2 B2 B2 诸如此类连续两个单位时间
  • 由于每个磁盘只有一个块能被并行存取,所以在前两个单位时间,从磁盘 1 1 1 预取了数据块 F F F,所以就不能同时预取也在磁盘 1 1 1 上的数据块 A A A,但是可以预取磁盘 2 2 2 上的数据块 B B B

在这里插入图片描述

大体流程:

按照请求序列 F 1 F1 F1 A 1 A1 A1 B 2 B2 B2 C 1 C1 C1 D 2 D2 D2 E 1 E1 E1 F 1 F1 F1

  • 首先要请求数据块 F F F A A A,但是它们都在磁盘 1 1 1 上,每个磁盘只能并行存取一个块,所以先预取块 F F F,即 T 1   T 2 T1\ T2 T1 T2 预取磁盘 1 1 1 中的数据块 F F F 到缓存块 1 1 1 中,即 F 1   F 1 F1\ F1 F1 F1 T 1   T 2 T1\ T2 T1 T2 可以同时预取磁盘 2 2 2 中的数据块 B B B 到缓存块 2 2 2 中。
  • 这样 T 3 T3 T3 就可以请求 F 1 F1 F1,由于此时完成了对磁盘 1 1 1 F F F 的预取,所以可以开始预取磁盘 1 1 1 中的数据块 A A A 到缓存块 3 3 3,这需要 T 3   T 4 T3\ T4 T3 T4 两个单位时间。
  • T 4 T4 T4 时,可以开始对磁盘 2 2 2 D D D 的预取,因为在 T 2 T2 T2 结束时完成了对磁盘 2 2 2 B B B 的预取,不冲突。此时缓存块已满替换掉未来最远才用到的缓存块 F 1 F1 F1
  • T 5 T5 T5 时请求预取完成的 A 1 A1 A1 T 6 T6 T6 时请求早已预取完成并在缓存块中等待多时的 B 2 B2 B2
  • ……

4. 双路径和多路径多播路由

2008年第三题及参考答案

给出 6 × 6 6\times6 6×6 网格中双路径和多路径多播路由的路径。源节点为 ( 2 , 4 ) (2,4) (2,4),目标节点集为 ( 1 , 0 )   ( 4 , 0 )   ( 0 , 1 )   ( 4 , 1 )   ( 2 , 2 )   ( 3 , 2 )   ( 0 , 3 )   ( 5 , 3 )   ( 4 , 4 )   ( 1 , 5 )   ( 5 , 5 ) (1,0)\ (4,0)\ (0,1)\ (4,1)\ (2,2)\ (3,2)\ (0,3)\ (5,3)\ (4,4)\ (1,5)\ (5,5) (1,0) (4,0) (0,1) (4,1) (2,2) (3,2) (0,3) (5,3) (4,4) (1,5) (5,5)

【参考答案】

双路径和多路径多播路由算法

双路径:

Step1. 从 0 开始给每一个节点编号。

Step2. 划分 D H D_H DH D L D_L DL,其中 D H = { i d > 源 i d } D_H=\{id > 源 id\} DH={id>id}(按升序), D L = { i d < 源 i d } D_L=\{id < 源 id\} DL={id<id}(按降序)。

Step3. 分别从源节点向 D H D_H DH D L D_L DL 中挨个目的节点到达,先沿 X X X 后沿 Y Y Y。(先沿 X X X 走到目的节点同列,再沿 Y Y Y 走到目的节点同行)分别到 D H D_H DH D L D_L DL 中的最后一个目的节点时停下。

多路径:

与双路径的不同之处在于,将 D H D_H DH 进一步细分为 D H 1 D_{H_1} DH1 D H 2 D_{H_2} DH2,将 D L D_L DL 进一步细分为 D L 1 D_{L_1} DL1 D L 2 D_{L_2} DL2

细分方法是:

  • D H D_H DH 区域的节点,即编号大于源节点编号的节点们,用两个方框(分别向上和向左)框开
  • D L D_L DL 区域的节点,即编号小于源节点编号的节点们,用两个方框(分别向下和向右)框开

例题及解答

给出 6X6 网格中 双路径和多路径多播路由的路径。源节点为(4,3),目标节点集为(0,0),(4,0),(5,1)(3,2)(0,2)(5,3)(0,3)(3,4)(1,5)(5,5)。

【答案】

双路径多播路由图:

在这里插入图片描述

【理解】

Step1. 按图示从 0 编号每一个节点。

Step2. 划分 D H = { i d > 19 } = { 23 , 27 , 30 , 34 } D_H=\{id>19\}=\{23,27,30,34\} DH={id>19}={23,27,30,34} D L = { i d < 19 } = { 18 , 15 , 12 , 6 , 4 , 0 } D_L=\{id<19\}=\{18,15,12,6,4,0\} DL={id<19}={18,15,12,6,4,0}

Step3. 从源节点 19 19 19 出发,往 D H D_H DH ,依次到达目标节点 23 → 27 → 30 → 34 23→27→30→34 23273034。从源节点 19 19 19 出发,往 D L D_L DL,依次到达目标节点 18 → 15 → 12 → 6 → 4 → 0 18→15→12→6→4→0 181512640

  • 23 23 23 27 27 27,虽然不在同一列,但是无法沿 X X X 移动(不能回头),只能先向上,再向右至 27 27 27。从 18 18 18 15 15 15 同理。
  • 27 27 27 30 30 30,先沿 X X X 向右至与 30 30 30 同一列,再沿 Y Y Y 向上至与 30 30 30 同一行。

多路径多播路由图:

在这里插入图片描述

【理解】

如图,将 D H D_H DH 向上框得到 D H 1 D_{H_1} DH1 区域,向左框得到 D H 2 D_{H_2} DH2 区域。

D L D_L DL 向下框得到 D L 1 D_{L_1} DL1 区域,向右框得到 D L 2 D_{L_2} DL2 区域。

27 27 27 34 34 34,就不再是从 27 27 27 30 30 30 34 34 34 了,都要在自己的区域范围内行动

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

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

相关文章

苍穹外卖 ...待更新

苍穹外卖 1、 阿里云OSS2、菜品分类查询 1、 阿里云OSS 工具类 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import lombok.AllArgsConstructor…

【每日一练】python三目运算符的用法

""" 三目运算符与基础运算的对比 """ a 1 b 2#1.基础if运算判断写法&#xff1a; if a > b:print("基础判断输出&#xff1a;a大于b") else:print("基础判断输出&#xff1a; a不大于b")#2.三目运算法判断&#xff1a;…

【云原生】Prometheus监控Docker指标并接入Grafana

目录 一、前言 二、docker监控概述 2.1 docker常用监控指标 2.2 docker常用监控工具 三、CAdvisor概述 3.1 CAdvisor是什么 3.2 CAdvisor功能特点 3.3 CAdvisor使用场景 四、CAdvisor对接Prometheus与Grafana 4.1 环境准备 4.2 docker部署CAdvisor 4.2.2 docker部署…

flask使用定时任务flask_apscheduler(APScheduler)

Flask-APScheduler描述: Flask-APScheduler 是一个 Flask 扩展&#xff0c;增加了对 APScheduler 的支持。 APScheduler 有三个内置的调度系统可供您使用&#xff1a; Cron 式调度&#xff08;可选开始/结束时间&#xff09; 基于间隔的执行&#xff08;以偶数间隔运行作业…

洛谷 P3613 学习用map代替大大大数组的好题

题目链接&#xff1a;P3613 【深基15.例2】寄包柜 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目截图&#xff1a; 题意分析&#xff1a; 非常简单的存入和取出操作 唯一的 “难点” 在于 数组开不到 a[100007][100007]&#xff0c;会暴内存 非常巧妙的引入 map 来解决…

Square Root SAM论文原理

文章目录 Square Root SAM论文原理核心原理SLAM问题的3种表示贝叶斯网络因子图&#xff08;Factor graph&#xff09;马尔科夫随机场(Markov Random Field, MRF) SLAM最小二乘问题&线性化因式分解 factorization矩阵与图(Matrices ⇔ Graphs)因式分解&变量消元(Factori…

深入理解 Kata Containers

目录 引言Kata Containers 的定义Kata Containers 的架构Kata Containers 的工作原理Kata Containers 的应用场景Kata Containers 在 CentOS 上的常见命令实验场景模拟总结 1. 引言 随着云计算和容器技术的迅猛发展&#xff0c;安全性和性能成为了用户关注的焦点。传统容器技…

STM32CubeMX实现4X5矩阵按键(HAL库实现)

为了实现计算器键盘&#xff0c;需要使用4X5矩阵按键&#xff0c;因此&#xff0c;我在4X4矩阵键盘上重新设计了一个4X5矩阵按键。原理图如下&#xff1a; 原理描述&#xff1a; 4X5矩阵按键&#xff0c;可以设置4个引脚为输出&#xff0c;5个引脚为输入模式&#xff0c;4个引…

如何屏蔽搜索结果特定网站?无限添加指定域名屏蔽解决方案

如何通过Chrome插件屏蔽某网站的搜索结果 在使用搜索引擎时&#xff0c;有时我们会希望屏蔽掉某些不想看到的网站。那么&#xff0c;我们可以通过安装油猴&#xff08;Tampermonkey&#xff09;插件&#xff0c;并使用特定脚本来实现这个目的。由于Chrome网上应用店可能无法打…

数据结构之“队列”(全方位认识)

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 前言 上期博客介绍了” 栈 “这个数据结构&#xff0c;他具有先进后出的特点。本期介绍“ 队列 ”这个数据结构&#xff0c;他具有先进先出的特点。 目录…

ASCII码对照表【2024年汇总】

&#x1f37a;ASCII相关文章汇总如下&#x1f37a;&#xff1a; &#x1f388;ASCII码对照表&#xff08;255个ascii字符汇总&#xff09;&#x1f388;&#x1f388;ASCII码对照表&#xff08;Unicode 字符集列表&#xff09;&#x1f388;&#x1f388;ASCII码对照表&#x…

Linux内核链表使用方法

简介&#xff1a; 链表是linux内核中最简单&#xff0c;同时也是应用最广泛的数据结构。内核中定义的是双向链表。 linux的链表不是将用户数据保存在链表节点中&#xff0c;而是将链表节点保存在用户数据中。linux的链表节点只有2个指针(pre和next)&#xff0c;这样的话&#x…

中国星坤连接器:定制化服务,精准选型!

在当今快速发展的电子行业中&#xff0c;连接器作为电子设备中不可或缺的组成部分&#xff0c;其性能和品质直接影响到整个系统的性能表现。中国星坤连接器以其卓越的产品选型系统和质量保证&#xff0c;为全球客户提供了一站式的解决方案。 精准选型&#xff0c;快速定位 中国…

模板进阶:非类型模板参数,类模板特化,模板的编译分离

1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常…

【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

vue-cli 脚手架详细介绍

4 vue-cli 脚手架 1 脚手架介绍 vue-cli也叫vue脚手架,vue-cli是vue官方提供的一个全局命令工具&#xff0c;这个命令可以帮助我们快速的创建一个vue项目的基础架子。 脚手架&#xff1a;搭建好的一个架子&#xff0c;我们在架子上进行开发 开箱即用零配置基于webpack、webpac…

13 学习总结:指针 · 其一

目录 一、内存和地址 &#xff08;一&#xff09;内存 &#xff08;二&#xff09;内存单元 &#xff08;三&#xff09;地址 &#xff08;四&#xff09;拓展&#xff1a;CPU与内存的联系 二、指针变量和地址 &#xff08;一&#xff09;创建变量的本质 &#xff08;二…

【MySQL】逻辑架构与存储引擎

一、逻辑架构 1、MySQL逻辑架构 我们可以根据上图来对sql的执行过程进行分析 第一步&#xff1a;客户端与服务器建立一个连接&#xff0c;从连接池中分配一个线程处理SQL语句第二步&#xff1a;SQL接口接受SQL指令第三步&#xff1a;如果是5.7版本&#xff0c;就会先去缓存中…

SpringMVC(2)——controller方法参数与html表单对应

controller方法参数与html表单对应 0. User实体类 import org.springframework.format.annotation.DateTimeFormat;import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Map;public class User implements Serializable {private …

期末考试结束,老师该如何私发成绩?

随着期末考试的落幕&#xff0c;校园里又恢复了往日的宁静。然而&#xff0c;对于老师们来说&#xff0c;这并不意味着工作的结束&#xff0c;相反&#xff0c;一系列繁琐的任务才刚刚开始。 成绩单的发放&#xff0c;就是其中一项让人头疼的工作。家长们焦急地等待着孩子的考试…