【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述

前言

  • 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。
  • 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,相关CSDN文章便没有发出。
  • 从这篇文章开始,这里我将按章节顺序,围绕考研真题展开操作系统总共5章的知识,边学习边整理数据。

请注意,本文中的部分内容来自网络搜集和个人实践,如有任何错误,请随时向我们提出批评和指正。本文仅供学习和交流使用,不涉及任何商业目的。如果因本文内容引发版权或侵权问题,请通过私信告知我们,我们将立即予以删除。

文章目录

  • 前言
    • 操作系统的定义
    • 操作系统功能
      • 管理硬件(前五块也就是操作系统的所有内容)
    • 知识回顾思维导图
      • 特征
    • 操作系统的特征思维导图
    • 操作系统的启动
      • 哈工大版本
      • 王道版本
    • 操作系统的运行环境(王道)
      • 预备知识:程序是如何运行的?
      • 内核程序v.s.应用程序
      • 特权指令v.s.非特权指令
      • CPU的状态
    • 操作系统的运行机制思维导图
      • 中断与异常
        • 中断的作用
        • 中断的分类
    • 中断和异常思维导图
      • 系统调用(广义指令)
        • 系统调用与库函数的区别
        • 什么功能要用到系统调用?
        • 系统调用的过程
      • 系统调用思维导图
    • 操作系统历史
      • 哈工大分两条线讲
      • 王道版本
        • 操作系统(OS)发展阶段
        • OS的发展与分类思维导图
    • 操作系统体系结构(新考点)
      • 操作系统的内核
      • 分层结构
      • 模块化
      • 宏内核(大内核)
      • 微内核
      • 外核
    • 虚拟机(新考点)
      • 第一类VMM
      • 第二类VMM
  • 考研真题
    • 408 - 2023
      • 12. 计算程序执行速度和用户CPU时间
    • 408 - 2022
      • 12. 计算平均CPI和CPU执行时间
      • 20. 高级语言程序转换为可执行目标文件的过程
    • 408 - 2021
      • 12. 计算机浮点运算速度与操作次数的关系
    • 未完待续,逐张试卷整理中,会一直更新到2009

操作系统的定义

在这里插入图片描述

操作系统功能

管理硬件(前五块也就是操作系统的所有内容)

  • CPU管理

  • 内存管理

  • I/O(终端)管理

  • 磁盘管理

  • 文件管理

  • 网络管理、电源管理、多核管理(不讲,课程高级操作系统讲解)
    多进程视图:- CPU管理- 内存管理

文件操作视图:- I/O(终端)管理- 磁盘管理- 文件管理
在这里插入图片描述

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

知识回顾思维导图

在这里插入图片描述

特征

  • 并发

    • 并发(进程)

      • 多道程序环境,宏观上多道程序同时执行,每个时刻单处理机仅有一道程序执行,微观上程序分时交替执行
    • 并行

      • 同一时刻完成两种或两种以上工作,需要硬件支持
        在这里插入图片描述
        在这里插入图片描述
  • 共享

    • 互斥共享方式

      • 某些资源在一段时间内只允许一个进程访问该资源
    • 同时访问方式

      • 一段时间内允许多个进程对资源进行访问,分时共享
        在这里插入图片描述
  • 并发和共享的关系
    在这里插入图片描述

  • 虚拟

    • 一个物理上的实体变为若干逻辑上的对应物

      • 时分复用技术

      • 空分复用技术
        在这里插入图片描述
        在这里插入图片描述

  • 异步

    • 由于资源有限,进程的执行不是一贯到底,走走停停,以不可预知的速度前进
      在这里插入图片描述

并发和共享互为存在条件(最基本特征)

操作系统的特征思维导图

在这里插入图片描述

操作系统的启动

