当前位置: 首页 > news >正文

计算机组成原理|第一章(笔记)

目录

  • 第一章 计算机系统概论
    • 1.1 计算机系统简介
      • 1.1.1 计算机的软硬件概念
      • 1.1.2 计算机系统的层次结构
      • 1.1.3 计算机组成和计算机体系结构
    • 1.2 计算机的基本组成
      • 1.2.1 冯 · 诺伊曼计算机的特点
      • 1.2.2 计算机的硬件框图
      • 1.2.3 计算机的工作过程
    • 1.3 计算机硬件的主要技术指标
      • 1.3.1 机器字长
      • 1.3.2 运算速度
      • 1.3.3 存储容量


第一章 计算机系统概论


1.1 计算机系统简介


1.1.1 计算机的软硬件概念

计算机系统是由 软件硬件 两大部分组成的。

  • 硬件:指计算机的实体部分,它由看得见摸得着的各种电子元器件、各类光、电、机设备的实物组成,如主机、外设等等
  • 软件:它是看不见摸不着的,由人们事先编制成具有各类特殊功能的信息组成。通常把这些信息,诸如各类程序寄寓于各类媒体中,如 RAM、ROM、磁带、磁盘、光盘等

计算机的软件通常又可分为两大类:系统软件应用软件

  • 系统软件:又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,确保高效运行。它包括:表中程序库、语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件等等
  • 应用软件:又称为应用程序,它是用户根据任务需要所编制的各种程序。如科学计算程序、数据处理程序、过程控制程序、事务管理程序等等

在这里插入图片描述

硬件是计算机的物理基础,它决定了计算机系统的瓶颈在哪,而软件又决定了可以将硬件的性能发挥到什么样的程度,所以,计算机性能的好坏取决于 “软”、“硬” 件功能的总和。


1.1.2 计算机系统的层次结构

计算机的解题过程:
在这里插入图片描述
现代计算机的解题过程通常是先由用户用高级语言编写程序(称作源程序),然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序(称作目标程序),机器自动运行该机器语言程序,并将计算结果输出。

早期只有机器语言,用户编写的机器语言程序,直接在机器上执行,我们把直接执行机器语言的实际机器称 M1

在这里插入图片描述
20 世纪 50 年代开始出现了符号式的程序设计语言,即汇编语言,它使程序员摆脱了繁杂而又易错的二进制代码编写程序,但是没有机器能直接识别这种汇编语言程序,必须先将汇编语言程序翻译成机器语言程序后,才能被机器接受并自动运行。我们把具有翻译功能的汇编程序的计算机看作一台 M2 机器。

两级层次结构的计算机系统:

在这里插入图片描述
20 世纪 60 年代开始出现了各种面向问题的高级语言,如 FORTRAN、BASIC、Pascal、C 等等。这类高级语言对问题的描述十分接近人们的习惯,给程序员带来了极大的方便,当然,M1 机器本身是不能识别高级语言的,因此,在进入 M1 机器运行前,必须先将高级语言程序翻译成汇编语言程序,然后再将其翻译成机器语言程序。我们把将高级语言程序直接翻译成汇编或者机器语言程序的机器称为 M3

三级层次结构的计算机系统:

在这里插入图片描述
由于软件的发展,使实际机器 M1 向上延伸构成了各级虚拟机器。同理 M1 机器内部也可向下延伸而形成下一级的微程序机器 M0 。M0 机器是直接将 M1 机器中的每一条机器指令翻译成一组微指令,即构成一个微程序。微程序机器 M0 可看作是对实际机器 M1 的分解,即用 M0 的微程序解释并执行 M1 的每一条机器指令。

四级层次结构的计算机系统:

在这里插入图片描述
实际上再实际机器 M1 与虚拟机器 M2 之间,还有一级虚拟机器,它是由操作系统软件构成的。操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作,还起到控制并管理系统硬件和软件全部资源的作用。

五级层次结构的计算机系统:

在这里插入图片描述


1.1.3 计算机组成和计算机体系结构

