95.【操作系统-第一章】

news2024/11/18 20:38:34

操作系统

  • (一)、操作系统概述
    • 1.1_操作系统的概念、功能和目标
        • (1).操作系统的定义
        • (2).操作系统的功能和目标——作为系统资源的管理者
        • (3).操作系统的功能和目标——向上层提供方便易用的服务
        • (4).操作系统的功能和目标--作为用户和计算机硬件之间的接口
        • (5).操作系统的功能和目标——作为最接近硬件的层次
        • (6).小章总结:
    • 1.2_操作系统的四大特征
        • (1).操作系统的特征——并发
        • (2).**操作系统的特征——共享**
        • (3).操作系统的特征——并发和共享的关系
        • (4).操作系统的特征——虚拟
        • (5).操作系统的特征——异步
        • (6).小章总结
    • 1.3_操作系统的发展与分类
        • (1).手工操作阶段.
        • (2).批处理阶段——单道批处理系统 (操作系统雏形)
        • (3).批处理阶段——多道批处理系统 (操作系统诞生)
        • (4).分时操作系统
        • (5).实时操作系统
        • (6).其他操作系统
    • 1.4_操作系统的运行机制与体系结构
        • (1).预备知识——程序是如何运行的?
        • (2).内核程序与应用程序 (两种程序)
        • (3).特权指令与非特权指令 (两种指令)
        • (4).内核态与用户态 (两种处理器状态)
        • (5).内核态 用户态的切换 (变态)
        • (6).操作系统内核
        • (7).操作系统的体系结构 (大内核 微内核)
        • (8).本章小结
    • 1.5_中断和异常
        • (1).中断机制的诞生
        • (2).中断的概念和作用
        • (3).中断的类型
        • (4).中断机制的基本原理
  • 1.6_系统调用
        • (1).什么是系统调用,有何作用?
        • (2).系统调用与库函数的区别
        • (3).为什么系统调用是必须的?
        • (4).什么功能要用到系统调用?
        • (5).系统调用的过程

(一)、操作系统概述

1.1_操作系统的概念、功能和目标

(1).操作系统的定义

  • 厂家组装裸机
  • 出售前安装一台操作系统
  • 用户安装应用程序进行兼容(操作系统)
  • 用户使用应用程序进行业务需求
    用户和操作系统是有直接关系的,并不是没有直接关系

在这里插入图片描述

操作系统是指控制和管理整个计算机系统的硬件和软件资源【1.操作系统是系统资源的管理者】,并合理地阻止调度计算机的工作和资源的分配,以提供用户和其他软件方便的接口和环境【2.向上层提供方便的服务】,他是计算机系统中最基本的系统软件【3.是最接近硬件的一层软件】。

在这里插入图片描述

(2).操作系统的功能和目标——作为系统资源的管理者

首先要看的是操作系统作为软件和硬件中间的层次,它是系统资源的管理者。
处理机管理: CPU。存储器管理: 内存。文件管理: 放的位置。设备管理: 摄像头。

在这里插入图片描述

补充知识: 进程是一个程序的执行过程。执行前需要将该程序放到内存中,才能被CPU处理。

下图以QQ视频聊天为例

  • 在各个文件夹中找到QQ安装的位置 (如: D:/tencenter/qq/bin) 逐层打开文件夹,找到QQ.exe.这个程序(可执行)的存放位置【文件管理】
  • 双击打开QQ.exe
    需要把该程序相关数据放入内存 【存储管理】
  • QQ程序正常运行
    对应的进程被处理机(CPU)处理 【处理机管理】
  • 开始和朋友视频聊天
    需要将摄像头设备分配给进程 【设备管理】

(3).操作系统的功能和目标——向上层提供方便易用的服务

在这里插入图片描述

(4).操作系统的功能和目标–作为用户和计算机硬件之间的接口

在这里插入图片描述

命令接口:允许用户直接访问
联机命令接口或交互式命令接口: 用户说一句,系统做一句

在这里插入图片描述

脱机命令接口: 用户说一堆,系统做一堆
搜索*.bat随意打开一个就会发现:

在这里插入图片描述

.bat文件里有一堆命令,但本质上和time命令没有任何区别,我们只不过是把这一系列的命令罗列在了清单里,然后当我们执行.bat文件时操作系统其实就是根据这个文件当中的命令一条一条地往后执行。

