系统架构设计师——计算机体系结构

分值占比3-4分

计算机硬件组成

计算机硬件组成主要包括主机、存储器和输入/输出设备。

  1. 主机:主机是计算机的核心部分,包括运算器、控制器、主存等组件。运算器负责执行算术和逻辑运算;控制器负责协调和控制计算机的各个部件;主存(内存)用于存储正在运行的程序和数据。

  2. 存储器:存储器分为主存和辅存两种类型。主存(内存)是计算机中临时存储数据的地方,通常比辅存速度快,但容量较小。辅存(如硬盘、固态硬盘等)用于长期存储数据,容量较大,但速度较慢。

  3. 输入/输出设备:输入设备(如键盘、鼠标、触摸屏等)用于向计算机输入数据;输出设备(如显示器、打印机、音响等)用于显示或播放计算机处理后的结果。

主机的组成

主机的组成主要包括CPU(中央处理器)、主存储器和控制器等部分。以下是这些部件的具体功能和作用:

  1. CPU(中央处理器)

    • 算术逻辑单元(ALU):负责处理所有的算术运算(如加减乘除)和逻辑运算(如AND、OR、NOT)。
    • 控制单元(CU):解释程序指令,控制数据流向,并管理其它电脑硬件资源。
    • 寄存器:暂时存储数据和指令,包括:
      • 指令寄存器(IR):存储当前正在执行的指令。
      • 地址寄存器(AR):存储将要访问的内存地址。
      • 数据寄存器(DR):暂时存储数据。
      • 状态条件寄存器(PSW):存储处理器的状态信息。
      • 程序计数器(PC):存储下一条要执行的指令的地址。
      • 存储器缓冲寄存器(MBR):在数据传输时作为主存和CPU之间的缓冲。
  2. 主存储器

    • 存储体:主存储器的主要部分,用于存放程序和数据。
    • 存储器地址寄存器(MAR):存储体中用于存放要访问的内存单元的地址。
    • 存储器数据寄存器(MDR):存储体中用于暂存要写入内存或从内存读取的数据。
  3. 控制器

    • 指令译码器(ID):对指令寄存器中的指令进行译码,确定需要执行的操作。
    • 提加寄存器(IR):与指令寄存器配合使用,提供指令的临时存储。
    • 控制逻辑单元:生成控制信号,用于控制数据在各个寄存器和处理器之间的传输。
    • 时序部件:产生时钟信号,同步各部件的操作。

以上是计算机主机内部的主要组成部分及其功能。每个部件都扮演着特定的角色,共同完成计算机的各项操作和数据处理任务。

指令系统

指令系统是计算机硬件的语言系统,它包含了机器所具有的全部指令的集合。反映了计算机所拥有的基本功能。

指令系统作为计算机的基本命令集,体现了计算机处理任务的基本方法。在设计计算机架构时,确定哪些操作由硬件直接实现,哪些由软件间接实现是关键。这直接影响到计算机的性能和灵活性。指令系统的设计和选择可以从以下几个角度进行探讨:

  1. 操作码字段(OP)
    • 操作码字段是指令的一部分,用来指定操作的性质及功能。
    • 每条指令都通过操作码来区分其具体执行的操作类型,如加、减、乘、除等。
    • 操作码的设计要简洁明了,易于理解和使用,以减少错误并提高编程效率。
  2. 地址码字段(Addr)
    • 地址码字段用于指出操作数的存放位置或直接给出操作数。
    • 通过地址码,CPU可以定位到所需的数据或指令存储的具体位置。
    • 地址码的设计需要考虑到存储器的容量与机器的字长,确保指令能够有效访问所需数据。
  3. 指令的功能与操作
    • 指令系统包括数据处理、数据传送、程序控制等多种类型的指令。
    • 每种指令都有其特定的功能,如数据处理指令用于执行算术运算和逻辑运算。
    • 程序控制指令则用于改变程序执行的顺序,如条件转移和转子程序指令。
  4. 指令的格式与类型
    • 指令格式通常包含操作码字段和地址码字段,根据操作数数量的不同,可以分为三地址、二地址、单地址等格式。
    • 选择合适的指令格式可以优化存储空间的使用和提高指令执行的效率。
    • 指令还可以根据功能分为算术运算型、逻辑运算型、数据传送型等。
  5. 指令系统的发展历程
    • 从早期的简单指令系统到现在的复杂指令系统,计算机的功能和性能有了显著提升。
    • 现代计算机通过引入更多面向高级语言的复杂指令,缩小了机器指令与高级语言之间的语义差距。
    • 随着技术的发展,指令系统也在不断地调整和优化,以适应新的技术挑战和应用需求。