哈工大版本

  • 在这里插入图片描述

    • x86 PC为例

    • BIOS映射区:固化在主存ROM中,用于检查RAM、键盘、显示器、软硬磁盘等,并将磁盘第一个扇区读入主存

    • 引导扇区代码(bootsect.s一段汇编代码):将操作系统读入内存,转入setup.s执行

      • 补充:该程序的主要作用是首先把从磁盘第2个扇区开始的4个扇区的setup模块加载到内存紧接着bootsect后面位置((0x90200)),再把磁盘上setup模块后面的system模块加载到内存0x10000开始的地方
    • setup模块(setup.s汇编代码执行)

      • 读硬件参数存储到内存数据结构中,初始化gdt表

        • gdt表(全局描述表):保护模式下,以数组的形式存储全局的段的描述符

        • idt表(中断描述符表):记录了中断号和调用函数之间的关系

      • system模块移动到物理内存起始位置处(0x0000),启动保护模式,转跳到0x0000处

    • system模块

      • head.s:初始化一些gdt表、idt表、页表

      • main.c:一堆初始化函数

王道版本

  • 在这里插入图片描述

    • CPU执行ROM中引导程序(硬件自检,再开机)

    • 磁盘第一块------主引导记录读入内存,执行磁盘引导程序,扫描分区表

    • 以活动分区读入分区引导记录,并执行

    • 以根目录下找到完整操作系统初始化程序(启动管理器)并执行、开机

操作系统的运行环境(王道)

预备知识:程序是如何运行的?

在这里插入图片描述

内核程序v.s.应用程序

在这里插入图片描述

特权指令v.s.非特权指令

在这里插入图片描述

CPU的状态

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

    • 内核态(管态/核心态):CPU可以执行特权指令,操作系统内核程序运行在核心态

    • 用户态(目态):CPU只能执行非特权指令

    • 内核态->用户态

      • 执行一条特权指令,修改PSW中“用户态”,操作系统主动让出CPU使用权
    • 用户态->内核态

      • 由“中断”引发(内中断、陷入指令、访管指令、Trap指令),硬件完成,操作系统强行夺回CPU使用权
        在这里插入图片描述

操作系统的运行机制思维导图

在这里插入图片描述

中断与异常

中断的作用

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

中断的分类

在这里插入图片描述

  • 异常(内中断)

    • 例外、陷入、访管、Trap指令,硬件故障,软件中断

在这里插入图片描述

  • 中断(外中断)

    • 来自CPU执行指令之外的事件发生导致中断(外设请求、人为干预)
      在这里插入图片描述
  • 中断处理过程

    • 中断隐指令(硬件完成)

      • 关中断

      • 保存断点

      • 中断服务程序寻址

    • 中断服务程序(软件实现)

      • 保存现场和屏蔽字

      • 开中断

      • 执行中断服务程序

      • 关中断

      • 恢复现场和屏蔽字

      • 开中断

      • 中断返回
        在这里插入图片描述

中断和异常思维导图

在这里插入图片描述

系统调用(广义指令)

  • 操作系统接口(哈工大)

    • 三种用户使用方式(上层提供服务)

      • 都是通过c语言调用一些操作系统提供的重要函数实现,重要函数即操作系统接口,表现为函数调用,因为由系统提供,称为系统调用

        • 命令行:本质是系统初始化完,最后执行的一段死循环等待用户输入的程序

        • 图形按钮:基于消息机制

          • 消息机制:操作系统实现一个消息队列,应用程序循环调用一个函数,从操作系统将消息拿出来,每取出一个就会调用对应的消息处理函数
        • 应用程序

    • POSIX:IEEE制定的一个标准族

      • 统一不同操作系统的系统调用接口:fork、open、EACCES等
    • 系统调用的实现

      • 在这里插入图片描述

        • 用户调用printf,通过库函数变成int 0x80代码,系统在初始化时将int 0x80代码做成一个system call进入内核态,system call中断处理调用system call table去查表,根据传递的系统调用号,最后调用sys_write
  • 系统调用概念

    • 用户在程序中调用操作系统子功能,可视为特殊的公共子程序
  • 系统调用过程

    • 传递系统调用参数

    • 执行陷入指令(访管指令/trap指令)主动引发一个内中断

    • 执行服务程序

    • 返回用户态

系统调用与库函数的区别

在这里插入图片描述

什么功能要用到系统调用?

在这里插入图片描述

系统调用的过程

在这里插入图片描述

系统调用思维导图

在这里插入图片描述

操作系统历史

哈工大分两条线讲

  • IBSYS

    • OS/360

      • MULTICS

        • UNIX

          • LINUS

          • System

            • Mac OS

              • iOS
  • CP/M

    • QDOS

      • MS-DOS

        • WINDOWS