计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性,通常是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O 机理等等,大都属于抽象的属性。

计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是不知道的硬件细节。


1.2 计算机的基本组成


1.2.1 冯 · 诺伊曼计算机的特点

1945 年数学家 冯·诺依曼 等人,在研究 EDVAC 机时,提出了 “存储程序” 的概念。以此概念为基础的各类计算机,统称为 冯·诺依曼机。它的特点可归结为:

  • 计算机由运算器存储器控制器输入设备输出设备五大部件组成
  • 指令和数据以同等地位存放于存储器内,并可按地址寻访
  • 指令和数据均以二进制码表示
  • 指令由操作码地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置
  • 存储程序,指令在存储器内按顺序存放
  • 机器以运算器为中心,输入输出设备与存储器的数据传送通过运算器

1.2.2 计算机的硬件框图

冯 · 诺伊曼计算机结构框图:
在这里插入图片描述
典型的冯·诺依曼计算机是以运算器为中心的。其中,输入、输出设备与存储器之间的数据传送都需通过运算器。图中实线为数据线,虚线为控制线和反馈线。

各组件的功能:

  • 运算器:完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内
  • 存储器:用来存放数据和程序
  • 控制器:用来控制、指挥程序和数据的输入、运行以及处理运算结果
  • 输入设备:将信息转换成机器能识别的形式,比如键盘、鼠标等
  • 输出设备:将结果转换成人民熟悉的形式,比如打印机输出,显示器输出等

这个结构存在两个问题:

  1. 以运算器为中心,导致运算器成为系统的瓶颈
  2. 不具有层次化的特征

以存储器为中心的计算机硬件框图:

在这里插入图片描述
以存储器为中心,实现输入和输出设备与存储器之间直接的信息交换,图中实现为控制线,虚线为反馈线,双线为数据线。

现代计算机硬件框图:

在这里插入图片描述

由于运算器控制器在逻辑关系和电路结构土联系十分紧密,尤其在大规模集成电路制作工艺出现后,这两大部件往往制作在同一芯片上,因此,通常将它们合起来统称为中央处理器(Central Processing Unit),简称 CPU。把输入设备输出设备简称为 IO设备(Input/Output equipment)。

这样,现代计算机可认为由三大部分组成:CPUIO设备主存储器M.M(Main Memory)。CPUM.M 合起来又可称为主机IO设备 可叫作外部设备

主存储器 M.M 是存储器子系统中的一类,用来存放程序和数据,它可以直接与CPU 交换信息。另一类叫辅助存储器,简称辅存,又叫外存

ALU (Arithmetic Logic Unit)叫做算术逻辑运算单元(简称算逻部件),用来完成算术逻辑运算。CU(Control Unit)叫做控制单元,用来解释存储器中的指令,并发出各种操作命令来执行指令。ALUCUCPU 的核心部件。

I/O设备 也受 CU 控制,用来完成相应的输入、输出操作。

在这里插入图片描述

可见,计算机有条不紊地自动工作,都是在控制器统一指挥下完成的。

系统复杂性管理的方法(3Y):

  • 层次化(Hierachy):将被设计的系统划分为多个模块或子模块
  • 模块化(Modularity):有明确定义(well-defined)的功能和接口
  • 规则化(Regularity):模块更容易被重用

1.2.3 计算机的工作过程

用计算机解决一个实际问题,通常包含两大过程:上机前的各种准备上机运行

  • 上机前的准备
    • (1)建立数学模型
    • (2)确定计算方式
    • (3)编制解题程序
  • 计算机的解题过程
    在这里插入图片描述

存储器的基本组成:
在这里插入图片描述
主存储器(简称主存内存)包括存储体、各种逻辑部件控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码 “0” 或者 “1”。一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的个数叫做存储字长