总的来说,指令系统不仅仅是计算机硬件的核心部分,它也是计算机功能实现的基础。操作码字段和地址码字段的设计决定了指令的种类和功能,从而影响计算机的处理能力和适用范围。随着计算机技术的发展,指令系统也在不断演进,以提供更强大、更灵活的计算能力。

复杂指令系统

复杂指令系统(CISC)是一种计算机指令集架构,其基本思想是通过进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂

复杂指令系统(CISC)在设计上具有独特的特点和优势,但也存在一些缺点。下面的内容将详细分析其特点:

  1. 指令数量众多
    • CISC指令系统拥有大量的指令,通常有100~50条。这些指令涵盖各种功能,包括数据传输、算术运算、逻辑运算等。
    • 由于指令数量众多,编程者可以方便地找到特定操作对应的指令,这在某种程度上简化了程序设计。
  2. 指令使用频率相差悬殊
    • 最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而部分复杂指令却很少使用。
    • 这种使用频率的悬殊导致许多复杂指令在实际程序中并不实用,增加了硬件的复杂度却没有带来相应的性能提升。
  3. 功能强大的指令集
    • CISC指令集包含丰富的指令,每条指令可以完成多个操作,这使得处理特殊任务时效率较高。
    • 例如,一条单一的指令可能包含存储、加载、计算等多种操作,减少了需要执行的指令数量,提高了程序运行效率。
  4. 灵活的存储器操作
    • CISC架构允许指令直接操作存储器,存储器操作指令多且灵活,这使得数据传递和处理更加直接。
    • 这种灵活性对编写复杂程序和科学计算非常有利,汇编语言程序设计相对简单。
  5. 微程序控制器
    • 在CISC架构中,通常会采用微程序控制器来实现复杂指令。微程序控制器包含微代码,用于解释和执行指令。
    • 通过微代码实现指令可以增加处理器的灵活性,但同时也增加了处理器设计的复杂度和执行时间。
  6. 向后兼容性好
    • CISC架构由于历史悠久,具有良好的向后兼容性。新的处理器能够运行旧的软件和应用程序。
    • 这种向后兼容性使得CISC架构在企业级应用和桌面计算领域得到了广泛应用,如x86体系结构。

精简指令系统

精简指令系统(RISC)是一种计算机指令集架构,其基本思想是通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序

精简指令系统(RISC)在设计上具有显著的特点和优势,这些特点使它与复杂指令系统(CISC)有明显区别。下面的内容将详细解析其特点:

  1. 指令数量少
    • RISC指令系统优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。
    • 由于指令数量较少,硬件设计相对简单,从而降低了设计成本和功耗。
  2. 寻址方式少
    • RISC指令的寻址方式较少,这简化了指令解码过程,提高了指令执行效率。
    • 这种简化同时也减少了编译器的负担,使得编译过程更加高效。
  3. 指令长度固定
    • RISC指令长度固定,指令格式种类少,这有利于流水线的高效执行。
    • 固定长度的指令简化了硬件设计,使得每条指令都能在一个机器周期内完成。
  4. 硬布线逻辑控制为主
    • 为了提高操作的执行速度,RISC通常采用硬布线逻辑(组合逻辑)来构建控制器。
    • 与微程序控制相比,硬布线逻辑控制能够更快地完成指令执行,从而提高整体性能。
  5. 单周期指令执行
    • RISC采用流水线技术,大部分指令都能在一个机器周期内完成。
    • 这种设计使得处理器可以高效地处理指令,提升了运算速度和系统吞吐率。
  6. 优化的编译器
    • RISC的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择。
    • 优化编译器可以生成高效率执行的机器代码,进一步提升程序运行效率。
  7. CPU中的通用寄存器数量多
    • RISC架构的CPU中通常包含多个通用寄存器,一般在32个以上,多的甚至上千个。
    • 大量的寄存器减少了对存储器的依赖,从而加快了数据处理速度和指令执行效率。

指令流水