王道版本

操作系统(OS)发展阶段
  • 手工操作阶段在这里插入图片描述

    • 单道批处理阶段在这里插入图片描述

      • 多道批处理系统在这里插入图片描述

        • 分时操作系统在这里插入图片描述

          • 实时操作系统在这里插入图片描述

            • 网络操作系统

              • 分布式计算机系统

                • 个人计算机操作系统

                  • 微型计算机操作系统
                    在这里插入图片描述
OS的发展与分类思维导图

在这里插入图片描述

  • 所有工作需要人工干预

    • 自动性:作业自动执行

      • 操作系统出现

        • 交互性强

          • 抢占式,优先级高者优先

            • 服务于计算机网络,集中式控制方式

              • 并行工作,协同完成任务,无主从之分
  • 用户独占全机,资源利用率低

    • 顺序性:作业依次执行

      • 中断技术,无人机交互

          - 及时,可靠,交互性不如分时
        
  • CPU等待手工操作,利用率低

    • 单道性:仅有一道程序执行

      • 宏观上并行,微观上串行

          - 硬实时系统:飞机控制系统,导弹系统
        

软实时系统:订票系统

操作系统体系结构(新考点)

在这里插入图片描述

操作系统的内核

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

在这里插入图片描述

分层结构

  • 内核分多层,每层可单向调用更低一层提供的接口

    • 便于调试和验证(逐层调试验证),易扩充维护

    • 难以定义各层边界,效率低,不可夸层调用
      在这里插入图片描述

模块化

  • 将内核分为多个模块,模块间相互协作,内核=主模块+可加载内核模块

    • 易维护,可多模块同时开发;支持动态加载新的内核模块;任何模块可以直接调用其他模块

    • 模块间相互依赖,难以调试

在这里插入图片描述

宏内核(大内核)

  • 在这里插入图片描述

变态:CPU转态的转换
在这里插入图片描述

- 所有功能都放在内核中

- 性能高,内核内部功能可以互相直接调用

- 内核功能复杂,难以维护,内核某个功能模块出错,可能导致系统崩溃

微内核

在这里插入图片描述

变态:CPU转态的转换

  • 在这里插入图片描述

    • 只把中断、原语、进程通信等核心功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态

    • 内核小功能少、易于维护,可靠性高;功能模块崩溃不会导致整个系统崩溃

    • 性能低,需要频繁切换用户态/核心态,用户态下各功能模块不可以直接互相调用,只能内核的“消息传递”间接通信
      在这里插入图片描述

外核

  • 内核负责进程调度、进程通信等功能,外盒负责为用户进程安全分配硬件资源

    • 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源

    • 减少虚拟硬件资源的“映射层”,提升效率

    • 降低了系统一致性,系统复杂
      在这里插入图片描述

虚拟机(新考点)

第一类VMM

  • 在这里插入图片描述

    • 安装Guset OS时,VMM要在原本的硬盘上自行分配存储空间

    • 性能更好,可迁移性更差

    • 第一类VMM运行在最高特权级,可以执行最高特权指令

第二类VMM

  • 在这里插入图片描述

    • 拥有自己的虚拟磁盘,实际上上Host OS文件系统中的一个大文件,分配到的是虚拟内存

    • 性能差,需要Host OS为中介

    • 第二类VMM部分运行在用户态,部分运行在内核态。Guest OS发出系统调用会被VMM截获,转化为VMM对Host OS的系统调用

在这里插入图片描述

考研真题

408 - 2023

12. 计算程序执行速度和用户CPU时间

若机器M的主频为1.5 Hz,在M上执行程序P的指令条数为5 × 10^5,P的平均CPI为1.2,则P在M上的指令执行速度和用户CPU时间分别为哪个选项?

A. 0.8 GIPS, 0.4 ms

B. 0.8 GIPS, 0.4 us

C. 1.25 GIPS, 0.4 ms

D. 1.25 GIPS, 0.4 us
基础知识