程序接口: 允许用户通过程序间接使用,由一组系统调用(系统调用命令/广义指令)组成 (程序接口=系统调用)
GUI图形化用户接口: 现代操作系统中最流行的图形用户接口,用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。eg:在window操作系统中,删除一个文件只需把文件拖拽到回收站即可

在这里插入图片描述
小总结:
在这里插入图片描述

(5).操作系统的功能和目标——作为最接近硬件的层次

在这里插入图片描述

  • 需要提供的功能和目标: 实现对硬件机械的拓展
  • 没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
  • 通常把覆盖了软件的及其成为扩充机器,又称之为虚拟机

类比:
硬件: 锤子、锯子、木头、钉子…
操作系统: 优秀的工匠
操作系统对硬件的拓展: 房子、车子、帆船
普通用户: 直接使用木匠拓展的工具

(6).小章总结:

在这里插入图片描述

1.2_操作系统的四大特征

(1).操作系统的特征——并发

并发: 指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

并行:指两个或多个事件在同一时刻同时发生。微观上也是同时的

并发和并行的区别:

在这里插入图片描述

操作系统的并发性: 指计算机系统中同时存在多个运行着的程序。这些程序微观上看着是交替执行的,宏观上是同时执行的。

一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序进行交替执行

操作系统的诞生: 操作系统就是伴随着: "多道程序技术"而出现的。因此操作系统和程序并发是一起诞生的

当今的计算机,一般是多核CPU.
在这里插入图片描述

比如: intel的第八代i3处理器就是4核CPU.意味着有四个程序可以并行执行。但是操作系统的并发性依然必不可少

(2).操作系统的特征——共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

在这里插入图片描述

所谓的同时: 往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)

在这里插入图片描述

有的时候这个同时共享也有可能是微观上也确实在同时地共享资源,比如边打游戏边听歌,扬声器设备一边在播放游戏的音效一边在播放音乐。在这种情况下,扬声器的声音输出设备是真的在微观上也是同时正在被音乐播放器和游戏这两个进程同时使用的。(并行)

(3).操作系统的特征——并发和共享的关系

并发性:指计算机系统中"同时"存在多个运行着的程序

共享性:是指计算机中的资源可供内存中多个并发执行的进程共同执行。

在这里插入图片描述
总之并发性和共享性互为存在条件

(4).操作系统的特征——虚拟

虚拟是指一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际上真实存在的,而逻辑上对应物(后者)是用户感受到的。

在这里插入图片描述

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

虚拟处理器技术在这里插入图片描述

(5).操作系统的特征——异步

异步是指: 在多个程序环境下,允许多个程序并发执行,但是由于资源优先,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

在这里插入图片描述

(6).小章总结

没有并发和异步,就谈不上虚拟和异步,因此最基本的两个特征就是:并发和异步在这里插入图片描述

1.3_操作系统的发展与分类

在这里插入图片描述

(1).手工操作阶段.

主要缺点: 用户独占全机,人机矛盾导致效率低
由有无小孔代表0和1

在这里插入图片描述

(2).批处理阶段——单道批处理系统 (操作系统雏形)

主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。

主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序CPU有大量的时间是在空闲等待I/0完成。资源利用率依然很低

引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出在这里插入图片描述
操作系统的雏形在这里插入图片描述

(3).批处理阶段——多道批处理系统 (操作系统诞生)

主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。

主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。
eg:无法调试程序/无法在程序运行过程中输入一些参数)

在这里插入图片描述

(4).分时操作系统

分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点: 不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户作业服务一个时间片,不区分任务的紧急性。

在这里插入图片描述

(5).实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性

在这里插入图片描述

(6).其他操作系统

网络操作系统是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,资源的共享 (如文件共享) 和各台计算机之间的通信。 (如: windows NT 就是06一种典型搜索评论笔记网站服务器就可以使用)

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。

个人计算机操作系统:如 Windows xP、Macos,方便个人使用。

1.4_操作系统的运行机制与体系结构

(1).预备知识——程序是如何运行的?

在这里插入图片描述

像我们平时用c语言代码写的程序都会经过编译器的编译工作把C语言代码翻译成二进制机器指令。像我们平时用C语言这种高级语言写的一条代码经过编译之后可能会对应很多机器指令。程序运行的过程其实就是CPU执行一条一条机器指令的过程。

“指令”就是处理器CPU能识别,执行的最基本命令。

注:很多人习惯把Linux,Windows,MacOS的“小黑框”中使用的命令也成为“指令”,其实这是“交互式命令接口”,注意与本节的“指令”区别开。本节中的“指令”指二进制机器指令