要计算流水线周期和100条指令全部执行完毕所需的时间,我们首先需要了解流水线周期的计算方法。流水线周期是指执行时间最长的一个阶段,它决定了流水线的频率。对于给定的例子,我们可以按照以下步骤进行计算:

  1. 确定流水线周期

    • 取指时间为2ns,分析时间为2ns,执行时间为1ns。
    • 流水线周期取这些阶段中最长的时间为周期长度,因此流水线周期为2ns(取指和分析的时间)。
  2. 计算100条指令全部执行完毕所需的时间

    • 公式为: ( t 1 + t 2 + … + t k ) + ( n − 1 ) ∗ Δ t (t_1 + t_2 + \ldots + t_k) + (n - 1) * \Delta t (t1+t2++tk)+(n1)Δt,其中 t 1 , t 2 , … , t k t_1, t_2, \ldots, t_k t1,t2,,tk是各个阶段的时间, n n n是指令数, Δ t \Delta t Δt是流水线周期。
    • 将给定的值代入公式: ( 2 + 2 + 1 ) + ( 100 − 1 ) ∗ 2 = 5 + 99 ∗ 2 = 5 + 198 = 203 (2 + 2 + 1) + (100 - 1) * 2 = 5 + 99 * 2 = 5 + 198 = 203 (2+2+1)+(1001)2=5+992=5+198=203ns。

因此,流水线周期是2ns,100条指令全部执行完毕需要的总时间是203ns。

流水线的吞吐率(TP)和最大吞吐率(TP_max)是衡量流水线性能的重要指标。吞吐率是指单位时间内流水线处理的结果数,对于指令执行而言,就是单位时间内完成的指令数。下面是关于流水线吞吐率和最大吞吐率的详细解析:

流水线吞吐率(TP)

吞吐率定义为单位时间内流水线处理的结果数。在流水线中,这通常是指在稳定状态下,流水线每个周期完成的任务数。公式为:

T P = n T TP = \frac{n}{T} TP=Tn

其中,$ n $ 是任务数(或指令数),$ T $ 是完成所有任务所需的总时间。

最大吞吐率(TP_max)

最大吞吐率是在理想情况下,流水线每个周期都能输出一个结果时的吞吐率。在这种情况下,吞吐率等于流水线的周期时间的倒数,即:

T P m a x = 1 Δ t TP_{max} = \frac{1}{\Delta t} TPmax=Δt1

其中,$ \Delta t $ 是流水线的周期时间。

流水线执行时间

流水线执行时间是指从第一条指令开始执行到最后一条指令完成的总时间。对于一个分为$ k 个阶段的流水线,执行 个阶段的流水线,执行 个阶段的流水线,执行 n 条指令的总时间 条指令的总时间 条指令的总时间 T $可以表示为:

T = ( k + ( n − 1 ) ) × Δ t T = (k + (n - 1)) \times \Delta t T=(k+(n1))×Δt

流水线加速比(S)

流水线加速比是指使用流水线执行时间与不使用流水线执行时间的比值。公式为:

S = T n o n − p i p e l i n e d T p i p e l i n e d S = \frac{T_{non-pipelined}}{T_{pipelined}} S=TpipelinedTnonpipelined

其中,$ T_{non-pipelined} $ 是不使用流水线时执行$ n 条指令所需的时间, 条指令所需的时间, 条指令所需的时间, T_{pipelined} $ 是使用流水线执行$ n $条指令所需的时间。

存储系统

存储器的层次

存储器的层次结构是一个由多级存储设备组成的系统,其顶层是寄存器,然后依次是Cache、主存和磁盘

寄存器位于CPU内部,它的访问速度最快,能在单个CPU周期内完成,容量有限,仅能存储少量数据,但价格相对较高。Cache使用静态随机存取存储器,位于CPU和主存之间,用于暂存频繁访问的指令和数据。它比寄存器慢,但速度仍远快于主存,其价格也较高。

主存通常使用动态随机存取存储器,容量较大,价格适中,但速度慢于Cache。磁盘包括固态硬盘和机械硬盘,它们有极大的容量和最低的成本,但访问速度最慢。

从用户角度出发,存储器的三个主要指标是容量、速度和每位价格。越靠近CPU的存储器容量越小、速度越快、价格越高;反之,远离CPU的存储器则容量大、速度慢、价格便宜。这种层次结构不仅解决了存储器的速度、容量和成本之间的矛盾,还通过局部性原理优化了存储访问效率。

