【学习笔记】计算机组成原理(八)

news2024/11/15 4:39:54

CPU 的结构和功能

文章目录

  • CPU 的结构和功能
    • 8.1 CPU的结构
      • 8.1.1 CPU的功能
      • 8.1.2 CPU结构框图
      • 8.1.3 CPU的寄存器
      • 8.1.4 控制单元CU和中断系统
    • 8.2 指令周期
      • 8.2.1 指令周期的基本概念
      • 8.2.2 指令周期的数据流
    • 8.3 指令流水
      • 8.3.1 指令流水原理
      • 8.3.2 影响流水线性能的因素
      • 8.3.3 流水线性能
      • 8.3.4 流水线中的多发技术
      • 8.3.5 流水线结构
    • 8.4 中断系统
      • 8.4.1 概述
        • 8.4.1.1 引发中断的因素
        • 8.4.1.2 中断系统需解决的问题(功能)
      • 8.4.2 中断请求标记和中断判优逻辑
        • 8.4.2.1 中断请求标记
        • 8.4.2.2 中断判优逻辑
      • 8.4.3 中断服务程序入口地址的寻找
      • 8.4.4 中断响应
        • 8.4.4.1 响应中断的条件
        • 8.4.4.2 响应中断的时间
        • 8.4.4.3 中断隐指令
      • 8.4.5 保护现场和恢复现场
      • 8.4.6 中断屏蔽技术 - 多重中断
        • 8.4.6.1 多重中断的概念
        • 8.4.6.2 实现多重中断的条件
        • 8.4.6.3 (中断)屏蔽技术
        • 8.4.6.4 多重中断的断点保护

8.1 CPU的结构

8.1.1 CPU的功能

  • 控制器的功能
    • 取指令:把指令从内存中取出
    • 分析指令:分析指令包括两部分内容:其一,分析此指令要完成什么操作,即控制器需发出什么操作命令;其二,分析参与这次操作的操作数地址,即操作数的有效地址。
    • 执行指令:根据分析指令产生的“操作命令"和“操作数地址”的要求,形成操作控制信号序列(不同的指令有不同的操作控制信号序列),通过对运算器、存储器以及I/O设备的操作,执行每条指令。
    • 控制程序的输入以及结果的输出
    • 总线的管理
    • 处理异常情况和特殊请求
  • 运算器的功能:实习算术运算和逻辑运算
  • CPU的功能需求:
    • 具有控制程序的顺序执行(称指令控制)
    • 产生完成每条指令所需的控制命令(称操作控制)
    • 对各种操作加以时间上的控制(称时间控制)
    • 对数据进行算术运算和逻辑运算(数据加工)
    • 处理中断

8.1.2 CPU结构框图

  • CPU与系统总线

在这里插入图片描述

8.1.3 CPU的寄存器

  • 用户可见寄存器

    • 通用寄存器

      存放操作数,如8086系统中的AX、BX…
      也可以做某种寻址方式所需要的专用寄存器。

    • 数据寄存器

      存放操作数,满足各种数据类型,如整型数据的寄存器、浮点数类型的寄存器…
      两个寄存器拼接存放双倍字长数据,例如在乘法操作时,就将ACC与MQ拼接在一起,保存相乘后的积。

    • 地址寄存器

      存放地址,其位数应满足最大的地址范围。如8086系统中的段寄存器,如段基址、栈指针。

    • 条件码寄存器

      存放条件码,可作程序分支依据。如正、负、零、溢出、进位等。

  • 用户不可见寄存器

    • 控制寄存器

      在这里插入图片描述

    • 状态寄存器

      反映指令执行结果的情况、计算机软件硬件状态。

      状态寄存器和条件码寄存器类似 —— 用于存放条件码

      PSW寄存器:程序状态字寄存器,用于存放程序状态字。

      程序状态字:在中断或者是子程序调用过程当中,为了能够使程序正确的返回断点,返回断点后能够继续执行给定的程序,在中断或者转子程序之前,就要保存主程序的运行现场和程序断点,这些运行现场和断点包括了程序运行的软件信息和硬件信息,这些信息保存在寄存器当中,有些表示程序运行状态的寄存器可以通过指令集当中的指令进行读/写,有一些不能通过指令集中的指令进行读,因为涉及到的状态比较多,如果为每一个状态都设计一条指令来进行读,则指令集会变得非常庞大。
      为了完成程序现场和程序断点的保存,就将这些软硬件状态相关的寄存器集合成一个大的寄存器,这个寄存器就是程序状态字,程序状态字比较长,有些程序状态字可以达到几千位。
      可以通过交换程序状态字的方式,来完成程序现场的切换,使得程序中断当中,保存程序断点以及恢复程序断点比较容易。