总之平时我们用高级语言编写的程序最后执行的时候肯定是要变成CPU能够读的懂的用二进制机器指令表现的这种形式,这就是程序运行的基本原理

(2).内核程序与应用程序 (两种程序)

在操作系统这门课当中,我们要注意区分两种类型的程序,分别是内核程序和应用程序。我们普通程序员写的程序就是“应用程序”。微软、苹果有一帮人负责实现操作系统,他们写的是“内核程序”由很多内核程序组成了“操作系统内核”,或简称“内核(Kernel)”。内核是操作系统最重要最核心的部分,也是最接近硬件的部分。甚至可以说,一个操作系统只要有内核就够了(eg:有的同学可能接触过容器技术,比如说Docker,在Docker容器里只需要有Linux的内核就可以实现Linux的所有功能了)。操作系统的功能未必都在内核中,如图形化用户界面 GUI。

即使没有图形化的界面我们依然可以用命令行(也就是之前说的“小黑框”)的方式来使用操作系统。所以操作系统的内核当中所包含的只是操作系统当中最重要最核心的功能

(3).特权指令与非特权指令 (两种指令)

既然操作系统内核是系统资源的管理者,它作为管理者的角色有时可能会让CPU执行一些比较特殊的指令

在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。
在这里插入图片描述

怎么区分是特权指令还是非特权指令?

(4).内核态与用户态 (两种处理器状态)

虽然CPU能够分辨出特权指令和非特权指令,但是它又怎么分辨出此时正在执行的指令到底是一个“应用程序”的指令还是一个“内核程序”的指令呢?为了让CPU能够区分此时正在运行的指令是属于应用程序还是内核程序,CPU会被划分成两种状态,一种叫“内核态”,一种叫“用户态”。

CPU 有两种状态,“内核态”和“用户态

处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权
指令处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