主存储器

主存用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地 进行读/写。

在计算机系统中,CPU与主存之间的数据交换是通过总线进行的,具体涉及到数据总线、地址总线和控制总线。以下是这一过程的详细描述:

数据总线(DR)

  • 功能:数据总线用于在CPU和主存之间传输数据。
  • 特点:它的宽度决定了每次可以传输数据的位数,直接影响数据传输的速度和效率。

地址总线(AR)

  • 功能:地址总线用于从CPU向主存传递地址信息。
  • 特点:地址总线的宽度决定了CPU可以直接寻址的内存范围。例如,32位宽的地址总线可以寻址到4GB的内存空间。

控制总线

  • 功能:控制总线携带的是控制信号,如读/写控制信号。
  • 特点:控制总线确保数据传输的正确性和有序性,它传达了CPU对外围设备的操作命令,如读取或写入数据的指令。

读/写操作过程

  1. 读操作

    • CPU通过地址总线发送所要读取数据的内存地址。
    • 控制总线发出读信号。
    • 数据通过数据总线从主存传输到CPU。
  2. 写操作

    • CPU通过地址总线发送将要写入数据的内存地址。
    • 控制总线发出写信号。
    • 数据通过数据总线从CPU传输到主存。

典型真题

题目

内存按字节编址,地址从A4000H到CBFFFH,共有()个字节。若用存储容量为32KX8bit的存储芯片构成该内存,至少需要()片。

A、80K
B、96K
C、160K
D、192K

A、2
B、5
C、8
D、10

解题思路
  1. 计算地址范围

    • 首先,将十六进制地址转换为十进制地址。
    • 计算两个地址之间的差值,得到总的字节数。
  2. 计算所需芯片数量

    • 每个存储芯片的容量为32K字节,即32768字节(因为1K = 1024字节)。
    • 使用总字节数除以单片芯片的字节数,得到所需的芯片数量。
    • 如果结果不是整数,向上取整得到实际需要的芯片数量。
具体步骤
  1. 地址转换和计算

    • A4000H = $ 10 \times 65536 + 4 \times 4096 + 0 \times 256 = 655360 + 16384 = 671744 $
    • CBFFFH = $ 12 \times 65536 + 11 \times 4096 + 15 \times 256 + 15 = 786432 + 45056 + 3840 + 15 = 835343 $
    • $ 835343 - 671744 = 163599 $ 字节
  2. 计算芯片数量

    • 每片芯片容量:32768 字节
    • 所需芯片数:$ \lceil \frac{163599}{32768} \rceil = 5 $
结论
  • 从地址A4000H到CBFFFH共有163599个字节。
  • 若用存储容量为32KX8bit的存储芯片构成该内存,至少需要5片。
  • 正确答案是 B、5。

磁盘阵列

磁盘阵列(RAID)是一个由多个磁盘驱动器组成的存储系统,旨在提供更高的性能、更大的存储容量和更好的数据可靠性。下面是关于RAID的详细解析:

RAID的级别

RAID共有8个不同的级别,每个级别都提供了不同的性能和冗余特性。这些级别包括:

  1. RAID 0 - 无冗余分条:提供数据分条技术,但不提供冗余,因此没有容错能力。
  2. RAID 1 - 镜像:数据被镜像到两个或多个磁盘上,提供数据冗余,但磁盘利用率较低。
  3. RAID 2 - 位级条带化加汉明码:使用汉明码进行错误校正,适用于高性能计算环境。
  4. RAID 3 - 带奇偶校验的并行访问:所有数据磁盘共享一个奇偶校验磁盘,适用于大文件的顺序访问。
  5. RAID 4 - 带专用奇偶校验的磁盘镜像:与RAID 3类似,但奇偶校验信息存储在专用磁盘上。
  6. RAID 5 - 带分散奇偶校验的分条:类似于RAID 0,但增加了分散的奇偶校验信息,提高了读取速度和可靠性。
  7. RAID 6 - 双奇偶校验:提供双重奇偶校验,即使两个磁盘同时失效也能保持数据完整性。
  8. RAID 7 - 带网络支持的磁盘阵列:使用高速缓存和网络连接,适用于大型数据中心。