8.1.4 控制单元CU和中断系统

  • 控制单元CU

    • 产生全部指令的微操作命令序列。任何一条指令,要在CPU上执行,CPU要对指令进行译码,根据这是什么样的指令,完成对应的功能,要产生完成这些功能需要的微操作命令,并且保证这些命令的顺序。
    • CU有两种设计方式
      • 组合逻辑设计,完全由组合逻辑硬件(硬连线逻辑)来实现,这种方式速度快,如RISC计算机控制器的实现都是采用硬连线逻辑。
      • 微程序设计,采用存储逻辑进行设计,设计简单,适用于复杂功能的指令的设计。
  • 中断系统

    详细内容在8.4节

8.2 指令周期

8.2.1 指令周期的基本概念

  • 指令周期

    取出并执行一条指令所需的全部时间(解释一条指令需要的全部时间)

    在这里插入图片描述

    在这里插入图片描述

8.2.2 指令周期的数据流

  • 取值周期的数据流

    在这里插入图片描述

  • 间址周期的数据流

    在这里插入图片描述

  • 执行周期的数据流

    不同指令的执行周期的执行数据流不同。详细见第九章。

  • 中断周期的数据流

    在这里插入图片描述

8.3 指令流水

  • 提高机器速度

    • 提高访存速度

      • 使用高性能/高速度芯片
      • 使用Cache
      • 使用多体并行:对多个存储体进行交叉访问,在一个存储周期当中,有多个存储体可以向CPU提供数据(CPU可以向同时取得多个存储体数据)。
    • 提高I/O与主机之间的传送速度

      • 程序查询方式(CPU 和 I/O 串行工作 )→ 程序中断方式 → DMA → 通道 → I/O处理机
      • 使用多总线方式进行传送
    • 提高运算器的速度

      • 使用高性能芯片
      • 改进算法
      • 快速进位链
    • 为了提高整机处理能力,除了使用高速部件之外,还可以改进系统结构(处理器的体系结构),开发系统的并行性。

  • 系统的并行性

    • 并行 - 时间上互相重叠

      • 并发 两个或两个以上事件在同一时间段发生
      • 同时两个或两个以上事件在同一时刻发生
    • 并行性的等级

      • 过程级(程序、进程) 粗粒度 软件实现
      • 指令级ILP 细粒度 硬件实现
        • (指令之间) 两条或多条指令之间,在同一时刻都处于被解释的状态
        • (指令内部) 指令内部的操作、微操作之间并行的操作。

8.3.1 指令流水原理

在这里插入图片描述

8.3.2 影响流水线性能的因素

  • 结构相关 —— 不同指令争用同一功能部件产生资源冲突。

    在这里插入图片描述

  • 数据相关 —— 不同指令因重叠操作,可能改变操作数的读/写访问顺序。

    在这里插入图片描述

  • 控制相关 —— 由转移指令引起

    在这里插入图片描述

8.3.3 流水线性能

单位时间内流水线所完成的指令或者输出结果的数量。

​ 设 m 段流水线各段时间为 Δt

  • 最大吞吐率

    流水线满负荷运转,没有各种阻碍流水线性能因素的影响(结构相关、数据相关、转移等)所能达到的最大的吞吐率是多少,即流水线在连续流动达到稳定状态后所获得的吞吐率。