在理解和解析这个问题之前,需要了解以下基础知识:

  1. 主频(Clock Frequency):主频是计算机处理器(CPU)的时钟频率,通常以赫兹(Hz)为单位表示。它表示CPU每秒钟的时钟周期数。例如,如果主频为1.5 Hz,那么CPU每秒钟将执行1.5亿个时钟周期。

  2. 指令执行速度(IPS,Instructions Per Second):指令执行速度是计算机在单位时间内执行的指令数。它通常以GIPS(Giga Instructions Per Second)为单位表示。计算指令执行速度需要考虑主频和每条指令的平均CPI(Cycles Per Instruction)。

  3. 指令条数:指令条数是程序中包含的机器指令的数量。这是一个影响程序执行时间的因素。

  4. 用户CPU时间:用户CPU时间是指程序在CPU上执行的实际时间,通常以毫秒(ms)为单位表示。它取决于总时钟周期数和主频。

解析:

首先,我们需要计算程序P在机器M上的指令执行速度和用户CPU时间。以下是计算过程:

  • 程序P的指令条数为5 × 10^5。
  • P的平均CPI为1.2。
  • 机器M的主频为1.5 Hz。

计算程序P的总时钟周期数:
总时钟周期数 = 指令条数 × 平均CPI = 5 × 10^5 × 1.2 = 6 × 10^5

机器M的主频为1.5 Hz,这意味着每秒有1.5 × 10^9 个时钟周期。

现在,计算指令执行速度(IPS,Instructions Per Second):
指令执行速度 = 主频 / 平均CPI = (1.5 × 10^9) / 1.2 = 1.25 × 10^9 IPS = 1.25 GIPS

最后,计算用户CPU时间:
用户CPU时间 = 总时钟周期数 / 主频 = (6 × 10^5) / (1.5 × 10^9) = 0.4 × 10^(-3) 秒 = 0.4 ms

所以,程序P在机器M上的指令执行速度为1.25 GIPS,用户CPU时间为0.4毫秒(ms)。因此,答案是选项C:1.25 GIPS, 0.4 ms。

408 - 2022

12. 计算平均CPI和CPU执行时间

问题: 某计算机主频为1GHz,程序P运行过程中,共执行了10000条指令,其中,80%的指令执行平均需1个时钟周期,20%的指令执行平均需10个时钟周期。程序P的平均CPI(Cycles Per Instruction)和CPU执行时间分别是多少?

A. 2.8,28μs

B. 28,28μs

C. 2.8,28ms

D. 28,28ms

解答:

基础知识:

  • CPI(Cycles Per Instruction): CPI 表示每条指令执行所需的平均时钟周期数。它是衡量计算机性能的一个重要指标。公式为:

    [CPI = \frac{\text{总时钟周期数}}{\text{执行的指令数}}]

  • CPU执行时间: CPU执行时间表示程序运行所需的时间,通常以秒为单位。

按照题意,程序P的指令总数为10000,其中80%的指令CPI为1,20%的指令CPI为10。首先计算平均CPI:

平均CPI = (80% × 1 + 20% × 10) = 2.8

计算机主频为1GHz,即1 × 10^9 Hz。现在可以计算CPU执行时间:

CPU执行时间 = 10000 × 2.8 / (1 × 10^9) = 28μs

所以,程序P的平均CPI是2.8,CPU执行时间是28μs。

正确答案是 A. 2.8,28μs

20. 高级语言程序转换为可执行目标文件的过程

问题: 将高级语言源程序转换为可执行目标文件的主要过程是什么?

A. 预处理→编译→汇编→链接

B. 预处理→汇编→编译→链接

C. 预处理→编译→链接→汇编

D. 预处理→汇编→链接→编译

解答:

基础知识:

将高级语言源程序转换为可执行目标文件的主要过程通常包括以下步骤:

  1. 预处理(Preprocessing): 在这个阶段,预处理器根据预处理指令(如宏定义、条件编译等)对源代码进行处理。预处理器会展开宏定义、包含头文件等,生成经过预处理的源代码。

  2. 编译(Compilation): 在这个阶段,编译器将预处理后的源代码转换为汇编代码。编译器对代码进行词法分析、语法分析、语义分析,生成相应的中间代码或汇编代码。

  3. 汇编(Assembly): 在这个阶段,汇编器将汇编代码转换为机器码指令。汇编器将汇编代码中的每条指令翻译成机器码表示。

  4. 链接(Linking): 在这个阶段,链接器将各个源文件编译生成的目标文件及所需的库文件合并在一起,生成最终的可执行目标文件。链接器会解析符号引用关系,将函数和变量的引用与其定义进行匹配,并进行地址重定位等操作,使得程序能够正确地执行。