RAID的主要技术

  1. 分块技术:将数据分成小块,分布在多个磁盘上,可以提高数据传输速率和并行处理能力。
  2. 交叉技术:交叉技术是指将数据以交叉的方式存储在多个磁盘上,可以改善I/O性能,减少磁盘访问时间。
  3. 重聚技术:在数据从多个磁盘读取后,重聚技术负责将数据重新组合成用户所需的格式,确保数据的完整性和可用性。

RAID的优势

  • 提高读写速度:通过并行访问多个磁盘,RAID可以显著提高数据的读写速度。
  • 增加存储容量:RAID系统通过组合多个磁盘的存储空间,提供了更大的存储容量。
  • 提供冗余保护:除了RAID 0,其他RAID级别都提供了不同程度的数据冗余保护,以防数据丢失。
  • 提高可靠性:通过冗余和错误校正技术,RAID系统提高了数据的可靠性和系统的容错能力。

校验码

循环冗余校验码

循环冗余校验(CRC)是一种通过特定的生成多项式来检测或验证数据传输或存储过程中的错误的技术。下面是关于CRC的详细解析:

CRC的基本原理

CRC基于除法算法,使用一个称为生成多项式的特定多项式来生成校验码。生成多项式的最高位为1,且通常比要计算的数据位长。CRC的处理过程如下:

  1. 准备数据:将要传输或存储的数据表示为一个二进制数。
  2. 选择生成多项式:选择一个适当的生成多项式,该多项式的位数决定了校验位的长度。
  3. 编码过程:将数据与生成多项式进行模2除法,得到的余数即为CRC校验码。
  4. 附加校验码:将校验码附加到数据的末尾,形成完整的CRC编码数据。

CRC的数学表达

假设有一个数据位序列 $ D(x) $ 和一个生成多项式 $ G(x) $,其中 $ G(x) $ 的次数为 $ r $(即校验位的长度)。CRC编码的过程可以表示为:

CRC编码 = D ( x ) ⋅ x r m o d    G ( x ) \text{CRC编码} = D(x) \cdot x^r \mod G(x) CRC编码=D(x)xrmodG(x)

这里的 $ \mod G(x) $ 表示模2除法操作。

CRC的特点

  • 错误检测能力:CRC能够检测出大部分常见的错误,如单比特错误、双比特错误等。
  • 无法纠正错误:CRC仅用于错误检测,不能纠正错误。
  • 低误判率:CRC具有极低的误判率,这意味着很少会将错误数据误认为是正确数据。
  • 灵活性:通过选择不同的生成多项式,可以在检测能力和系统开销之间做出权衡。

CRC的应用

  • 数据通信:在数据传输中,CRC用于确保数据的正确性,特别是在无线通信和网络协议中。
  • 磁介质存储:在硬盘驱动器和固态硬盘中,CRC用于检测存储数据的错误。
  • 文件系统:许多文件系统使用CRC来检测文件数据的完整性。

结论

循环冗余校验(CRC)是一种强大且广泛应用于数据通信和存储领域的错误检测技术。它利用生成多项式对数据进行编码,产生校验码,从而在数据传输或存储过程中提供错误检测功能。尽管CRC无法纠正错误,但其高可靠性和低误判率使其成为保护数据完整性的重要工具。

考试真题

好的,下面是整理后的题目和解题思路:

题目

采用CRC进行差错校验,生成多项式为 $ G(X) = X^4 + X + 1 $,信息码字为10111,则计算出的CRC校验码是( )。

A. 0000
B. 0100
C. 0010
D. 1100

解题步骤
  1. 化解多项式:生成多项式 $ G(X) = X^4 + X + 1 $ 对应的二进制数为10011。

  2. 信息码加0:在信息码字10111后面添加4个0,变为101110000。这些额外的位用于存放计算出的CRC校验码。

  3. 模二除运算:使用生成多项式10011对101110000进行模二除法运算。模二除法类似于常规的除法,但使用的是异或操作而不是减法,并且不进位。

迭代过程:

在这里插入图片描述

得到余数:

最终的余数是最后5位,这5位即为CRC校验码。

总线

总线是计算机硬件系统中的重要组成部分,它负责在各个组件之间传输数据和控制信号。根据不同的标准,总线可以分为多种类型,每种类型的总线都有其特定的设计目的和应用场景。下面是对您提到的各种总线的简要概述:

内部总线与外部总线

  • 内部总线:连接CPU内部的各个部件,如寄存器、算术逻辑单元等。
  • 外部总线:连接CPU与计算机系统中的其他主要组件,如内存、输入输出设备等。

按功能分类

  • 地址总线:传输地址信息,指定数据的来源或目的地。
  • 数据总线:传输实际的数据。
  • 控制总线:传输控制信号,用于管理数据总线和地址总线的操作。

按数据线的多少分类

  • 并行总线:具有多条双向数据线,能够同时传输多位数据,提高了数据传输速率,适用于近距离连接,如计算机内部的连接。
  • 串行总线:只有一条或两条单向数据线,数据传输速率相对较低,但适合长距离连接,常用于计算机之间或计算机与其他系统间的通信。

应用示例

  • 系统总线:如PCI, PCIe,主要用于计算机内部各部件的连接,属于并行总线。
  • 通信总线:如USB, RS-232,主要用于计算机与外部设备的连接,可以是串行也可以是并行。
  • 串行总线:如I²C, SPI,主要用于嵌入式系统和外围设备的通信,适合长距离连接。

特点与适用场景

  • 并行总线:由于有多条数据线,可以同时传输多个数据位,因此传输速度快,适合内部高速数据传输。
  • 串行总线:数据传输速度相对较慢,但由于只需要少量的线缆,成本较低,易于维护,适合远距离通信。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

react+ts+antd项目搭建

前言: 基于ts语言创建react项目,node版本是v16.14.2 一、 脚手架创建项目 全局安装 npm install -g creacte-react-app创建项目file-management,ts需要添加–template typescript npx create-react-app file-management --template typesc…

如何搭建10万个H100 GPU的集群:电力、并行化、网络拓扑与成本优化

引言 在现代人工智能的发展中,构建大规模GPU集群是提升计算能力的关键手段。今天我们探讨如何搭建一个包含10万个H100 GPU的集群。这个项目不仅涉及巨大的资本支出,还面临电力供应、并行化处理、网络拓扑结构以及可靠性和恢复等多方面的挑战。通过深入分…

天命奇御下载

解压码/安装码 615634 天翼:https://cloud.189.cn/t/qAjmAnIB3eIv 链接: https://pan.baidu.com/s/1rArV_Q_pB-9U4kEDtWf_gQ 提取码: igaq 天命奇御/官方中文/整合V.2.3DLC伏虎迷蹤/完美学习版下载地址: 点击下载 原始地址:https://www.aiwanba.net/post…

在RT-Thread-Studio中添加arm_math库

1.在CMSIS\Lib\GCC中找到对应的库,如本文使用的libarm_cortexM4lf_math.a。将库拷贝到工程,并做如下图设置。搜索路径为库文件在项目中的实际位置。 2.将CMSIS\DSP\Include下的文件复制到工程目录中,并添加包含路径 3.添加宏定义&#xff0c…

APP自动更换包名和签名系统源码

APP自动更换包名和签名系统源码 系统通过对apk反编译,随机包名,随机签名,混淆代码等方式,回编译生成新的apk安装包通过系统智能自动处理,间隔5分钟(可以自定义时间)生成一个新包,通…

算法思想总结:优先级队列

一、最后一块石头的重量 . - 力扣(LeetCode) 我们每次都要快速找到前两个最大的石头进行抵消,这个时候用优先级队列(建大堆),不断取堆顶元素是最好的!每次删除堆顶元素后,可以自动调整&#xf…

IP地址:网络还是设备的标识符?

在数字化时代,IP地址已成为我们连接互联网、进行信息交流的基石。然而,关于IP地址的分配和来源,很多人可能并不清楚。它究竟是根据网络来分配,还是基于设备来赋予?下面跟着虎观代理小二一起来解析IP地址的奥秘&#xf…

高效使用 Guzzle:POST 请求与请求体参数的最佳实践

介绍 在现代爬虫技术中,高效发送 HTTP 请求并处理响应数据是关键步骤之一。Guzzle 是一个强大的 PHP HTTP 客户端,广泛应用于发送同步和异步请求。本文将介绍如何使用 Guzzle 发送 POST 请求,特别是如何传递请求体参数,并结合代理…

Windows系统安装分布式搜索和分析引擎Elasticsearch与远程访问详细教程

文章目录 前言系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 前言 本文主要介绍如何在Windows系统安装分布式搜索和分析引擎Elasticsearch&#xff0c…