每个存储单元会被赋予一个编号,叫做存储单元的地址号。主存的工作方式就是按存储单元的地址号来实现对存储字各位的存、取。这种存取方式叫做按地址存取,也即按地址访问存储器(简称访存

为了能实现按地址访问的方式,主存中还必须配置两个寄存器 MARMDR

  • MAR(Memory Address Register):存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(如 MAR 为 10 位,则有 210=1024 个存储单元,记为 1K)。
  • MDR(Memory Data Register):存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。

运算器的基本组成及操作过程:
在这里插入图片描述
运算器包括三个寄存器和一个算逻电路 ALU。其中 ACC (Accumulator)累加器MQ (Multiplier-QuotientRegister)乘商寄存器X操作数寄存器。这三个寄存器在完成不同运算时,所存放的操作数类别也各不相同。

在这里插入图片描述
不同机器的运算器结构可能不同。

以下简要分析这种结构的运算器其加、减、乘、除四则运算的操作:

设:M 表示存储器的任意地址号
[M] 表示对应 M 地址号单元中的内容
X 表示 X 寄存器
[X] 表示 X 寄存器中的内容
ACC 表示累加器
[ACC] 表示累加器中的内容
MQ 表示乘商寄存器
[MQ] 表示乘商寄存器中的内容
假设 ACC 中已存有前一时刻的运算结果,并作为下述运算中的一个操作数。则:

  • 加法操作过程:
    • [M] -> X
    • [ACC] + [X] -> ACC

即将 [ACC] 看作被加数,先从内存中取一个存放在 M 地址号内的加数 [M],送至运算器的 X 寄存器中,然后将被加数 [ACC] 与加数 [X] 相加,其结果和保留在累加器 ACC 中。

  • 减法操作过程:
    • [M] -> X
    • [ACC] - [X] -> ACC

即将 [ACC] 看作被减数,先取出减数 [M] 送入 X,再作 [ACC] - [X],其结果差保留在 ACC 中。

  • 乘法操作过程:
    • [M] -> MQ
    • [ACC] -> X
    • 0 -> ACC
    • [X] ×[MQ] -> ACC//MQ (ps:// 表示两个寄存器串联)

即把 [ACC] 看作被乘数,先把在 M 号单元中的乘数 [M] 送入乘商寄存器 MQ,再把被乘数送入 X 寄存器,并将寄存器 A 清 “0”,然后 [X] 和 [MQ] 相乘,其结果积的高位保留在 ACC 中,积的低位保留在 MQ 中。

  • 除法操作过程:
    • [M] -> X
    • [ACC] ÷ [X] -> MQ
    • 余数 R 在 ACC 中

即将 [ACC] 看作被除数,先将在 M 号单元内的除数 [M] 送至寄存器,然后 [ACC] 除以 [X],其结果商暂留于MQ,[ACC] 为余数 R。若需要将商保留在 ACC 中,只需做一步 [MQ] - ACC 即可。

控制器的基本结构:

控制器是计算机组成的神经中枢,它指挥全机各部件自动、协调地工作,它的主要功能是解释指令保证指令的按序执行

完成一条指令操作由取指分析执行三阶段组成。

  • 取指阶段:命令存储器读出一条指令,这叫取指过程(也称取指阶段)
  • 分析阶段:对取出来的指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,这叫做分析过程(也称分析阶段)
  • 执行阶段:根据操作数所在的地址,取出操作数并完成某种操作,这叫作执行过程(也称执行阶段)

控制器由程序计数器 PC(Program Counter)指令寄存器 IR(Instruction Register)以及控制单元 CU 几部分组成。
在这里插入图片描述

  • PC:用来存放当前欲执行指令的地址,它与主存的 MAR 之间有一条直接通路,且具有计数功能,即可自动形成下一条指令的地址。
  • IR:用来存放当前的指令,内容来自主存的 MDR,用来分析指令
  • CU:用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象

在这里插入图片描述

主机完成一条指令的过程:

  • 以取数指令为例

在这里插入图片描述

  1. PC 将指令的地址送给 MAR
  2. 再由 MAR 送给存储体
  3. 在控制器的控制下,存储体把指令存储单元当中保存的那条取数指令取出来,送入 MDR 当中
  4. MDR 再将指令送到 IR ,IR 保存当前正在执行的这条指令,完成取指的操作
  5. 将指令寄存器 IR 当中的操作码部分送给 CU,CU 内部分析指令、译码
  6. 在控制器的控制之下,需要把指令当中的地址部分送给存储器,以便将数据从存储体当中取出来,因为 IR 保存了当前指令和当前指令操作数的地址,所以从 IR 的地址码部分,把地址取出,送入 MAR
  7. 然后由 MAR 将该地址送往存储体
  8. 在控制器的控制下,从存储体中将取数指令要取的数取出来存入到 MDR
  9. 最后送到 ACC ,完成取数的操作
  • 以存数指令为例

在这里插入图片描述

  1. PC 将指令的地址送给 MAR
  2. 再由 MAR 送给存储体
  3. 在控制单元 CU 的控制下,从存储体指定的存储单元当中将指令取出来放入到 MDR 当中
  4. MDR 再将指令送到 IR,IR 保存当前正在执行的这条指令,完成取指的操作
  5. 将指令寄存器 IR 当中的操作码部分送给 CU,CU 内部分析指令、译码
  6. CU 控制,将 IR 当中地址码部分送到 MAR
  7. MAR 再送入到存储体
  8. 将 ACC 中的内容送到 MDR
  9. 将 MDR 中的数据保存到存储体中

I/O 的基本结构:
I/O 子系统包括各种外部设备及相应的接口。每一种设备都是由 I/O 接口与主机联系的,他接受 CU 发出的各种控制命令完成相应的操作。如键盘由键盘接口电路与主机联系;打印机由打印机接口电路与主机联系


1.3 计算机硬件的主要技术指标


1.3.1 机器字长

机器字长是指 CPU 一次能处理数据的位数,通常与 CPU 的寄存器位数有关。机器的字长会影响机器的运算速度,倘如 CPU 字长较短,又要运算位较多的数据,那么需要经过两次或多次的运算才能完成,这样势必会影响整机的运行速度。


1.3.2 运算速度

计算机的运算速度与许多因素有关,如:

  • 主频
  • 核数:每个核支持的线程数
  • 吉普森法:综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比
  • CPI:执行一条指令所需时钟周期数
  • MIPS:每秒执行百万条指令
  • FLOPS:每秒浮点运算次数

1.3.3 存储容量

存储容量的大小可以用存放二进制信息的总位数进行衡量。

存储器的容量包括主存容量赋存容量

  • 主存容量:是指主存中存放二进制代码的总数
    • 衡量方法
      • 存储单元个数 × 存储字长
      • 字节数
  • 辅存容量
    • 衡量方法
      • 字节数

相关文章:

计算机组成原理|第一章(笔记)

目录第一章 计算机系统概论1.1 计算机系统简介1.1.1 计算机的软硬件概念1.1.2 计算机系统的层次结构1.1.3 计算机组成和计算机体系结构1.2 计算机的基本组成1.2.1 冯 诺伊曼计算机的特点1.2.2 计算机的硬件框图1.2.3 计算机的工作过程1.3 计算机硬件的主要技术指标1.3.1 机器字…...

[ vulnhub靶机通关篇 ] Empire Breakout 通关详解

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

IP定位离线库有什么作用?

IP离线是什么意思?我们以丢失手机为例来寻找它,现在手机都有IP定位功能,只要手机开通了IP定位,就能找到手机。iPhone定位显示离线一般是iPhone手机关机了或者iPhone手机中“查找我的iPhone”功能关闭了。如果手机在手中的话可以打…...

[C++]vector模拟实现

目录 前言: 1. vector结构 2. 默认成员函数 2.1 构造函数 无参构造: 有参构造: 有参构造重载: 2.2 赋值运算符重载、拷贝构造(难点) 2.3 析构函数: 3. 扩容 3.1 reserve 3.2 resize…...

DevOps实战50讲-(2)Jenkins配置

1. Docker镜像方式安装拉取Jenkins镜像docker pull jenkins/jenkins编写docker-compose.ymlversion: "3.1" services:jenkins:image: jenkins/jenkinscontainer_name: jenkinsports:- 8080:8080- 50000:50000volumes:- ./data/:/var/jenkins_home/首次启动会因为数据…...

LC-1599. 经营摩天轮的最大利润(贪心)

1599. 经营摩天轮的最大利润 难度中等39 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱,但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。…...

Umi使用百度地图服务

需求描述 需要在前端页面中使用地图定位功能,所以在前端umi项目中使用百度地图服务,由于umi项目默认没有入口的html文件,所以无法通过常规的在head中加入外链js的方式使用 百度ak zyqeLCzvQPCCNImRu9yRGOqWlEUicxxGreact使用百度api 链接:…...

js中getBoundingClientRect()方法

getBoundingClientRect()返回值是一个 DOMRect 对象,是包含整个元素的最小矩形(包括 padding 和 border-width)。该对象使用 left、top、right、bottom、x、y、width 和 height 这几个以像素为单位的只读属性描述整个矩形的位置和大小。除了 …...

Unity记录2.2-动作-动画、相机、Debug与总结

文章首发及后续更新:https://mwhls.top/4453.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 汇总:Unity 记录 摘要:重写了动画触…...

分享十个前端Web3D可视化框架附地址

Three.js:Three.js是一个流行的3D库,提供了大量的3D功能,包括基本几何形状、材质、灯光、动画、特效等。它是一个功能强大、易于使用的框架,广泛用于Web3D可视化应用程序的开发。Three.js:https://threejs.org/Babylon…...

基于WSL2和Clion搭建Win下C开发环境

系列文章目录 一、基于WSL2和Clion搭建Win下C开发环境 二、make、makeFile、CMake、CMakeLists的使用 三、全面、详细、通俗易懂的C语言语法和标准库 文章目录系列文章目录前言WSL2安装WSL常用命令VSCode连接WSLroot密码以systemd启动配置sshClion结语前言 Win下C语言开发环境…...

考研第一天,汤家凤基础班,连续与极限复习笔记

函数连续极限性质保号性证明极值点:夹逼准则二项式展开根号下,大于一,小于一的讨论直接放缩求和分子分母齐次,且分母大一次,用积分单调有界存在极限几个重要的切线放缩证明有界,然后放缩求单调证明有界&…...

聊一聊代码重构——关于变量的代码实践

提炼变量 其目标是将一个复杂表达式或语句分解成更小的部分,并将其存储在变量中。提高代码可读性和复用性 复杂的表达式 有些时候为了方便我们会把业务处理的逻辑写在一起,如果参与处理的内容较多时我们就会创造出一个非常长且难以理解的表达式。当其他…...

Spring之基于注解方式实例化BeanDefinition(1)

最近开始读Spring源码,读着读着发现里面还是有很多很好玩的东西在里面的,里面涉及到了大量的设计模式以及各种PostProcessor注入的过程,很好玩,也很复杂,本文就是记录一下我学习过程中的主干流程。 在开始我们源码解读…...

【STM32】入门(十四):FreeRTOS-任务

1、简述 FreeRTOS应用程序由一组独立的任务构成。 在任何时间点,应用程序中只能执行一个任务,FreeRTOS调度器负责决定所要执行的任务。 每个任务在自己的上下文中执行,不依赖于系统内的其他任务或 FreeRTOS的调度器本身。 FreeRTOS调度器负责…...

apscheduler 的基本介绍和使用

APScheduler有四大组件: 1、触发器 triggers : 触发器包含调度逻辑。每个作业都有自己的触发器,用于确定下一个任务何时运行。除了初始配置之外,触发器是完全无状态的。 有三种内建的trigger: (1)date: 特定…...

Oracle中merge Into的用法

Oracle中merge Into的用法 使用场景 在操作数据库时,数据存在的情况下,进行update操作;不存在的情况下,进行insert操作;在Oracle数据库中,能够使用merge into来实现。 基本语法 merge into table_name …...

JDK19下载、安装与测试的完整图文教程

一、下载JDK 1、官网获取:https://www.oracle.com/ 1.1 点击“Products”; 1.2 选择“Java”; 1.3 选择“Download Java”; 1.4 选择“Java downloads”,这里以最新版(JDK19)为例&#xff…...

Vector - CAPL - 获取相对时间函数

在自动化开发中,无论是CAN通信测试,还是网络管理测试,亦或是休眠唤醒等等存在时间相关的,都可能会使用相关的时间函数;今天主要介绍的就是获取当前时间,我们知道vector工具的最大优势就是稳定和精确度高&am…...

C++编程语言STL之unordered_map介绍

本文主要介绍 C 编程语言的 STL(Standard Template Library) 中 unordered_map 的相关知识,同时通过示例代码介绍 unordered_map 的常见用法。1 概述C标准库提供了四个无序关联容器(unordered associated container)&a…...

【独家】华为OD机试 - 最快检测效率-核酸(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

【Redis应用】基于Redis实现共享session登录(一)

🚗Redis应用学习第一站~ 🚩本文已收录至专栏:数据库学习之旅 👍希望您能有所收获 👉相关推荐:使用短信服务发送手机验证码进行安全校验 一.引入 ​ 在开发项目过程中,我们常常能碰到需要登录注…...

Android framework系列2 - Init进程

1、源码 入口:system/core/init/main.cpp2 流程图 https://note.youdao.com/s/EtnCswft 3、代码详解 主入口共三步,如流程图所示,我们主要看下最后一步 入口在init.cpp下,这个阶段主要来解析init.rc并执行此文件下的命令 看到…...

2023年“网络安全”赛项江苏省淮安市选拔赛 任务书

任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 服务器内部信息获取 任务二 网站渗透测试 任务三 Linux系统渗透提权 任务四 Web渗透测试 第二阶段分组对抗 备战阶段 攻防对抗准备工作 系统加…...

2023年Wireshark数据包分析——wireshark0051.pcap

Wireshark数据包分析 任务环境说明: 服务器场景:FTPServer220223服务器场景操作系统:未知(关闭连接)FTP用户名:wireshark0051密码:wireshark0051从靶机服务器的FTP上下载wireshark0051.pcap数据包文件,找出黑客获取到的可成功登录目标服务器FTP的账号密码,并将黑客获…...

SpringMVC的自定义配置和自动化配置

SpringBoot的自动配置MVC处理加载逻辑基于Spring Boot的MVC自动化配置由WebMvcAutoConfiguration类完成,部分关键源码:AutoConfiguration(after { DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class,ValidationAutoConf…...

画图说透 ZooKeeper如何保证数据一致性:选举和ZAB协议

1、zookeeper是什么? zookeeper能被各个牛逼的中间件项目中所依赖,已经说明了他的地位。一出手就是稳定的杀招。zookeeper是什么?官网中所说,zookeeper致力于开发和维护成为一个高度可靠的分布式协调器。 开局一张图,…...

错误异常捕获

1、React中错误异常捕获 在 React 中,可以通过 Error Boundaries(错误边界)来捕获错误异常。Error Boundaries 是一种 React 组件,它可以在其子组件树的渲染期间捕获 JavaScript 异常,并且可以渲染出备用 UI。React 提…...

js垃圾回收机制

内存的生命周期 ]S环境中分配的内存,一般有如下生命周期 1.内存分配:当我们声明变量、函数、对象的时候,系统会自动为他们分配内存 2.内存使用:即读写内存,也就是使用变量、函数等 3.内存回收: 使用完毕,由垃圾回收器自动回收不再…...

YApi分析从NoSQL注入到RCE远程命令执行.md

0x00 前提 这个是前几个月的漏洞,之前爆出来发现没人分析就看了一下,也写了一片 Nosql注入的文章,最近生病在家,把这个写一半的完善一下发出来吧。 0x01 介绍 YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台…...