因此,正确的过程是:预处理→编译→汇编→链接,选项A是正确的。

答案是 A. 预处理→编译→汇编→链接

拓展

例如gcc编译器将hello.c转换为可执行目标文件hello的过程如下:

对应的命令如下:

预处理:gcc -E hello.c -o hello.i
编译:gcc –S hello.i –o hello.s
汇编:gcc –c hello.s –o hello.o
链接:gcc hello.o –o hello

408 - 2021

12. 计算机浮点运算速度与操作次数的关系

问题:2017 年公布的全球超级计算机 TOP 500 排名中,我国“神威·太湖之光”超级计算机蝉联第一,其浮点运算速度为93.0146 PFLOPS,说明该计算机每秒钟内完成的浮点操作次数约为?

A. 9.3×10^13次
B. 9.3×10^15次
C. 9.3 千万亿次
D. 9.3 亿亿次

答案:D

基础知识:
PFLOPS(PetaFLOPS)表示每秒钟完成的浮点操作次数达到了10^15次。根据题目中提供的数据,神威·太湖之光超级计算机的浮点运算速度为93.0146 PFLOPS~每秒9.3×10次浮点运算,因此每秒钟完成的浮点操作次数约为9.3×10^16次。

未完待续,逐张试卷整理中,会一直更新到2009

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

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

相关文章

十种排序算法(1) - 准备测试函数和工具

1.准备工作 我们先写一堆工具&#xff0c;后续要用&#xff0c;不然这些写在代码里可读性巨差 #pragma once #include<stdio.h>//为C语言定义bool类型 typedef int bool; #define false 0 #define true 1//用于交互a和b inline void swap(int* a, int* b) {/*int c *a…

微软bing大声朗读文档或网页卡顿老是中断,用离线的huihui就很流畅但没那么自然

默认的xiaoxiao_online好听&#xff0c;但卡顿&#xff0c;朗读功能确实受到了网络状态的影响。 大概率是网络问题。

Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin

Android Glide判断图像资源是否缓存onlyRetrieveFromCache&#xff0c;使用缓存数据&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity…

目标检测算法发展史

前言 比起图像识别&#xff0c;现在图片生成技术要更加具有吸引力&#xff0c;但是要步入AIGC技术领域&#xff0c;首先不推荐一上来就接触那些已经成熟闭源的包装好了再提供给你的接口网站&#xff0c;会使用别人的模型生成一些图片就能叫自己会AIGC了吗&#xff1f;那样真正…

0001net程序设计-net大学校园二手交易平台

文章目录 摘 要目 录系统设计开发环境 摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&…

数据结构───链表

花费一个周时间学完了链表&#xff08;的一部分&#xff09;&#xff0c;简单总结一下。 链表的学习离不开画图&#xff0c;将其抽象成一种逻辑模型&#xff0c;可以减少思考时间&#xff0c;方便理解。 链表大致分为8种结构&#xff0c;自己学习并实现了两种结构&#xff0c;也…

UE5 日记(人物连招:蒙太奇动画通知(含视频链接))

教程https://www.youtube.com/watch?vsWpENaVGj2M&listPLiSlOaRBfgkcPAhYpGps16PT_9f28amXi&index10&ppiAQB 相关蓝图 连招逻辑 动画通知类 逻辑分析 1.用户输入 已搭载战斗系统模块,可以收到输入指令 2.连击 第一次攻击&#xff1a; 第一次攻击&#xff0c;…

初探802.11协议(6)——Wi-Fi 6新特性简介

目录 前言 场景需求 Trigger Frames 一. BSS Color 1.1 机制 1.1.1 Color Collision 1.2 Frame Format 1.2.1 BSS Color Information 二. TWT 2.1 节能 2.1.1 PSM 2.1.2 从PSM到TWT 2.1.2.1 TWT模式 2.2 Frame Format REF 前言 802.11ax以前强调"高吞吐量…

基于 Appium 的 Android UI 自动化测试!