T p m a x = 1 Δ t \mathrm{T}_{pmax} = \frac{1}{\Delta{t}} Tpmax=Δt1

  • 实际吞吐率

    实际上由于流水线在开始时有一段建立时间、结束时有一段排空时间以及各种相关因素使流水线无法连续流动,所以实际吞吐率总是小于最大吞吐率。

    流水线满负荷运转,一段时间内,完成的指令条数n除以完成这些指令花费的时间。
    T p = n m ⋅ Δ t + ( n − 1 ) ⋅ Δ t = 1 Δ t ⋅ [ 1 + m − 1 n ] = T p m a x 1 + m − 1 n \mathrm{T}_{p} = \frac{n}{{m}\cdot\Delta{t} + (n-1)\cdot\Delta{t}} = \frac{1}{\Delta{t}\cdot\left[ 1 + \frac{m-1}{n}\right]} = \frac{\mathrm{T}_{pmax}}{1 + \frac{m-1}{n}} Tp=mΔt+(n1)Δtn=Δt[1+nm1]1=1+nm1Tpmax

    例如 一条指令分为 m = 6 段,总共 n = 9 条指令 第一条指令花费时间是 6Δt,总共是 6 Δ t + ( 9 − 1 ) Δ t = 14 Δ t 6\Delta{t} + (9-1)\Delta{t} = 14\Delta{t} t+(91)Δt=14Δt 那么实际吞吐率为 9 14 Δ t \frac{9}{14 \Delta{t}} 14Δt9

    仅当 n ≫ m n \gg m nm (n 远大于m)时,才会有 T p ≈ T p m a x \mathrm{T}_{p} \approx \mathrm{T}_{pmax} TpTpmax
    lim ⁡ n − m → + ∞ T p = lim ⁡ n − m → + ∞ n m ⋅ Δ t + ( n − 1 ) ⋅ Δ t = T p m a x \lim_{n-m \to +\infty}\mathrm{T}_{p} = \lim_{n-m \to +\infty} \frac{n}{m\cdot\Delta{t} + (n-1)\cdot\Delta{t}} = \mathrm{T}_{pmax} nm+limTp=nm+limmΔt+(n1)Δtn=Tpmax

  • 加速比 Sp

    m段流水线采用流水线技术和不采用流水线技术两种方法速度的比值,用来衡量流水线的效果。

    完成n条指令在m段流水线上共需
    T = m ⋅ Δ t + ( n − 1 ) ⋅ Δ t T = {m}\cdot\Delta{t} + (n-1)\cdot\Delta{t} T=mΔt+(n1)Δt
    完成n条指令在等效的非流水线上共需
    T ′ = n ⋅ m ⋅ Δ t T' = {n}\cdot{m}\cdot\Delta{t} T=nmΔt
    则加速比
    S p = T ′ T = n ⋅ m ⋅ Δ t m ⋅ Δ t + ( n − 1 ) ⋅ Δ t = n ⋅ m m + ( n − 1 ) = m 1 + m − 1 n S_p = \frac{T'}{T} = \frac{{n}\cdot{m}\cdot\Delta{t}}{{m}\cdot\Delta{t} + (n-1)\cdot\Delta{t}} = \frac{{n}\cdot{m}}{m + (n-1)} = \frac{m}{1 + \frac{m-1}{n}} Sp=TT=mΔt+(n1)ΔtnmΔt=m+(n1)nm=1+nm1m
    可以看出, 在 n ≫ m n \gg m nm (n 远大于m)时, Sp 接近于m, 即当流水线各段时间相等时,其最大加速比等于流水线的段数。
    lim ⁡ n − m → + ∞ S p = lim ⁡ n − m → + ∞ n ⋅ m ⋅ Δ t m ⋅ Δ t + ( n − 1 ) ⋅ Δ t = m \lim_{n-m \to +\infty}\mathrm{S}_{p} = \lim_{n-m \to +\infty} \frac{{n}\cdot{m}\cdot\Delta{t}}{m\cdot\Delta{t} + (n-1)\cdot\Delta{t}} = m nm+limSp=nm+limmΔt+(n1)ΔtnmΔt=m

  • 效率 E
    E = n ⋅ m ⋅ Δ t m ⋅ ( m + n − 1 ) = n m + n − 1 = S p m = T p ⋅ Δ t E = \frac{{n} \cdot {m} \cdot \Delta {t}}{{m} \cdot {(m+n-1)}} = \frac{n}{m+n-1} = \frac{S_p}{m} = T_p \cdot \Delta{t} E=m(m+n1)nmΔt=m+n1n=mSp=TpΔt

    在这里插入图片描述

8.3.4 流水线中的多发技术

  • 超标量技术

    在这里插入图片描述

  • 超流水线技术

    在这里插入图片描述

  • 超长指令字技术

    在数字信号处理,多媒体信号处理中,用的非常广泛,由编译程序挖掘出指令间潜在的并行性(根据计算机当中执行部件的种类和数量来决定), 另外指令之间不能有相关性,编译器找到了这些可以并行执行的指令,然后将这些指令组合成 一条具有多个操作码字段的超长指令字(可达几百位,包括多个操作码字段,多个操作数字段),这条指令被从计算机的内存中取出,多个操作码字段进行译码,多个并行的部件分别执行相应的操作。
    这种方式减少了取指时间,因为每次取出多条指令

    在这里插入图片描述

  • 对比

    在这里插入图片描述

8.3.5 流水线结构

  • 指令流水线

    在这里插入图片描述

  • 运算流水线

    在这里插入图片描述

8.4 中断系统

8.4.1 概述

8.4.1.1 引发中断的因素

在这里插入图片描述

8.4.1.2 中断系统需解决的问题(功能)
  • 各中断源如何向CPU提出中断请求
  • 有多个中断源同时提出请求怎么办
  • 有中断源提出中断请求,CPU什么条件、什么时间、以什么方式响应中断
  • 如何保护断点、现场
  • 如何寻找中断服务程序入口地址
  • 如何恢复现场、断点
  • 如果在处理中断的过程当中又出现了新的中断怎么办

用软件+硬件的方式来实现中断系统需要的功能

​ 不同的计算机对中断系统的软硬件功能的划分是不一样的主要依据于要设计的中断系统的速度、设计的复杂度和设计的灵活性这三个方面考量折中。

8.4.2 中断请求标记和中断判优逻辑

8.4.2.1 中断请求标记

每一个中断源设计一个触发器INTR,用这个触发器来标记这个中断源是否提出了中断请求,每一个中断源对应都一个中断请求标志触发器,多个中断源对应的多个中断请求标志触发器从逻辑上组成中断请求标志寄存器。

在这里插入图片描述

8.4.2.2 中断判优逻辑

如果有多个中断源同时提出中断请求,需要响应最重要的那个,所以要把中断源根据重要性进行分级,即中断源的优先级。用中断判优逻辑来确定在现有的的中断请求源当中哪个优先级最高,就响应哪个中断。

  • 硬件实现(排队器)

    在现代计算机当中,大部分CPU都是用硬件来实现中断判优逻辑

在这里插入图片描述

  • 软件实现(程序查询)

    在这里插入图片描述

8.4.3 中断服务程序入口地址的寻找

  • 硬件向量法

    在这里插入图片描述

    硬件实现速度快,但是设计的灵活性比较低。

  • 软件查询法

    在这里插入图片描述

    软件的方法显然更加灵活,如果想改变中断服务的优先级,就改变中断识别程序的顺序即可

8.4.4 中断响应

8.4.4.1 响应中断的条件

并不是中断源提出中断服务请求CPU就要立即响应,为了表示CPU是否允许响应中断请求,CPU内部有一个EINT允许中断触发器,只有EINT = 1的时候,才会响应中断请求。

CPU只能支持单重中断

单重中断在CPU执行中断服务程序的过程中不能被打断。当有新的更高优先级的中断发生时,正在执行的中断服务程序不会被暂停,转而执行新的中断服务程序。

8.4.4.2 响应中断的时间

不是任何时间

  • 一般的机器CPU只有在指令执行阶段结束以后才能响应中断请求。
  • 有些计算机某些指令比较复杂,执行时间可能比较长,为了能够及时处理异常事件,允许CPU在执行指令的过程中进行中断响应。通常情况下在指令执行结束之后

在指令执行时中断,破坏执行状态,需要保存的现场数据更多,而且恢复现场后还需要重新执行指令,浪费之前指令的执行时间。

在这里插入图片描述

8.4.4.3 中断隐指令

隐指令是指以下面的三个步骤是由硬件完成的的,并不是在某一条具体指令的驱动下完成的

隐指令并不是计算机指令集中的一条,但是在执行响应中断的时候,这些硬件操作都要进行。

CPU响应中断后,即进入中断周期。在中断周期内,CPU要自动完成一系列操作,具体如下:

  • 保护程序断点

    程序断点就是中断服务程序结束之后,返回的源程序要执行指令的地址,就是一个地址。

    有两种办法保护断点:

    • 断点存于特定地址(比如0号地址)内,这个地址是内存的一块存储单元
    • 断点进栈,返回的时候出栈即可
  • 寻找服务程序入口地址

    有两种办法形成服务程序入口地址:

    • 向量地址 → PC(硬件向量法),向量地址包含了中断服务程序的入口地址,或者跳转指令
    • 中断识别程序 入口地址 M → PC(软件查询法)
  • 硬件关中断

    为了避免在单重中断的计算机中,在执行中断服务程序的过程中,有新的中断源发出中断请求,打断当前中断服务程序的执行。
    即使在多重中断中 也要在 保护程序断点和现场的时候关中断。

    关中断就是将 EINT(中断允许触发器) 置为0

    在这里插入图片描述

8.4.5 保护现场和恢复现场

  • 保护现场

    • 保存断点 —— 中断隐指令完成
    • 保存寄存器内容 —— 中断服务程序完成 (CPU中的寄存器在执行中断服务程序的时候也会用到,这些内容在将来进行中断返回的时候主程序还要用到)
  • 恢复现场 —— 中断服务程序完成

    在这里插入图片描述

8.4.6 中断屏蔽技术 - 多重中断

8.4.6.1 多重中断的概念

CPU在执行中断服务程序的过程中,有新的中断源提出请求并且新的中断请求的优先级大于当前请求,就要进行响应

在这里插入图片描述

8.4.6.2 实现多重中断的条件

在这里插入图片描述

8.4.6.3 (中断)屏蔽技术
  • 屏蔽

使用屏蔽技术,通过设置中断屏蔽字,来改变优先级,从而提高系统设计和响应的灵活性。中断屏蔽字就分散保存在中断屏蔽触发器中(硬件保存)。所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容即中断屏蔽字。屏蔽字与中断源的优先级别是一一对应的。

在这里插入图片描述

  • 屏蔽字

    在这里插入图片描述

  • 屏蔽技术可改变处理优先等级

    中断的优先级分为响应优先级和处理优先级:

    • 响应优先级:中断响应优先级是针对同时到达的中断请求先处理谁的规定。比如A、B同时向CPU发出中断请求,而中断响应优先级是A>B,那么CPU就会先处理A,再处理B。不能改变,这是由硬件电路决定的。

    • 处理优先级:处理优先级是指CPU 实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。比如A、B两个中断的中断处理优先级是B>A,如果当CPU正在处理中断请求A时,B向CPU发送了中断请求,那么CPU会先暂停处理A,转而处理B,B结束后再继续处理A。可改变,通过设置中断屏蔽字,让一些响应高优先级的中断源的请求不能参与排队来重新设置处理优先级。

      在这里插入图片描述

  • 新屏蔽字的设置

    在这里插入图片描述

8.4.6.4 多重中断的断点保护
  • 断点可以保存到两种地方

    • 断点进栈。
    • 断点存入“0”地址,此处的0打引号,并不是真正的物理地址的0地址,而是指定的一个地址

    这两个都是由中断隐指令完成

  • 在中断周期(也就是解释指令周期的最后一个阶段),要做以下工作

    • 保存断点 0 → MAR(假设保存到到0地址,将0送到MAR)
    • 命令存储器写
    • PC → MDR;PC中保存着断点,将断点给MDR
    • (MDR) → 存入存储器
  • 在多重中断中,存在问题:后面的断点会把前面保存的断点覆盖掉

    在这里插入图片描述

参考:
教材:计算机组成原理 (唐朔飞).pdf

博客:https://blog.csdn.net/weixin_51825055/article/details/133531876

视频:https://www.bilibili.com/video/BV1t4411e7LH?p=116&vd_source=a89593e8d33b31a56b894ca9cad33d33

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

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

相关文章

从0开始带你成为Kafka消息中间件高手---第二讲

从0开始带你成为Kafka消息中间件高手—第二讲 那么在消费数据的时候,需要从磁盘文件里读取数据后通过网络发送出去,这个时候怎么提升性能呢? 首先就是利用了page cache技术,之前说过,kafka写入数据到磁盘文件的时候&…

深入探索:中文字符的编码与转移字符的奥秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:探索字符编码的世界 二、字符编码基础:理解ASCII与Unicode…

面向未来AI算力中心的电能消耗及优化策略

AI苏妲己:面向未来AI算力中心的电能消耗及优化策略 在人工智能(AI)和大模型技术加速发展的今天,智算中心对电力需求爆发式递增。如何降低这些中心的能耗成本,关于电能消耗趋势、新能源发电、以及源网荷储一体化解决方…

高级卫生专技资格考试报名流程及照片尺寸审核处理指南

高级卫生专业技术资格考试是卫生专业技术人员职业发展的重要环节,它不仅关系到个人职称的提升(副高、正高职称),也是对其专业能力和水平的权威认证。随着考试季的临近,许多考生开始关注报名流程及照片尺寸审核处理等细…

代码随想录算法训练营第36期DAY39

道心破碎的一天&#xff0c;继续加油吧&#xff0c;坚持努力。 DAY39 738单调递增的数字 暴力法&#xff1a; 没有想到用int in;i>0;i--来遍历。 class Solution {private: bool checknum(int num){ if(num<10) return true; while(num/10!0){ …

详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版)

