软考高级《系统架构设计师》知识点(二)
操作系统知识
操作系统概述
- 操作系统定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
- 操作系统有三个重要的作用:
- 管理计算机中运行的程序和分配各种软硬件资源;
- 为用户提供友善的人机界面。
- 为应用程序的开发和运行提供一个高效率的平台。
- 操作系统的4个特征是
并发性、共享性、虚拟性和不确定性。 - 操作系统的功能:
进程管理。实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收。作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
- 操作系统的分类:批处理操作系统、实时操作系统、网络操作系统、分布式操作系统、微型计算机操作系统、嵌入式操作系统。
- 批处理操作系统:单道批处理和多道批处理(主机与外设可并行)。
- 分时操作系统:一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
- 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。为了提高系统的响应时间,对随机发生的外部事件应及时做出响应并对其进行处理。
- 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。功能主要包括高效、可靠的网络通信;对网络中共享资源的有效管理;提供电子邮件、文件传输、共享硬盘和打印机等服务;网络安全管理;提供互操作能力。
三种模式:集中模式、客户端/服务器模式、对等模式。 - 分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。是网络操作系统的更高级形式。
- 微型计算机操作系统:简称微机操作系统,常用的有Windows、MacOS、Linux。
- 嵌入式操作系统:运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。
- 嵌入式操作系统主要特点如下:
微型化。从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。实时性。嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。易移植性。为了提高系统的易移植性,通常采用硬件抽象层(HardwareAbstractionLevel,HAL)和板级支撑包(BoardSupportPackage,BSP)的底层设计技术。
- 嵌入式系统初始化过程:按照自底向上、从硬件到软件的次序依次为:片级初始化→板级初始化→系统初始化。芯片级是微处理器的初始化。板卡级是其他硬件设备初始化。系统级初始化就是软件及操作系统初始化。
- 微内核操作系统:微内核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样,系统就被分为了
用户态和内核态。
进程管理
- 进程的组成:
进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。 - 进程状态三态图:

前趋图:用来表示哪些任务可以并行执行,哪些任务之间有顺序关系。确定两点:任务间的并行、任务间的先后顺序。进程资源图:用来表示进程和资源之间的分配和请求关系。P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源。阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。
- 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
进程资源图的化简方法:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞的,接着把不阻塞的进程的所有边都去掉,形成一个孤立的点;再把系统分配给这个进程的资源回收回来,这样,系统剩余的空闲资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点;最后,所有的资源和进程都变成孤立的点。互斥和同步并非反义词,互斥表示一个资源在同一时间内只能由一个任务单独使用,需要加锁,使用完后解锁才能被其他任务使用。同步表示两个任务可以同时执行,只不过有速度上的差异,需要速度上匹配,不存在资源是否单独或共享的问题。- 信号量操作的基本概念:
临界资源:各个进程间需要互斥方式对其进行共享的资源,即在某一时刻只能被一个进程使用,该进程释放后又可以被其他进程使用。临界区:每个进程中访问临界资源的那段代码。信号量:是一种特殊的变量。
- 信号量操作的两类信号量:
互斥信号量,对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。同步信号量,对共享资源的访问控制,初值是共享资料的个数。
- 信号量操作的P操作和V操作:都是原子操作,用来解释进程间的同步和互斥原理。执行P操作是主动的带有判断性质的-1,执行V操作是被动的因为某操作产生的+1。
- 进程调度方式:是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺和不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给高优先级进程;不可剥夺是指高优先级进程必须等待当前进程自动释放CPU。
- 进程调度在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
- 高级调度:高级调度又称“长调度”“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。
- 中级调度:中级调度又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。
- 低级调度:低级调度又称“短程调度”或“进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。
- 先来先服务FCFS:先到达的进程优先分配CPU。用于
宏观调度。 - 时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间片大小相同,很公平,用于
微观调度。 - 优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。
- 多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列1,2,3.…n,每个队列分别赋予不同的优先级,分配不同的时间片长度;新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。
死锁:当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。- 死锁产生的四个必要条件:
资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源图是一个环路。 - 解决死锁的措施是打破四大条件:
死锁预防、死锁避免、死锁检测、死锁解除。 - 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
- 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
- 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
- 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
- 死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为
n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。 - 传统的
进程有两个属性:可拥有资源的独立单位、可独立调度和分配的基本单位。 - 引入
线程的原因:是进程在创建、撤销和切换中,系统必须为之付出较大的时空开销,故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源,例如进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据。
存储管理
- 存储器的结构:
寄存器—高速缓存Cache—主存—外存。 - 地址重定位:将
逻辑地址转换为实际主存物理地址的过程,分为静态重定位(在程序装入主存时就完成了转换)、动态重定位(边运行边转换)。 - 分区存储管理:就是
整存,将某进程运行所需的内存整体一起分配给它,然后再执行。 - 分区存储管理三种分区方式:
固定分区、可变分区、可重定位分区。 - 固定分区:静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片。
- 可变分区:动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片。
- 可变分区的算法:系统分配内存的算法有很多,如果根据分配前的内存情况,还需要分配9K空间,对不同算法的结果介绍如下:
- 首次适应法:按内存地址顺序从头查找,找到第一个>=9K空间的空闲块,即切割9K空间分配给进程。
- 最佳适应法:将内存中所有空闲内存块按从小到大排序,找到第一个>=9K空间的空闲块,切割分配,这个将会找到与9K空间大小最相近的空闲块。
- 最差适应法:和最佳适应法相反,将内存中空闲块空间最大的,切割9K空间分配给进程,这是为了预防系统中产生过多的细小空闲块。
- 循环首次适应法:按内存地址顺序查找,找到第一个>=9K空间的空闲块,而后若还需分配,则找下一个,不用每次都从头查找,这是与首次适应法不同的地方。
- 可重定位分区:可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。
分页存储管理:如果采用分区存储,都是整存,会出现一个问题,即当进程运行所需的内存大于系统内存时,就无法将整个进程一起调入内存,因此无法运行,若要解决此问题,就要采用段页式存储组织,页式存储是基于可变分区而提出的。- 逻辑页分为
页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址。 - 分页存储管理
优点:利用率高,碎片小,分配及管理简单。 - 分页存储管理
缺点:增加系统开销,可能产生抖动现象。 地址表示和转换:物理地址和逻辑地址的页内偏移地址是一样的,只需要求出页号和物理块号之间的对应关系,首先需要求出页号的位数,得出页号,再去页表里查询其对应的物理块号,使用此物理块号和页内偏移地址组合,就能得到物理地址。- 分页存储管理的地址组成:
页地址+页内偏移地址;(页地址在高位,页内偏移地址在低位)。 - 分页存储管理的
物理地址:物理块号+页内偏移地址。 - 分页存储管理的
逻辑地址:页号+页内偏移地址。 页面置换算法最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。页面置换算法先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)。页面置换算法最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多。- 页面置换算法淘汰原则:优先淘汰
最近未访问的,而后淘汰最近未被修改的页面。 快表:是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。- 快表是将页表存于
Cache中,慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次Cache和一次内存,因此更快。 段式存储管理:将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。- 段式存储管理优点:多道程序共享内存,各段程序修改互不影响。
- 段式存储管理缺点:内存利用率低,内存碎片浪费大。
- 分页和分段存储管理的区别:分页是根据物理空间划分,每页大小相同;分段是根据逻辑空间划分,每段是一个完整的功能,便于共享,但是大小不同。
- 地址表示(段号,段内偏移):其中
段内偏移不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址+段内偏移。 - 段页式存储管理对进程空间先分段,后分页,具体原理图和优缺点如下:
- 优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。
- 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
设备管理
- 设备:是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统。因此,I/O系统由
设备、控制器、通道(具有通道的计算机系统)、总线和I/O软件组成。 - 设备的分类,按数据组织分类:块设备、字符设备
- 设备的分类,按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备等等。
- 设备的分类,资源分配角度分类:独占设备、共享设备和虚拟设备。
- 设备的分类,数据传输速率分类:低速设备、中速设备、高速设备。
- 设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备与主存之间的数据交换。
- 设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。
- I/O设备管理软件的所有层次及每一层功能:
| 层次 | 名称 | 功能精简描述 |
|---|---|---|
| 最高层 | 用户层 I/O 软件 | 提供用户交互接口,格式化 I/O 数据,管理用户级缓冲 |
| 次高层 | 设备独立性软件 | 实现设备无关性,统一命名与保护设备,分配回收设备,管理缓冲,处理错误 |
| 次低层 | 设备驱动程序 | 转换 I/O 请求为物理指令,与设备控制器通信,初始化配置设备,处理中断 |
| 最低层 | 中断处理程序 | 响应设备中断,保存恢复 CPU 现场,识别中断源并处理 |
- 虚设备和SPOOLING技术:一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
- 引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。
文件管理
-
文件(File):是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
-
信息项:构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。
-
文件管理系统:操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。文件系统的功能包括按名存取、统一的用户接口、并发访问和控制、安全性控制、优化性能、差错恢复。
-
文件的类型:
- 按文件性质和用途可将文件分为系统文件、库文件和用户文件。
- 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
- 按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
- UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。
-
文件的逻辑结构可分为两大类:
- 一是有结构的记录式文件,它是由一个以上的记录构成的文件,故又称为记录式文件;
- 二是无结构的流式文件,它是由一串顺序字符流构成的文件。
-
文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法,包括:
- 连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。
- 链接结构。链接结构也称串联结构,它是将逻辑上连续的文件信息(如记录)存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。因此,只要知道文件的第一个物理块号,就可以按链指针查找整个文件。
- 索引结构。在采用索引结构时,将逻辑上连续的文件信息(如记录)存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
- 多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。
-
索引文件结构:假设系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB10=10KB数据;10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存10244KB=4098KB数据。二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为102410244KB数据。
-
文件控制块中包含以下三类信息:基本信息类、存取控制信息类和使用信息类。
-
文件控制块的基本信息类:例如文件名、文件的物理地址、文件长度和文件块数等。
-
文件控制块的存取控制信息类:文件的存取权限,像UNIX用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行RWX权限。
-
文件控制块的使用信息类:文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。
-
文件控制块的有序集合称为文件目录。
相对路径:是从当前路径开始的路径。绝对路径:是从根目录开始的路径。全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。 -
树形结构主要是区分相对路径和绝对路径。
-
文件存储空间管理:文件的存取方法是指读/写文件存储器上的一个物理块的方法。
-
通常有顺序存取和随机存取两种方法。
- 顺序存取方法是指对文件中的信息按顺序依次进行读/写;
- 随机存取方法是指对文件中的信息可以按任意的次序随机地读/写。
-
文件存储空间的管理:
空闲区表。将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,适用于连续文件结构。位示图。这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。空闲块链。每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。每次申请空闲物理块只需根据链表的头指针取出第一个空闲物理块,根据第一个空闲物理块的指针可找到第二个空闲物理块,依此类推。成组链接法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。假如某个组的第一个空闲块号等于0,意味着该组是最后一组,无下一组空闲块。
相关文章:
软考高级《系统架构设计师》知识点(二)
操作系统知识 操作系统概述 操作系统定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。操作系统有三个重要的作用: 管理…...
DeepSeek的魔法:如何让复杂概念变得通俗易懂?
日常生活中,常常会被复杂的概念所困扰。怎么样将这些晦涩难懂的概念变得通俗易懂?当然是利用大模型帮我们解答,不过让大模型解答也需要有好的沟通提示词。 我收集整理了 2 套提示词,大家一起学习一下。 一、用推理模型解释概…...
地弹噪声【信号完整性】
地弹、振铃、串扰、信号反射 地弹,就是地噪声! 低频时,地噪声主要是因为构成地线的导体有“电阻”,电路系统的电流都要流经地线而产生的电势差波动。 高频时,地噪声主要是因为构成地线的导体有“电感”,电路系统的电流快速变化地经过这个“电感”时,“电感”两端激发…...
【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
目录 一、前言 二、DeepSeek简介 2.1 DeepSeek 是什么 2.2 DeepSeek R1特点 2.2.1 DeepSeek-R1创新点 2.3 DeepSeek R1应用场景 2.4 与其他大模型对比 三、阿里云百炼大平台介绍 3.1 阿里云百炼大平台是什么 3.2 阿里云百炼平台主要功能 3.2.1 应用场景 3.3 为什么选…...
如何在 React 中使用 CSS Modules?
在 React 中使用 CSS Modules 是一种模块化 CSS 的方式,可以避免类名冲突,并为每个组件提供独立的样式。以下是如何在 React 项目中使用 CSS Modules 的步骤: 1. 创建 React 应用 如果你还没有创建一个 React 应用,可以使用 Create React App: npx create-react-app my…...
技术革新让生活更便捷
量子通信是一种利用量子力学原理进行信息传递的技术。它的基本原理是量子纠缠和量子密钥分发。量子纠缠指两个粒子即使相隔很远,一个粒子的状态改变会立刻引起另一个粒子状态的相应变化。量子密钥分发则是通过量子态传输实现加密密钥的安全交换。 在信息安全领域&a…...
但书条款与格式条款
但书条款与格式条款 一、定义 但书条款: 但书条款是指在法律条文中,对一般规定作出例外或补充说明的条款。通常以“但”字开头,表示在特定情况下不适用一般规定。例如,《民法典》第465条第二款规定:“依法成立的合同…...
相似性图相关性重构网络用于无监督跨模态哈希
《Similarity Graph-correlation Reconstruction Network for unsupervised cross-modal hashing》 摘要1. 引言2. 相关工作2.1. 监督跨模态哈希方法2.2. 无监督跨模态哈希方法 3. 方法论3.1 问题定义3.2 特征提取3.3 模态内关系图构建3.4. 局部关系图重置3.5. 跨模态关系图构建…...
问卷数据分析|SPSS实操之单因素方差分析
适用条件: 检验分类变量和定量变量之间的差异 分类变量数量要大于等于三 具体操作: 1.选择分析--比较平均值--单因素ANOVA检验 2. 下方填分类变量,上方为各个量表数据Z1-Y2 3. 点击选项,选择描述和方差齐性检验 4.此处为结果数…...
并发编程---多线程不安全示例以及解决,多线程创建方式
文章目录 并发并行多线程为什么需要多线程线程不安全示例并发出现问题的根源: 并发三要素可见性: CPU 缓存引起原子性:分时复用引起有序性: 重排序引起 线程不安全示例的解决方法使用AtomicLong类使用synchronized 关键字 改进代码避免不必要的延迟join()方法为什么…...
多模态模型详解
多模态模型是什么 多模态模型是一种能够处理和理解多种数据类型(如文本、图像、音频、视频等)的机器学习模型,通过融合不同模态的信息来提升任务的性能。其核心在于利用不同模态之间的互补性,增强模型的鲁棒性和准确性。 如何融合…...
从零到一:开发并上线一款极简记账本小程序的完整流程
从零到一:开发并上线一款极简记账本小程序的完整流程 目录 前言需求分析与功能设计 2.1 目标用户分析2.2 核心功能设计2.3 技术栈选择 开发环境搭建 3.1 微信开发者工具安装与配置3.2 项目初始化3.3 版本控制与协作工具 前端开发 4.1 页面结构与布局4.2 组件化开发…...
更加通用的Hexo多端部署原理及实现,适用于各种系统之间
本文推荐在作者的个人博客网站阅读:shenying.online 一、故事背景 故事发生在大学上学期间(而不是寒假)。上学期间,宿舍条件极其恶劣,半夜断电、空间狭小。我们大学垃圾条件使用游戏本的种种弊端被无限放大࿱…...
5g基站测试要求和关键点
5G基站的测试要求涉及多个方面,以确保其性能、覆盖能力、稳定性和合规性。以下是5G基站测试的主要要求和关键点: 一、基础性能测试 射频(RF)性能测试 发射机性能:验证基站的发射功率、频率误差、调制质量(E…...
算法——搜索算法:原理、类型与实战应用
搜索算法:开启高效信息检索的钥匙 在信息爆炸的时代,搜索算法无疑是计算机科学领域中熠熠生辉的存在,它就像一把神奇的钥匙,为我们打开了高效信息检索的大门。无论是在日常生活中,还是在专业的工作场景里,…...
PlantUML 总结
PlantUML 总结 1. 概述 PlantUML 是一个开源工具,允许用户通过简单的文本描述来生成各种UML图表。它支持多种图表类型,包括但不限于序列图、用例图、类图、活动图等。 2. 基本概念 2.1 开始和结束标记 startuml 和 enduml:用于标记Plant…...
C++ 相对的字符串,判断却不相对
一、场景 在做项目的时候,有这样一个场景,根据字符串名称,给对应的变量赋值。传递的字符串跟对比的字符串是一样的,判断的时候却不相等,导致变量未正确附上值。 二、解决 经过查找,发现是字符串编码的问题…...
【嵌入式Linux应用开发基础】open函数与close函数
目录 一、open函数 1.1. 函数原型 1.2 参数说明 1.3 返回值 1.4. 示例代码 二、close函数 2.1. 函数原型 2.2. 示例代码 三、关键注意事项 3.1. 资源管理与泄漏防范 3.2. 错误处理的严谨性 3.3. 标志(flags)与权限(modeÿ…...
在实体机和wsl2中安装docker、使用GPU
正常使用docker和gpu,直接命令行安装dcoker和,nvidia-container-toolkit。区别在于,后者在于安装驱动已经cuda加速时存在系统上的差异。 1、安装gpu驱动 在实体机中,安装cuda加速包,我们直接安装 driver 和 cuda 即可…...
Unity3D实现显示模型线框(shader)
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示👉二、第一种方式👉二、第二种方式👉壁纸分享👉总结👉前言 在 Unity 中显示物体线框主要基于图形渲染管线和特定的渲染模式。 要显示物体的线框,通常有两种常见的方法:一种是利用内置的渲染…...
解释和对比“application/octet-stream“与“application/x-protobuf“
介绍 在现代 Web 和分布式系统的开发中,数据的传输和交换格式扮演着关键角色。为了确保数据在不同系统之间的传输过程中保持一致性,MIME 类型(Multipurpose Internet Mail Extensions)被广泛应用于描述数据的格式和内容类型。在 …...
VAD端到端系列梳理以及阅读
0. 简介 最近VAD v2论文出来了,又掀起了一波该系列模型的热点。我们先看一下蒋博的文章,然后再来看一下《VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning》这篇文章,代码目前还没开源,可以期待一波…...
MySQL中类似PostgreSQL中的string_agg函数--GROUP_CONCAT函数的使用
文章目录 结论:MySQL没有string_agg,但有GROUP_CONCATGROUP_CONCAT函数的基本用法示例注意事项 系统变量 group_concat_max_len 如何查看和设置查看当前的group_concat_max_len值设置group_concat_max_len值 相关源码相关链接 结论:MySQL没有…...
在vmd中如何渲染透明水分子
1.设置背景为白色 依次点击Graphics>>Colors... 2. 改变渲染模式 依次点击Display>>rendermode>>GLSL 3. 渲染水分子 选中水分子,显色方式改为ColorID, 编号10的颜色; 选择材质为GlassBubble; 绘图方式为QuickSurf. 若水盒子显示效…...
每日十题八股-补充材料-2025年2月12日
1.从输入URL到页面展示发生了什么? 每日十题八股-2025年1月6日-8(整体的回答) 解析URL(判断URL合不合法,不合法直接跳转搜索引擎进行搜索)。判断浏览器中是否有缓存,有缓存则直接返回。获得IP…...
springboot+mybatis进行普通事务操作transaction
文章目录 背景前置环境准备关于 configuration 代码关于 transaction 使用其他 背景 你使用 springboot 和 mybatis/mybatis plus 来进行 web 开发,但是你发现你需要使用到事务操作 前置环境准备 首先你得在 application.yml 中配置好 mysql 数据源,这…...
DeepSeek-R1技术革命:用强化学习重塑大语言模型的推理能力
引言:低成本高性能的AI新范式 在2025年1月,中国AI公司DeepSeek发布了两个标志性模型——DeepSeek-R1-Zero与DeepSeek-R1,以仅600万美元的训练成本实现了与OpenAI O1系列(开发成本约5亿美元)相当的推理性能,…...
MybatisPlus常用增删改查
记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL…...
常用电路(过压保护、电流/电压采集)
过压保护电路 输入电压使用电源(36V)或者typec(20V),需要过压保护电路处理输入再连接到CH224K,保证输入不高于最大获取电压20V MOS管导通条件为栅源极有压差,一般为5-10V 三极管导通条件为基极…...
干部监督系统“三色”预警的构建与应用
在新时代背景下,强化干部监督、提升管理水平已成为推动国家治理体系和治理能力现代化的关键一环。干部监督系统“三色”预警机制作为一种创新的管理工具,通过智能化、可视化的手段,实现了对干部行为的高效管理。本文将详细探讨干部监督系统“…...