自动化测试是研发人员进行质量保障的重要一环&#xff0c;良好的自动化测试机制能够让开发者及早发现编码中的逻辑缺陷&#xff0c;将风险前置。日常研发中&#xff0c;由于快速迭代的原因&#xff0c;我们经常需要在各个业务线上进行主流程回归测试&#xff0c;目前这种测试大…

@CallSuper注解方法学习

CallSuper注解方法学习 CallSuper注解是什么&#xff1f;CallSuper注解使用CallSuper 值得一提的事总结 CallSuper注解是什么&#xff1f; CallSuper 是 Android 开发中使用的一个注解&#xff0c;它的主要用途是确保在子类重写父类的方法时&#xff0c;调用 super 方法。这在…

【Qt】绘图与绘图设备

文章目录 绘图设备QPainter绘图实例案例1案例2-高级设置案例3&#xff1a;利用画家画资源图片 点击按钮移动图片 QtPaintDevice实例Pixmap绘图设备QImage 绘图设备QPicture 绘图设备 QPainter绘图 Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制。整个绘图系…

云安全—K8S API Server 未授权访问

0x00 前言 master节点的核心就是api服务&#xff0c;k8s通过REST API来进行控制&#xff0c;在k8s中的一切都可以抽象成api对象&#xff0c;通过api的调用来进行资源调整&#xff0c;分配和操作。 通常情况下k8s的默认api服务是开启在8080端口&#xff0c;如果此接口存在未授…

RPC与HTTP的关系

首选理清楚关系 RPC与HTTP是两个不同维度的东西 HTTP 协议&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff0c;又叫做超文本传输协议&#xff0c;是一种传输协议&#xff0c;平时通过浏览器浏览网页网页&#xff0c;用到的就是 HTTP 协议。 而 RPC&#xff0…

【java】【MyBatisPlus】【三】【完】MyBatisPlus扩展

目录 一、分页查询lambdaQueryWrapper 二、自定义分页查询 1、UserMapper 2、UserMapper.xml 3、测试方法 三、MybatisX插件 1、安装 2、MybatisX代码快速生成 2.1 连接数据库 2.2 操作需要生成代码的表 3、MybatisX快速生成CRUD&#xff08;前提步骤2生成&#xff…

【算法练习Day32】 斐波那契数爬楼梯使用最小花费爬楼梯

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 斐波那契数爬楼梯使用最小花…

探讨下前端测试的常见场景

前端测试 场景 这边指的测试是指白盒测试&#xff0c;用代码来测试代码。 测试有利于提升代码质量。 代码功能和需求一致。根据需求&#xff0c;写测试。测试通过了&#xff0c;则表明需求实现了。保证代码重构后&#xff0c;未改坏以前的功能。代码重构后&#xff0c;能通过…

[C++入门系列]——类和对象下篇

​作者主页 &#x1f4da;lovewold少个r博客主页 ⚠️本文重点&#xff1a;C类和对象下篇知识点讲解 &#x1f449;【C-C入门系列专栏】&#xff1a;博客文章专栏传送门 &#x1f604;每日一言&#xff1a;宁静是一片强大而治愈的神奇海洋&#xff01; 目录 前言 再谈构造函数…

解决方案|法大大电子合同加速互联网家装服务升级

随着互联网的快速发展以及政策的不断推动&#xff0c;家装行业“互联网”趋势也不断凸显。行业内很多企业已经开始在全链条业务中使用电子合同&#xff0c;基于电子合同合规化、无纸化、线上化、智能化的价值赋能&#xff0c;实现家装从需求沟通、家装设计、选材、装修施工、验…

【MySQL--->内外连接】

文章目录 [TOC](文章目录) 一、内连接二、左外连接三、右外连接 一、内连接 内连接就是将两个表连接进行笛卡尔积查询 显示SMITH的名字和部门名称 二、左外连接 左外连接就是以左面的表为主&#xff0c;即便是右边的表没有而左边表项中有的&#xff0c;依然显示 查询所有学…

jenkins详细安装教程

这里写目录标题 一、Jenkins安装与部署1-1、Jenkins的简介1-2、下载需要的软件1-2-1 jekins.war1-2-2 tomcat安装方式 1-3、使用11版本的jdk1-4、开启jenkins1-5、获取密码1-5 修改镜像(可改可不改) 二、卸载Jenkins 一、Jenkins安装与部署 1-1、Jenkins的简介 Jenkins是一个…