HandlerMethodArgumentResolver :深入spring mvc参数解析机制

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; 搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到三十…

[k8s生产系列]:k8s集群故障恢复,etcd数据不一致,kubernetes集群异常

文章目录 摘要1 背景说明2 故障排查2.1 查询docker与kubelet状态2.2 查看kubelet服务日志2.3 重启docker与kubelet服务2.3.1 首先kubelet启动起来了&#xff0c;但是报错master节点找不到2.3.2 查询kubernetes集群服务&#xff0c;发现etcd与kube-apiserver均启动异常 2.4 etcd…

2024年中国网络安全市场全景图 -百度下载

是自2018年开始&#xff0c;数说安全发布的第七版全景图。 企业数智化转型加速已经促使网络安全成为全社会关注的焦点&#xff0c;在网络安全边界不断扩大&#xff0c;新理念、新产品、新技术不断融合发展的进程中&#xff0c;数说安全始终秉承科学的方法论&#xff0c;以遵循…

Rhino 犀牛三维建模工具下载安装,Rhino 适用于机械设计广泛领域

Rhinoceros&#xff0c;这款软件小巧而强大&#xff0c;无论是机械设计、科学工业还是三维动画等多元化领域&#xff0c;它都能展现出其惊人的建模能力。 Rhinoceros所包含的NURBS建模功能&#xff0c;堪称业界翘楚。NURBS&#xff0c;即非均匀有理B样条&#xff0c;是计算机图…

怎样在Python中使用oobabooga的API密钥,通过端口5000获取模型列表的授权

题意&#xff1a; oobabooga-textgen-web-ui how to get authorization to view model list from port 5000 via the oobas api-key in python 怎样在Python中使用oobabooga的API密钥&#xff0c;通过端口5000获取模型列表的授权 问题背景&#xff1a; I wish to extract an…

抬头显示器HUD原理及特性

HUD基本原理 抬头数字显示仪(Head Up Display)&#xff0c;又叫平视显示系统&#xff0c;它的作用&#xff0c;就是把时速、导 航等重要的行车信息&#xff0c;投影到驾驶员前风挡玻璃上&#xff0c;让驾驶员尽量做到不低头、不转头 就能看行车信息。 HUD成像为离轴三反的过程&…

代码随想录算法训练营第2天|LeetCode977,209,59

977.有序数组平方 题目链接&#xff1a; 977. 有序数组的平方 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a; 双指针法经典题目 | LeetCode&#xff1a;977.有序数组的平方_哔哩哔哩_bilibili 第一想法 暴力算法肯定是先将元素…

关于软件本地化,您应该了解什么?

软件本地化是调整软件应用程序以满足目标市场的语言、文化和技术要求的过程。它不仅仅涉及翻译用户界面&#xff1b;它包含一系列活动&#xff0c;以确保软件在目标语言环境中可用且相关。以下是您应该了解的有关软件本地化的一些关键方面&#xff1a; 了解范围 软件本地化是…

【软件测试】之黑盒测试用例的设计

&#x1f3c0;&#x1f3c0;&#x1f3c0;来都来了&#xff0c;不妨点个关注&#xff01; &#x1f3a7;&#x1f3a7;&#x1f3a7;博客主页&#xff1a;欢迎各位大佬! 文章目录 1.测试用例的概念2.测试用例的好处3. 黑盒测试用例的设计3.1 黑盒测试的概念3.2 基于需求进行测…

暗潮短视频:成都柏煜文化传媒有限公司

暗潮短视频&#xff1a;涌动的新媒体力量 在数字化时代的浪潮中&#xff0c;短视频以其独特的魅力和无限的潜力&#xff0c;迅速成为新媒体领域的一股强大力量。而在这片繁荣的短视频领域中&#xff0c;成都柏煜文化传媒有限公司“暗潮短视频”以其独特的定位和深邃的内容&…

论文浅尝 | 从最少到最多的提示可在大型语言模型中实现复杂的推理

笔记整理&#xff1a;王泽元&#xff0c;浙江大学博士 链接&#xff1a;https://openreview.net/forum?idWZH7099tgfM 1. 动机 尽管深度学习已经取得了巨大的成功&#xff0c;但它与人类智慧仍然存在一些明显差距。这些差距包括以下几个方面&#xff1a;1&#xff09;学习新任…