计算机组成原理:408考研|王道|学习笔记II

系列目录

计算机组成原理 学习笔记I
计算机组成原理 学习笔记II


目录

  • 系列目录
  • 第四章 指令系统
    • 4.1 指令系统
      • 4.1.1 指令格式
      • 4.1.2 扩展操作码指令格式
    • 4.2 指令的寻址方式
      • 4.2_1 指令寻址
      • 4.2_2 数据寻址
    • 4.3 程序的机器级代码表示
      • 4.3.1 高级语言与机器级代码之间的对应
      • 4.3.2 常用的x86汇编指令
      • 4.3.3 AT&T格式和Inter格式
    • 4.4 CISC 和 RISC 的基本表示
  • 第五章 中央处理器
    • 5.1 CPU的功能和基本结构
    • 5.2 指令执行过程
    • 5.3 数据通路的功能和基本结构
      • 5.3.1 数据通路-单总线结构
      • 5.3.2 数据通路-专用通路结构
    • 5.4 控制器的功能和工作原理
    • 5.5 异常和中断处理(详见OS)
    • 5.6 指令流水线
    • 5.7 多处理器的基本概念
      • 5.7.1 SISD、SIMD、MIMD向量处理器的基本概念
      • 5.7.2 共享内存多处理器(Shared Memory multiProcessor, SMP) 的基本概念
      • 5.7.3 多核处理器(multicore)的基本概念
  • 第六章 总线
    • 6.1 总线概述
    • 6.2 总线操作(事务)和定时
    • 6.3 总线仲裁与总线标准(408不考)
  • 第七章 输入/输出系统
    • 7.1 I/O 系统的基本概念
    • 7.2 I/O 接口
    • 7.3 I/O 方式🌟
      • 7.3.1 程序查询方式
      • 7.3.2 程序中断方式
      • 7.3.3 DMA方式🌟🌟🌟


  • 持续更新~
  • 欢迎评论区留言指正
  • 如果你是Obsidian用户,可以导入自己的笔记库中,效果最佳
  • ⚠️如需转载,请标明出处!

第四章 指令系统

4.1 指令系统

4.1.1 指令格式

  • 指令的定义
    • 指令,又称机器指令,是计算机运行的最小功能单位
    • 一台计算机的所有指令的集合构成该机的指令系统,又称指令集
    • 不能执行其他指令系统的指令——x86架构、ARM架构
  • 指令格式
    • (一条指令)指令=操作码(OP)字段+地址码(A)字段(可能有多个)
  • 🌟指令的分类
    • 地址码数目分类
      • 零地址指令
        • 零地址(指令)的运算类指令又称堆栈运算类指令,两个操作数隐含在栈顶和次栈顶
        • ⚠️堆栈指令的访存次数
      • 一地址指令
      • 二、三地址指令
      • 四地址指令
    • 指令字长分类
      • 定长指令字结构
        • 半字长指令
        • 单字长指令
        • 双字长指令
      • 变长指令字结构
    • 操作码长度分类
      • 定长操作码
      • 可变长操作码(不定长操作码)
        • 定长指令字结构+可变长操作码->扩展操作码指令格式
    • 操作类型分类
      • 数据传送类:进行主存与CPU之间的数据传送
        • LOAD
          • 作用:用指令将数据从主存读到某寄存器中
        • STORE
          • 作用:用指令将数据从某寄存器中写入主存
      • 运算类
        • 算术逻辑操作
          • 算术
          • 逻辑
        • 移位操作
          • 算数移位
          • 逻辑移位
          • 循环移位(带进位和不带进位)
      • 程序控制类:改变程序执行的顺序
        • 转移操作
          • 无条件转移 JMP
          • 条件转移
            • JZ:结果为0
            • JO:结果溢出
            • JC:结果有进位
          • 调用和返回 CALL和RETURN
          • 陷阱(Trap)与陷阱指令
          • 循环指令
      • 输入输出类(I/O):进行CPU和I/O设备之间的数据传送
        • 输入输出操作
          • CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

4.1.2 扩展操作码指令格式

定长指令字结构+可变长操作码->扩展操作码指令格式(不同地址数的指令使用不同长度的操作码)

  • 扩展操作码
    • 举例1——指令字长为16位,每个地址码占4位
    • 举例2
  • 指令(的)操作码
    • 操作码分类
      • 定长操作码
      • 扩展操作码(不定长操作码)