拓展:CPU 中有一个寄存器叫程序状态字寄存器 (PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”别名: 内核态=核心态=管态;用户态=目态

接下来我们要探讨的问题是CPU要怎么实现这两种状态间的切换

(5).内核态 用户态的切换 (变态)

内核态->用户态:执行一条特殊的指令 修改PSW的标志位为:“用户态”,这个动作意味着操作系统主动让出CPU
用户态->内核态: 由"中断"引发,硬件自动变成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。

在这里插入图片描述

假设现在有两种体系结构的系统。第一个系统采用的是大内核的体系结构,由于进程管理,存储管理这些功能都是被划分在内核当中的,所以这些功能的处理都需要运行在内核态,只有应用程序是运行在用户态的。而对于采用微内核结构的操作系统来说,只有和硬件联系最紧密的这些功能被划分在了内核当中,只有这些功能是需要在内核态下才可以执行的,而其他的这些功能模块在用户态下就可以运行。

假设现在一个应用程序想要请求操作系统的服务,并且这个服务的背后需要同时涉及到进程管理、存储管理、设备管理这几个功能。如果采用的是大内核的体系结构的话,那么应用程序向操作系统提出服务的请求,这个时候CPU会从用户态切换为内核态,然后开始运行这一系列的内核程序。应用程序的这个请求只需要两次变态就可以了。

而如果采用的是微内核的体系结构的话,应用程序向操作系统提出服务的请求,接下来操作系统的这几个模块都需要为操作系统服务。而进程管理这个模块在处理应用程序的请求的时候同样也需要得到内核的支持,所以这个模块对内核的访问就涉及到CPU从用户态转到内核态,服务完成之后又会从内核态转回用户态。然后同样地存储管理和设备管理这两个模块在完成相应的工作的时候也需要得到内核的支持,因此每一个模块都需要请求内核的服务,每一次请求内核的服务都会涉及到一个CPU状态转换的过程。整个过程处理需要六次变态。

在这里插入图片描述

(6).操作系统内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。

在这里插入图片描述

操作系统内核在这里插入图片描述

  • 时钟管理: 实现计时功能
  • 中断处理: 负责实现中断机制
  • 原语: (1).是一种特殊的程序。(2).处于操作系统最底层,是最接近硬件的部分。(3).这种程序的运行具有原子性–其运行只能一起合成,不可中断(4).运行事件较短、调用频繁。
    ⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆与硬件管理较紧密的模块⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆
  • 对系统资源进行管理的功能: (1).进程管理 (2).存储器管理(3).设备管理
    ⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆有的操作系统可能不包含这部分⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

(7).操作系统的体系结构 (大内核 微内核)

在这里插入图片描述

大内核
(1).将操作西永的朱永功能模块作为系统内核,运行在核心态
(2).优点: 高性能
(3).缺点: 内核代码庞大,结构混乱,难以掩护
微内核
(1).只把最基本的功能保留在内核
(2).优点: 内核功能少,结构清晰,方便维护
(3).缺点: 需要频繁地在核心态和用户态之间切换,性能低。

eg: 操作系统的体系结构与企业管理问题很相式

内核是企业地管理层,负责一些重要地工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令用户态和核心态的切换相当于员工和管理层之间的工作交接
大内核: 企业初创实体量不大,管理层的人会负责大部分的事情。优点是效率高;缺点是组织结构混乱,难以维护。
微内核: 随着企业体量越来越大,管理层只负责最核心的工作。优点是阻止结构清晰,方便维护;缺点是效率低

(8).本章小结

在这里插入图片描述

1.5_中断和异常

在这里插入图片描述

(1).中断机制的诞生

早期的计算机,各程序只能串行执行,系统资源利用率低。
也就是: 一个个执行,这个执行完毕之后下面的才能继续执行。
为了解决上面的问题:
人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行。

本质: 发生中断就以为着需要操作系统介入(不停变态->用户态和核心态),开展管理工作

(2).中断的概念和作用

1.当中断发生时,CPU立即进入核心态
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
3.对于不同的中断信号,会进行不同的处理。

发生了中断,就意味着需要操作系统接入,开展管理工作。由于操作系统的管理工作(比如: 进程进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转换为核心态中断可以使用CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

用户态->核心态 就是通过中断实现的。并且中断是唯一途径
核心态->用户态 的切换时通过一个特权指令,将程序状态字(PSW)的标志位设置为"用户态"

(3).中断的类型

在这里插入图片描述

内中断的例子

例子1:试图在用户态下执行特权指令

例子2:执行除法指令时发现除数为0

总之若当前执行的指令本身或者指令的一些参数是非法的,则会引发一个中断信号

例子3:有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令陷入指令,该指令会引发一个内部中断信号。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的

注意陷入指令并不是特权指令。因为这个程序是运行在用户态的,而在用户态下可以执行的指令不可能是特权指令

外中断的例子

例子1:时钟中断,由时钟部件发来的中断信号

例子2:I/O中断,由输入/输出设备发来的中断信号

时钟部件每隔一个时间片(如50ms)会给CPU发送一个时钟中断信号。通过时钟中断信号就可以实现多道程序并发运行了。当某应用程序执行了几条指令后,时钟部件发现此时已经过了50ms,它会给CPU发送一个中断信号(注意这个中断信号和当前执行的指令是没有关系的,它来自CPU的外部)。然后根据我们之前学习的知识,CPU检测到该信号后会先暂停此时正在运行的应用程序,然后转而执行一个相应的内核程序来处理这个中断信号。所以接下来CPU会对时钟中断信号进行处理,并且转为内核态。在内核态下CPU开始执行内核程序来处理刚才收到的中断信号,这个内核程序执行的过程当中发现该应用程序已经用了50ms的时间,应该让下一个应用程序上CPU运行。于是接下来这个内核程序会把CPU的使用权给下一个应用程序,接下来又会切换回用户态,然后下一个程序上CPU运行。之后的过程都是类似的,通过这个例子可以看出应用程序是如何在中断机制的支持下一直不断地切换来实现并发运行的,以及中断在现代计算机中到底有多大的作用。

除了时钟发出的中断信号之外,有时候还会有来自I/O设备的中断信号。比如说某个应用程序可能会请求打印机的打印服务,打印机在打印输出完成之后会向CPU发出中断信号用来通知CPU任务完成。接下来CPU会用中断信号相对应的内核程序来对中断信号进行处理。

每一条指令执行结束时,CPU都会例行检查是否有外中断信号
在这里插入图片描述

(4).中断机制的基本原理

不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号以此来找到相应的中断处理程序在内存中的存放位置。的类型去查询“中断向量表

在这里插入图片描述

1.6_系统调用

在这里插入图片描述

(1).什么是系统调用,有何作用?

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口(用户)和程序接口(程序)。其中,程序接口由一组系统调用组成。

在这里插入图片描述

系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

(2).系统调用与库函数的区别

其实我们在写程序的时候可以用汇编语言的方式来直接请求系统调用服务的,但是现在的编程更多地是使用高级语言来编程,所以我们一般会直接使用高级语言的库函数,但是这些高级语言的库函数在底层其实也会用到操作系统提供的系统调用功能来请求操作系统的服务。所以系统调用应该是比高级语言的库函数更为底层的接口

我们的裸机之上是操作系统,操作系统向上层提供的接口是系统调用,使上面的库函数和应用程序能够通过系统调用的方式来请求操作系统的内核的服务。然后在操作系统之上各种各样的高级编程语言会用库函数的方式来封装这些系统调用,然后向更上层的应用程序的程序员来暴露一些更好用的编程接口。

不过也并不是所有的库函数都会使用系统调用

在这里插入图片描述

(3).为什么系统调用是必须的?

通过系统调用来实现并发进程对共享资源的互斥访问

在这里插入图片描述

由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理

(4).什么功能要用到系统调用?

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、/操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

在这里插入图片描述

(5).系统调用的过程

假设一个应用程序想要进行系统调用,它在背后需要做什么事情呢?

现有一个应用程序运行在用户态,然后这个应用程序的各个指令会被CPU依次执行。当它想要发出系统调用的时候,他需要用传参数的指令给CPU的寄存器当中传递一些必要的参数,比如说在某一个寄存器中放入了参数1,这个参数1是指明了此次要进行哪种类型的系统调用,比如说像Linux里的“folk”系统调用。传递参数的指令可能要有多条,主要看我们的系统调用需要传递几个参数。操作系统会根据应用程序提供的这些参数来判断它想要的到底是哪种服务,当这些参数都放入了寄存器之后,应用程序就会执行一条特殊的指令叫陷入指令,该指令会引发一个内中断,CPU在检测到这个内部中断信号之后,它发现这个内部中断信号是由陷入指令引起的,于是这个CPU接下来就会暂停运行这个应用程序,转而去执行处理陷入指令的那个处理程序,这个程序就是系统调用入口程序。显然接下来要执行的程序肯定是属于内核程序,因此它需要在内核态下运行,我们也可以说这个程序也是某一种中断处理程序,只不过它处理的是由陷入指令引发的那个内中断。接下来系统调用入口程序会检查寄存器里的参数,通过第一个参数它会知道此时这个应用程序想要的是这种类型的系统调用服务,于是接下来入口程序就会调用与特定的系统调用类型所对应的处理程序,然后让这个程序上CPU运行。那这个系统调用处理程序在执行的时候就可以根据应用程序传递的其他参数来看一下它所需要的具体是哪些服务。当系统调用被处理完之后CPU又会转回用户态,然后接着执行之前的那个应用程序。

在这里插入图片描述

执行了陷入指令之后就意味着这个应用程序把CPU的控制权主动交还给了操作系统的内核,用这样的方式来请求操作系统的服务,注意它并不是特权指令。

在这里插入图片描述

陷入指令是唯一一个只能再用户态执行,而不可在核心态执行的命令。

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

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

相关文章

腾讯前端二面常考vue面试题(附答案)

虚拟DOM真的比真实DOM性能好吗 首次渲染大量DOM时,由于多了一层虚拟DOM的计算,会比innerHTML插入慢。正如它能保证性能下限,在真实DOM操作的时候进行针对性的优化时,还是更快的。 MVVM的优缺点? 优点: 分离视图(V…

PowerCommand康明斯发电机控制屏维修HMI211

康明斯柴油发电机的监控系统分为普通机组控制屏和智能化机组控制界面。普通操作界面实用于普通的康明斯柴油发电机的控制,康明斯柴油发电机的起动与停止、供电与断电、状态调整等均由手动操作;自动化康明斯柴油发电机控制系统适合于智能化康明斯柴油发电…

JavaWeb 基本概念

JavaWeb Java Web 1、基本概念 1.1、前言 web开发: web,网页的意思 , www.baidu.com静态web html,css提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站;提供给所有人…

ActiveMQ RabbitMQ Kafka RocketMQ

消息中间件的作用 1.正向作用 应用解耦/事件驱动 异步通信 流量削峰 2.反向作用 系统可用性降低 系统复杂性提高 一致性问题 ---------------------------------------------------------------------------------------------------------…

C语言数据结构(3)----无头单向非循环链表

目录 1. 链表的概念及结构 2. 链表的分类 3. 无头单向非循环链表的实现(下面称为单链表) 3.1 SListNode* BuySListNode(SLTDateType x) 的实现 3.2 void SListPrint(SListNode* plist) 的实现 3.3 void SListPushBack(SListNode** pplist, SLTDateType x) 的实现 3.4 voi…

【分布式】分布式场景下的稳定性保障

文章目录1、什么是稳定性保障2、明确稳定性保障目标2.1、明确一级目标2.2、拆解二级目标3、如何进行稳定性保障3.1、全链路梳理3.2、全链路压测3.3、集群扩容3.4、服务限流3.5、提前预案3.6、紧急预案3.7、系统监控4、大促稳定性保障4.1、制定大促计划4.2、大促准备4.3、大促值…

kubeadm方式安装k8s高可用集群(版本1.26x)

K8S官网:https://kubernetes.io/docs/setup/ 高可用Kubernetes集群规划 配置备注系统版本CentOS 7.9Docker版本20.10.xPod网段172.16.0.0/12Service网段10.103.10.0/16 主机IP说明k8s-master01 ~ 03192.168.77.101 ~ 103master节点 * 3k8s-master-lb192.168.77.2…

Tina_Linux配网开发指南

OpenRemoved_Tina_Linux_配网_开发指南 1 概述 1.1 编写目的 介绍Allwinner 平台上基于wifimanager-v2.0 的WiFi 配网方式,包括softap(WiFi ap 模式热点配网),soundwave(声波配网),BLE(蓝牙低功耗配网)。 1.2 适用范围 • allwinner 软件平台tina v5.0 版本及以…

锁相环的组成和原理及应用

一.锁相环的基本组成 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。 锁相环路是一种反馈控制电路,简称锁相环(PLL)。锁相环的特点是:利用外部输入的参考信号控制环路内…

Java查漏补缺(04)IDEA安装设置、JDK相关设置、详细设置、工程与模块管理、代码模板的使用、快捷键的使用、DEBUG断点调试、常用插件

Java查漏补缺(04)IDEA安装设置、JDK相关设置、详细设置、工程与模块管理、代码模板的使用、快捷键的使用、DEBUG断点调试、常用插件本章专题与脉络1. 认识IntelliJ IDEA1.1 JetBrains 公司介绍1.2 IntelliJ IDEA 介绍1.3 IDEA的主要优势:(vs …

Ubuntu下不能切换中文,qt creator无法输入中文,sogo输入法(详细步骤)

目录:1、解决ubuntu 不支持切换中文,并安装sogo输入法步骤;2、解决Qt Creator不支持中文输入:详细步骤:一、解决ubuntu 不支持切换中文,并安装sogo输入法步骤:1、如果在键盘输入法系统中&#x…

Scala面向对象

与java的区别和联系 类的定义: class Person{ var name "scala" def sayHello(){ println("Hello,"name) } def getName name } 注意:如果在定义方法的时候指定了(),那么在调用的时候()可写可不写,如果在定…

【并发编程学习篇】深入理解CountDownLatch

一、CountDownLatch介绍 CountDownLatch(闭锁)是一个同步协助类,允许一个或多个线程等待,直到其他线程完成操作集。CountDownLatch使用给定的计数值(count)初始化。await方法会阻塞直到当前的计数值被coun…

【分布式缓存学习篇】Redis数据结构

一、Redis的数据结构 二、String 数据结构 2.1 字符串常用操作 //存入字符串键值对 SET key value //批量存储字符串键值对 MSET key value [key value ...] //存入一个不存在的字符串键值对 SETNX key value //获取一个字符串键值 GET ke…

[C++]继承

🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录一、继承…

C/C++每日一练(20230227)

目录 1. 按要求排序数组 ★ 2. Z 字形变换 ★★ 3. 下一个排列 ★★ 1. 按要求排序数组 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中,数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小…

新型智慧城市顶层规划及智慧应用综合解决方案

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 业务需求分析系统功能需求分析 …

一文了解虚拟人主播

这两年,相信很多人都能在抖音、快手、微视等平台看到虚拟人主播的视频,形象逼真,表情动作自然,语言流畅,乍一看,就是一位真人!那为什么会有这么多人或者企业选择用虚拟人来做主播呢?…

12万字数字政府县级智慧政务云平台建设方案WORD

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 1.1 总体方案设计 云平台是云计…

评论对软件品牌很重要:有效地生成和管理评论

评论已成为几乎所有产品类别购买过程中的重要组成部分。 客户评论数据告诉我们,92% 的消费者使用在线评论来指导他们的大部分普通购买决策,软件也不例外。B2B 买家在做出购买决定之前会进行大量研究。 为什么评论对软件品牌很重要 B2B 买家特别希望听到已…