目录 前言1. 基本知识2. Demo3. 实战4. 模版 前言 由于需要在登录时&#xff0c;附上一些用户说明书的弹窗 对于ElMessageBox的基本知识详细了解 可通过官网了解基本的语法知识ElMessageBox官网基本知识 1. 基本知识 Element Plus 是一个基于 Vue 3 的组件库&#xff0c;其中…

C++ Primer Plus第十八章复习题

1、使用用大括号括起的初始化列表语法重写下述代码。重写后的代码不应使用数组ar。 class z200 { private:int j;char ch;double z; public:Z200(int jv,char chv&#xff0c;zv) : j(jv), ch (chv), z(zv){} };double x 8.8; std::string s "what a bracing effect ! …

前端---闭包【防抖以及节流】----面试高频!

1.什么闭包 释放闭包 从以上看出&#xff1a;一般函数调用一次会把内部的数据进行清除--但是这种操作却可以一起保留局部作用域的数据 // 优点:1、可以读取函数内部的变量 2、让这些变量始中存在局部作用域当中 2.闭包产生的两种业务场景&#xff1a;防抖、节流 2.1防抖 举…

Mysql教程(0):学习框架

1、Mysql简介 MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域&#xff0c;MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版&#xff0c;社区版完全免费&#xff0c;并且几乎能满足全部的使用场景。由于 MySQL 是开源的&#xff0…

【Windows】 IDimager Photo Supreme 2024(图片管理软件)安装教程

软件介绍 IDimager Photo Supreme 2024是一款专业的图片管理软件&#xff0c;旨在帮助用户有效地组织、管理和浏览他们的照片收藏。以下是该软件的一些主要特点和功能&#xff1a; 图片管理&#xff1a;Photo Supreme提供强大的图片管理功能&#xff0c;可以帮助用户轻松地整理…

笔记89:LeetCode_135_分发糖果

前言&#xff1a; 注&#xff1a;代码随想录中没有很清楚的提起想出方法的思路&#xff0c;只是给出了解决这个问题的大致思路和代码&#xff1b;下面我将介绍一下我的思考过程&#xff0c;并贴出实现代码&#xff1b; a a a a 思考过程&#xff1a; 思路1&#xff1a;为了…

Win32 API

个人主页&#xff1a;星纭-CSDN博客 系列文章专栏 : C语言 踏上取经路&#xff0c;比抵达灵山更重要&#xff01;一起努力一起进步&#xff01; 一.Win32 API 1.Win32 API介绍 Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外&#xff0c;它同时也是…

【408真题】2009-15

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

nginx服务器执行的过程

一:打包 1.打包前的分析 文件路径下npm run preview -- --report 生成打包之后的内容 2.解决有些内容体积过大的问题 1.删除有些不使用但是占用较多的,将main.js上import删除,打包时不会有 2.不能删除但是内容较大的 vue.config.js文件夹下 externals: { vue: Vue,…

mysql5.5版本安装过程

mysql是关系型数据库的管理系统 将安装包放在 c盘根目录 名称为mysql 在该路径下cmd进入命令执行窗口 出现此页面说明安装成功 需要修改配置文件内容 将my-medium.ini 复制粘贴并改名为 my.ini 并添加如下内容 改好之后在mysql目录下cmd进入命令执行窗口 切换到cd bin …

[集群聊天服务器]----(一)项目简介

在最近的学习中&#xff0c;实现了基于muduo网络库的集群聊天服务器&#xff0c;在此做一个剖析以及相关内容的梳理介绍&#xff0c;希望可以帮助到大家。 这一篇&#xff0c;先来简单介绍一下这个项目。 源码地址 Cluster_Chat_System-项目 项目技术特点 使用C开发并基于 …

ASP+ACCESS公司门户网站建设

【摘 要】随着计算机科学的发展&#xff0c;数据库技术在Internet中的应用越来越广泛&#xff0c;为广大网络用户提供了更加周到和人性化的服务。本文讲解了一个公司的网站的建设&#xff0c;它基于数据关联规则的公司个性化页面及动态数据生成案例&#xff0c;在网页方面&…

Linux--线程的认识(一)

线程的概念 线程&#xff08;Thread&#xff09;是操作系统中进行程序执行的最小单位&#xff0c;也是程序调度和分派的基本单位。它通常被包含在进程之中&#xff0c;是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流&#xff0c;一个进程中可以并发多个线…

Django与前端框架协作开发实战:高效构建现代Web应用

title: Django与前端框架协作开发实战&#xff1a;高效构建现代Web应用 date: 2024/5/22 20:07:47 updated: 2024/5/22 20:07:47 categories: 后端开发 tags: DjangoREST前端框架SSR渲染SPA路由SEO优化组件库集成状态管理 第1章&#xff1a;简介 1.1 Django简介 Django是一…

hive3从入门到精通(二)

第15章:Hive SQL Join连接操作 15-1.Hive Join语法规则 join分类 在Hive中&#xff0c;当下版本3.1.2总共支持6种join语法。分别是&#xff1a; inner join&#xff08;内连接&#xff09;left join&#xff08;左连接&#xff09;right join&#xff08;右连接&#xff09;…