4.2 指令的寻址方式

4.2_1 指令寻址

⚠️每一条指令的执行都分为“取指令”、“执行指令”两个阶段

  • 指令寻址
    • 确定下一条要执行的指令的存放地址
    • 由程序计数器PC指明
  • 指令寻址的分类
    • 顺序寻址
      • (PC) + ‘‘1’’ ——> PC
      • 此处的"1"要理解为1个指令字长
      • 每次取指令结束后,一定会PC+“1”
    • 跳跃寻址
      • 执行转移类指令导致的PC值改变

4.2_2 数据寻址

|操作码(OP) | 地址码(A)|

  • 按寻址方式的不同
    • 指令寻址
      下一条欲执行指令的指令地址
      始终由程序计数器PC给出
      • 顺序寻址
      • 跳跃寻址
    • 数据寻址
      • 分类(10种)
        • 隐含寻址(0000)
        • 立即寻址(0001)
        • 直接寻址(0010)
        • 间接寻址(0011)
        • 寄存器寻址(0100)
        • 寄存器间接寻址(0101)
        • 相对寻址(0110)
        • 基址寻址(0111)
        • 变址寻址(1000)
        • 堆栈寻址(1001)
      • 地址码拓展
        • 一地址指令
          • |操作码(OP)|寻址特征|形式地址(A)|
          • 求出操作数的真实地址,称为有效地址(EA)
        • 二地址指令
          • |操作码(OP)|寻址地址|形式地址( A 1 A_1 A1)|寻址地址|形式地址( A 2 A_2 A2)|
      • 直接寻址
      • 间接寻址
        • 一次间址
        • 两次间址
      • 寄存器寻址(不访问主存,只访问寄存器)
      • 寄存器间接寻址(比一般间接寻址快)
      • 隐含寻址(指令中隐含着操作数的地址)
      • 立即寻址(指令执行时间最短)
        • 形式地址A就是操作数本身,又称为立即数(如汇编语言中,LOAD # 985,#表示立即寻址特征),一般采用补码形式
          在这里插入图片描述

4.3 程序的机器级代码表示

4.3.1 高级语言与机器级代码之间的对应

4.3.2 常用的x86汇编指令

4.3.3 AT&T格式和Inter格式

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

4.4 CISC 和 RISC 的基本表示

CISC:Complex Instruction Set Computer
RISC:Reduced Instruction Set Computer
在这里插入图片描述



第五章 中央处理器

5.1 CPU的功能和基本结构

用户不可见的寄存器:MAR、MDR、IR、暂存寄存器

  • CPU的功能
    • 指令控制、操作控制、时间控制、数据加工、中断处理
  • 运算器的功能
    • 对数据进行加工
  • 控制器的功能
    • 取指令、分析指令、执行指令
  • 运算器的基本结构
    • 算术逻辑单元ALU
    • 暂存寄存器
    • 通用寄存器组
    • 累加寄存器ACC
    • 程序状态字寄存器PSW
    • 移位器、计数器
  • 数据通路的基本结构
    管理多条通路:多路选择器MUX与三态门
    • 专用通路
    • 内部总线
  • 控制器的基本结构
    • 程序计数器PC
    • 指令寄存器IR
    • 指令译码器、时序系统、微操作信号发生器
    • 存储器地址寄存器MAR
    • 存储器数据寄存器MDR

5.2 指令执行过程

  • 指令周期
    • 机器周期/CPU周期——CPU时钟周期/节拍
    • 取指周期、间址周期、执行周期、中断周期
    • 标志触发器FE、IND、EX、INT
  • 数据流
    • 取指周期:取指令——根据PC中的内容取出指令代码并存放在IR中
    • 间址周期:取操作数有效地址EA——根据IR中指令地址码操作数有效地址
    • 执行周期:取操作数——根据指令字的操作码和操作数进行相应的操作
    • 中断周期:处理中断请求,保存程序断点,送中断向量
  • 执行方案
    • 单指令周期:所有指令选用相同的执行时间,指令间串行
    • 多指令周期:不同类型指令选用不同的执行步骤,指令间串行
    • 流水线方案:隔一段时间启动一条指令,多条指令处于不同阶段,同时运行

5.3 数据通路的功能和基本结构

5.3.1 数据通路-单总线结构

ALU需要配合暂存器使用

  • 数据通路
    • 定义:数据在功能部件之间传送的路径
    • 基本结构:
      • CPU内部单总线方式
      • CPU内部多总线方式
      • 专用数据通路方式
  • 内部总线:指同一部件,如CPU内部连接各寄存器及运算部件之间的总线
  • 系统总线:指同一计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线

5.3.2 数据通路-专用通路结构

多路选择器MUX与三态门
见PPT例题

5.4 控制器的功能和工作原理

  • 硬布线控制器(计组TOP3难度 但并非重点)
  • 微程序控制器(考试重点,且有概率出大题)
    • 控制单元CU的结构
      • 微地址形成部件
        • 微地址即微指令在CM中的存放地址
        • 通过指令操作码形成对应微程序的第一条微指令的存放地址
      • 顺序逻辑
        • 根据某些机器标志和时序信息确定下一条微指令的存放地址
      • CMAR(µIR)
        • 指明将要执行的下一条微指令(在主存中)的存放地址
      • 地址译码器
        • 将CMAR内的地址信息译码为电信号,控制CM读出微指令
      • 控制存储器(控存)CM
        • 存放所有机器指令对应的微程序(微指令序列)
        • 集成在CU内部,用ROM实现,按地址寻访
        • 通常在CPU出厂时就将所有微程序写入
      • CMDR(µIR)
        • 微指令寄存器,用于存放当前正在执行的微指令
        • CM(µPC)——>µIR
    • 工作原理
      • 指令周期=取指周期——>间址周期——>执行周期——>中断周期
        其中间址、中断周期可有可无
      • 处理取指、间址、中断周期的微指令序列通常是公用的(指令相同)
        指令周期的微指令序列各不相同
      • 取指周期的微指令序列固定从#0开始存放
        执行周期的微指令序列的存放根据指令操作码确定
    • 概念对比
      • 微命令、微操作、微指令、微程序之间的关系
        1个指令对应1个微程序
      • 指令周期:从主存取出并执行一条机器指令所需的时间
      • 微周期(微指令周期):从控制器存储器取出一条微指令并执行相应微操作所需的时间
  • 微指令的设计
    • 微指令格式
      • 水平型微指令
      • 垂直型微指令
      • 混合型微指令
    • 水平型微指令的编码方式
      • 🌟直接编码(直接控制)
        • 控制码的每个bit对应一个微命令,微指令执行速度更快
      • 🌟字段直接编码
        • 将互斥性的微命令分在同一个段内,相容的分在不同的段
        • 每个段留出一个状态表示“不操作”
        • 微指令操作码需要经过译码电路
      • 字段间接编码
    • 下一条微指令地址的形成方式
      • 🌟断定法(下地址法)
      • 🌟计数器法
      • 根据指令操作码确定执行周期微程序首地址
      • 由专门的硬件指明取指/中断周期的微程序首地址

5.5 异常和中断处理(详见OS)

5.6 指令流水线

  • 基本概念
    • 指令执行过程划分为不同阶段,占用不同的资源,就能使多条指令同时执行
    • 表示方法
      • 指令流程图:主要用于分析影响流水线的因素
      • 时空图:主要用于分析流水线的性能
  • 性能指标
    • 吞吐率TP
    • 加速比S
    • 效率E
  • 影响因素
    • 结构相关(资源冲突)
      多条指令争用同一资源
      解决方法:
      • 暂停相关指令
      • 资源重复配置
    • 🌟数据相关(数据冲突)
      后续指令需要用到之前指令的执行结果
      解决方法:
      • 暂停相关指令
        • 硬件阻塞(stall)——根据指令流程图分析耗时
        • 软件插入"NOP"
      • 数据旁路技术
      • 编译优化,调整指令顺序
    • 控制相关(控制冲突)
      遇到转移指令和其他改变PC值的指令时发生
      解决方法:
      • 分支预测
      • 预取两个方向的指令
      • 加快和提前形成条件码
      • 提高转移方向的猜准率
  • 分类
    • 按使用级别:部件功能级、处理机级、处理机间
    • 按完成功能:单功能、多功能
    • 按连接方式:动态、静态
    • 按有无反馈信号:线性、非线性
  • 多发技术
    • 超标量流水线技术
    • 超流水线技术
    • 超长指令字技术

5.7 多处理器的基本概念

5.7.1 SISD、SIMD、MIMD向量处理器的基本概念

  • SISD单指令流单数据流
  • SIMD单指令流多数据流
  • MISD多指令流单数据流
  • MIMD多指令流多数据流
  • 向量处理器(SIMD思想的进阶应用)

5.7.2 共享内存多处理器(Shared Memory multiProcessor, SMP) 的基本概念

多处理器系统(简称)

5.7.3 多核处理器(multicore)的基本概念

和共享内存多处理器是同一个东西,命名角度不同



第六章 总线

6.1 总线概述

  • 总线概念与分类
  • 总线的性能指标
    • 总线的传输周期(总线周期)
    • 总线时钟周期
    • 总线的工作频率
    • 总线的时钟频率
    • 总线宽度
    • 总线带宽
    • 总线复用
    • 信号线数

6.2 总线操作(事务)和定时

  • 总线传输的四个阶段
    • 申请分配阶段
    • 寻址阶段
    • 传输阶段
    • 结束阶段
  • 定时
    • 同步定时方式(同步通信)
    • 异步定时方式(异步通信)——不互锁、半互锁、全互锁
    • 半同步通信
    • 分离式通信

6.3 总线仲裁与总线标准(408不考)



第七章 输入/输出系统

7.1 I/O 系统的基本概念

  • 基本概念
    • IO硬件
      输入设备、输出设备、 外存设备、I/O接口(I/O控制器)
    • IO软件
      • IO指令
        CPU执行的指令,用于控制IO接口或控制通道
      • 通道指令
        通道执行的指令,与CPU机器指令不是一套东西
  • I/O控制方式
    • 程序查询方式
      CPU“忙等”慢速设备完成工作,二者串行工作
    • 程序中断方式
      设备准备数据时,CPU继续工作,设备准备好之后向CPU发出中断请求,CPU在指令周期的末位检查中断并作出中断响应(执行中断处理程序)
    • DMA方式
      主存与IO交换信息时由DMA控制器控制,传输完一整块数据才需要中断
    • 通道方式
      通过IO指令启动通道,通道执行通道指令序列,通道程序放在主存中

7.2 I/O 接口

  • 作用与结构
    作用:
    在这里插入图片描述 结构:

    • 数据缓冲寄存器(DBR)
    • 状态/控制寄存器
    • 串-并转换机构
    • I/O控制逻辑
    • 地址译码逻辑
  • I/O端口
    在这里插入图片描述

    • 指IO控制器(接口电路)中可被CPU直接访问的寄存器
    • 统一编制:IO端口和主存地址空间统一,用访存指令访问IO端口
    • 独立编制:IO端口地址与主存地址相互独立,用IO指令访问IO端口
  • 分类

    • 按数据传送方式
      • 并行接口
      • 串行接口
    • 按主机访问I/O设备的控制方式
      • 程序查询接口
      • 中断接口
      • DMA接口
    • 按功能选择的灵活性
      • 可编程接口
      • 不可编程接口

7.3 I/O 方式🌟

在这里插入图片描述

7.3.1 程序查询方式

在这里插入图片描述

7.3.2 程序中断方式

  • 程序中断方式
    • 中断系统
      • 中断的基本概念

      • 工作流程

        • 中断请求
          ![[截屏2024-07-10 19.35.42.png]]
          • 分类
            • 内中断(又称异常、例外、陷入)
              • 自愿中断——指令中断
              • 强迫中断
                • 硬件故障
                • 软件中断
            • 外中断(中断)
              • 外设请求
              • 人工干预
          • 中断请求标记触发器INTR
        • 中断响应
          • 响应中断的条件
          • 中断判优
            • 软件:查询程序
            • 硬件:排队器
            • 优先级的设置
        • 中断处理
          • 中断隐指令
            • 关中断
            • 保存断点(PC)
            • 引出中断服务程序
              • 软件查询法
              • 硬件向量法——中断向量
          • 中断服务程序
      • 单重中断与多重中断
        在这里插入图片描述

        • 中断服务程序的具体步骤
        • 中断屏蔽技术
          • 屏蔽字
          • 程序执行轨迹
    • 程序中断方式
      • 工作流程
      • CPU占用情况
        • 中断响应(隐指令)
        • 中断服务程序

7.3.3 DMA方式🌟🌟🌟

  • DMA控制器
    • 主要功能
      • 传送前:接收外设的DMA请求,向CPU发出总线请求;接管总线控制权
      • 传送时:管理总线,控制数据传送;确定主存单元地址及长度,能自动修改对应参数
      • 传送后:向CPU报告DMA操作的结束
    • 组成
      • 主存地址计数器:存放要交换数据的主存地址
      • 传送长度计数器:记录传送数据的长度
      • 数据缓冲寄存器:暂存每次传送的数据
      • DMA请求触发器:设置准备好数据后将其置位
      • 控制/状态逻辑:由控制和时许电路及状态标志组成
      • 中断机构:数据传送完毕后触发中断机构,提出中断请求
  • 传送过程
    • 预处理:CPU完成寄存器初值设置等准备工作
    • 数据传送:CPU继续执行主程序,DMA控制器完成数据传送
    • 后处理:CPU执行中断服务程序做DMA结束处理
  • 传送方式
    • 停止CPU访存:需要数据传送时,停止CPU访存,总线控制权交给DMA控制器
    • 交替访存:将CPU周期分为DMA访存和CPU访存两个部分
    • 周期挪用(周期窃取):I/O设备需要访存时,挪用一个或几个存取周期
  • 特点
  • 与中断方式的区别
  • CPU占用情况

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

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

相关文章

C++从入门到起飞之——缺省参数/函数重载/引用全方位剖析!

目录 1.缺省参数 2. 函数重载 3.引⽤ 3.1 引⽤的概念和定义 3.2 引⽤的特性 3.3 引⽤的使⽤ 3.4 const引⽤ 3.5 指针和引⽤的关系 4.完结散花 个人主页:秋风起,再归来~ C从入门到起飞 个人格言:悟已往之不谏…

RocketMQ~架构了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统,由阿里巴巴团队开发,在 2016 年底贡献给 Apache,成为了 Apache 的一个顶级项目。 在阿里内部,RocketMQ 很好地服务了集…

Base64文件流查看下载PDF方法-CSDN

问题描述 数票通等接口返回的PDF类型发票是以Base64文件流的方式返回的&#xff0c;无法直接查看预览PDF发票&#xff0c; 处理方法 使用第三方在线工具&#xff1a;https://www.jyshare.com/front-end/61/ 在Html代码框中粘贴如下代码 <embed type"application/pd…

计网(1.1~1.4)

1.1计算机网络在信息时代的作用 21世纪的重要特征数字化、网络化和信息化 有三类网络&#xff1a;电信网络、有线电视网络和计算机网络 互联网两个重要基本特点&#xff0c;即连通性和共享 1.2因特网概述 &#xff08;1&#xff09;网络、互联网和互连网 网络:由若干结点和连接…

Docker 部署 ShardingSphere-Proxy 数据库中间件

文章目录 Github官网文档ShardingSphere-Proxymysql-connector-java 驱动下载conf 配置global.yamldatabase-sharding.yamldatabase-readwrite-splitting.yamldockerdocker-compose.yml Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c; 可以将任意数据库转换为…

初学编程不知道怎么选?推荐学习的三种热门编程语言

在当今的社会需求下&#xff0c;市场上最常见、最受欢迎、最广泛应用的编程语言主要有三种&#xff1a;C语言、Java语言和Python语言。 既然要做出选择&#xff0c;我们就需要明白这三种编程语言各自有何特点和区别。 一、特点 C语言 高效与灵活&#xff1a;C语言生成的机器…

防火墙组网与安全策略实验

实验要求&#xff1a; 实现&#xff1a; 防火墙接口配置&#xff1a; 所有接口均配置为三层接口 由于G1/0/3口下为vlan环境&#xff0c;所以防火墙需要配置子接口 &#xff1a; 交换机划分vlan分开生产区和办公区、配置trunk干道 &#xff1a; 安全策略&#xff1a; 生产区访…

【fastadmin 开发实战】select 级联选择

先看实现的效果 1、表单页面实现级联选择 2、级联选项后台可以编辑添加 前端代码&#xff08;编辑窗口&#xff09;&#xff1a; <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(渠道归属)}:</label><…

240713_昇思学习打卡-Day25-LSTM+CRF序列标注(4)

240713_昇思学习打卡-Day25-LSTMCRF序列标注&#xff08;4&#xff09; 最后一天咯&#xff0c;做第四部分。 BiLSTMCRF模型 在实现CRF后&#xff0c;我们设计一个双向LSTMCRF的模型来进行命名实体识别任务的训练。模型结构如下&#xff1a; nn.Embedding -> nn.LSTM -&…

java各种锁介绍

在 Java 中&#xff0c;锁是用来控制多个线程对共享资源进行访问的机制。主要有以下几种类型的锁&#xff1a; 1.互斥锁&#xff08;Mutex Lock)&#xff1a;最简单的锁&#xff0c;一次只允许一个线程访问共享资源。如果一个线程获得了锁&#xff0c;其他线程必须等待锁被释放…

深度解读李彦宏的“不要卷模型,要卷应用”

深度解读李彦宏的“不要卷模型&#xff0c;要卷应用” —— AI技术的应用之道 引言 在2024世界人工智能大会的舞台上&#xff0c;李彦宏的“不要卷模型&#xff0c;要卷应用”言论犹如一石激起千层浪&#xff0c;引发了业界对AI技术发展路径的深思。本文将深入探讨这一观点&a…

JAVA设计模式>>结构型>>适配器模式

本文介绍23种设计模式中结构型模式的适配器模式 目录 1. 适配器模式 1.1 基本介绍 1.2 工作原理 1.3 适配器模式的注意事项和细节 1.4 类适配器模式 1.4.1 类适配器模式介绍 1.4.2 应用实例 1.4.3 注意事项和细节 1.5 对象适配器模式 1.5.1 基本介绍 1.5.2 …

解答|服务器只能开22端口可以申请IP地址SSL证书吗?

IP地址SSL证书&#xff0c;是一种专门颁发给公网IP地址的SSL证书&#xff0c;而不是常见的基于域名的SSL证书。SSL证书主要用于保障数据在客户端&#xff08;如用户的浏览器&#xff09;和服务器之间传输时的加密性和安全性&#xff0c;以防止数据被截取或篡改。 服务器只能开…

Python + OpenCV 简单车辆统计

目录 1 源码 2 运行结果 Python OpenCV 简单车辆统计 IDE : PyChram 1 源码 函数 car_count() 简单车辆统计 # 这是一个示例 Python 脚本。# 按 ShiftF10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 import cv2 impor…

windows远程桌面到 Linux系统(Ubuntu:22.04)—— 安装xrdp软件

1、在Linux系统上安装xrdp软件 sudo apt update sudo apt install xrdp2、安装完成后&#xff0c;需要开启xrdp服务 sudo systemctl start xrdp sudo systemctl enable xrdp打印返回 Synchronizing state of xrdp.service with SysV service script with /lib/systemd/system…

计算机网络通信

1、最原始的hub结构 2、局域网的交换机&#xff1a;mac和交换机端口路由表-数据链路层 mac地址 3、不同局域网之间进行通信&#xff0c;主要是路由器-网络层-ip 源ip到目标ip的不变化&#xff0c;但是mac地址在一直变化

【qt】TCP客户端如何断开连接?

disconnectFromHost() 来关闭套接字,断开连接. 当我们关闭窗口时,也需要断开连接. 需要重写关闭事件 如果当前的套接字状态是连接上的,我们就可以来断开连接. 运行结果:

C++ //练习 15.6 将Quote和Bulk_quote的对象传给15.2.1节(第529页)练习中的print_total函数,检查该函数是否正确。

C Primer&#xff08;第5版&#xff09; 练习 15.6 练习 15.6 将Quote和Bulk_quote的对象传给15.2.1节&#xff08;第529页&#xff09;练习中的print_total函数&#xff0c;检查该函数是否正确。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; ## 工具&am…

FastAPI 学习之路(三十七)元数据和文档 URL

实现前的效果 那么如何实现呢&#xff0c;第一种方式如下&#xff1a; from routers.items import item_router from routers.users import user_router""" 自定义FastApi应用中的元数据配置Title&#xff1a;在 OpenAPI 和自动 API 文档用户界面中作为 API 的…

百日筑基第二十天-一头扎进消息队列3-RabbitMQ

百日筑基第二十天-一头扎进消息队列3-RabbitMQ 如上图所示&#xff0c;RabbitMQ 由 Producer、Broker、Consumer 三个大模块组成。生产者将数据发送到 Broker&#xff0c;Broker 接收到数据后&#xff0c;将数据存储到对应的 Queue 里面&#xff0c;消费者从不同的 Queue 消费数…