<软考>软件设计师-2操作系统(总结)

(一) 进程管理

1 操作系统概述

1-1 操作系统定义:

能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

1-2 操作系统的作用:

  • 1 通过资源管理提高计算机系统的效率
  • 2 改善人机界面向用户提供友好的工作环境。

1-3 操作系统的特征:

  • 1 并发性
  • 2 共享性
  • 3 虚拟性
  • 4 不确定性

1-4 操作系统的功能:

  • (1)进程管理 实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。
  • (2)文件管理 主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。
  • (3)存储管理 存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
  • (4)设备管理 实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收。
  • (5)作业管理 包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

1-5 操作系统的分类:

  • 批处理操作系统:单道批处理和多道批处理(主机与外设可并行)。
  • 分时操作系统:一个计算机系统与多个终端设备连接。将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
  • 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。
  • 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。三种模式:集中模式、客户端/服务器模式、对等模式。。
  • 分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。
  • 微型计算机操作系统:简称微机操作系统,常用的有Windows、Mac OS、Linux。

1-6 嵌入式操作系统主要特点:

  • (1)微型化 从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。
  • (2)可定制 从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
  • (3)实时性 嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。
  • (4)可靠性 系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。
  • (5)易移植性 为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。

嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为:片级初始化→板级初始化→系统初始化。

2 进程组成和状态

进程的组成:进程控制块PCB(唯一标志)程序(描述进程要做什么)数据(存放进程执行时所需数据)

进程基础的状态是三态图

在这里插入图片描述

需要熟练掌握进程三态之间的转换

3 前趋图与进程资源图

3-1前趋图

用来表示哪些任务可以并行执行哪些任务之间有顺序关系,具体如下图:可知,ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序。
在这里插入图片描述

3-2进程资源图

用来表示进程和资源之间的分配和请求关系

在这里插入图片描述

  • 1 P代表进程,R代表资源R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
  • 2 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。
  • 3 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。
  • 4 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态

4 进程同步与互斥

  • 临界资源:各进程间需要以互斥方式对其进行访问的资源。

  • 临界区:指进程中对临界资源实施操作的那一段程序。本质是一段程序代码。

  • 互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。

  • 同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题。

  • 互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。

  • 同步信号量:对共享资源的访问控制,初值一般是共享资源的数量。

  • P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若s<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

  • v操作:释放资源,S=S+1,若S>0,则执行v操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行v操作的进程继续。
    在这里插入图片描述

  • 经典问题:生产者和消费者的问题
    三个信号量:互斥信号量S(仓库独立使用权),同步信号量S1(仓库空闲个数),同步信号量S2(仓库商品个数)。
    在这里插入图片描述

5 进程调度

  • 进程调度方式: 是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给高优先级进程;不可剥夺是指高优先级进程必须等待当前进程自动释放CPU。
  • 在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
  • (1)高级调度。高级调度又称“长调度” “作业调度” 或 “接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。
  • (2)中级调度。中级调度又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。
  • (3)低级调度。低级调度又称“短程调度”或“进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。
  • 调度算法:
  • 先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度。
  • 时间片轮转:分配给每个进程CPU时间片,轮流使用CPu,每个进程时间片大小相同,很公平,用于微观调度。
  • 优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。
  • 多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列1,2,3…n,每个队列分别赋予不同的优先级,分配不同的时间片长度;新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。
    在这里插入图片描述

6 死锁

  • 当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁
  • 死锁产生的四个必要条件:资源互斥每个进程占有资源并等待其他资源系统不能剥夺进程资源进程资源图是一个环路

死锁产生后,解决措施是打破四大条件,有下列方法:

  • 死锁预防: 采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
  • 死锁避免: 一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
  • 死锁检测: 允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
  • 死锁解除: 即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
  • 死锁资源计算: 系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1

7 线程

  • 传统的进程有两个属性:可拥有资源的独立单位;可独立调度和分配的基本单位
  • 引入线程的原因是进程在创建、撤销和切换中,系统必须为之付出较大的时空开销,故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。
  • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源, 例如进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据

(二) 储存管理

1 分区存储管理

所谓分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它,然后再执行, 有三种分区方式:

  • 1 固定分区 : 静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片。
  • 2 可变分区 : 动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片。
  • 3 可重定位分区 : 可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。

系统分配内存的算法有很多,如图所示,根据分配前的内存情况,还需要分配9K空间,对不同算法的结果介绍如下:
在这里插入图片描述

  • 1 首次适应法: 按内存地址顺序从头查找,找到第一个>=9K空间的空闲块,即切割9K空间分配给进程。
  • 2 最佳适应法: 将内存中所有空闲内存块按从小到大排序,找到第一个>=9K空间的空闲块,切割分配,这个将会找到与9K空间大小最相近的空闲块。
  • 3 最差适应法: 和最佳适应法相反,将内存中空闲块空间最大的,切割9K空间分配给进程,这是为了预防系统中产生过多的细小空闲块。
  • 4 循环首次适应法: 按内存地址顺序查找,找到第一个>=9K空间的空闲块,而后若还需分配,则找下一个,不用每次都从头查找,这是与首次适应法不同的地方

2 分页存储管理

逻辑页分为页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址。

  • 优点:利用率高,碎片小,分配及管理简单。
  • 缺点:增加了系统开销,可能产生抖动现象
    在这里插入图片描述
    在这里插入图片描述

页面置换算法:

  • 最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的
  • 先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)
  • 最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多
  • 淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面

快表:

  • 是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快, 并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
  • 快表是将页表存于cache中;慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次cache和一次内存,因此更快。

3 分段存储管理

将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,而下图所示,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。

  • 优点:多道程序共享内存,各段程序修改互不影响。
  • 缺点:内存利用率低,内存碎片浪费大。
    在这里插入图片描述
    在这里插入图片描述

4 段页式存储管理

对进程空间先分段,后分页,具体原理图和优缺点如下:

  • 优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。
  • 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
    在这里插入图片描述
    在这里插入图片描述

(三) 设备管理

1 设备管理概述

  • 设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统。因此,I/O系统由设备、控制器、通道(具有通道的计算机系统)、总线和l/O软件组成。
  • 设备的分类:

按数据组织分类: 块设备、字符设备。
按照设备功能分类: 输入设备、输出设备、存储设备、网络联网设备、供电设备。
资源分配角度分类: 独占设备、共享设备和虚拟设备。
数据传输速率分类: 低速设备、中速设备、高速设备。

  • 设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备与主存之间的数据交换。
  • 设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。

2 l/0软件

  • I/O设备管理软件的所有层次及每一层功能如下图:
  • 实例:当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O请求。用户进程在得到了所需的硬盘文件内容之,后继续运行。
    在这里插入图片描述

3 设备管理技术

  • 一台独占设备,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
  • 引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。
    在这里插入图片描述

(四) 文件管理

1 文件管理概述索引

  • 文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。

  • 信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。

  • 文件管理系统,就是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。文件系统的功能包括按名存取;统一的用户接口;并发访问和控制;安全性控制;优化性能;差错恢复。

  • 文件的类型:

(1) 按文件性质和用途可将文件分为系统文件、库文件和用户文件。
(2) 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
(3) 按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
(4) UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。

  • 文件的逻辑结构可分为两大类:有结构的记录式文件;无结构的流式文件

  • 文件的物理结构是指文件在物理存储设备上的存放方法,包括:

(1)连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上。
(2)链接结构。链接结构也称串联结构,它是将逻辑上连续的文件信息(如记录)存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块
(3)索引结构。将逻辑上连续的文件信息(如记录)存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
(4)多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。

2 文件结构

在这里插入图片描述

  • 系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB* 10=10KB数据;
  • 10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024*4KB=4098KB数据。
  • 二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为102410244KB数据。

3 文件目录

在这里插入图片描述
文件控制块中包含以下三类信息:基本信息类存取控制信息类使用信息类

  • (1)基本信息类。例如文件名、文件的物理地址、文件长度和文件块数等。
  • (2)存取控制信息类。文件的存取权限,像UNIX用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行RWX权限。
  • (3)使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。
  • 文件控制块的有序集合称为文件目录。
  • 相对路径:是从当前路径开始的路径。
  • 绝对路径:是从根目录开始的路径。
  • 全文件名=绝对路径+文件名。
  • 要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。

4 文件存储空间管理

  • 文件的存取方法:
    指读/写文件存储器上的一个物理块的方法。通常有顺序存取和随机存取两种方法。顺序存取方法是指对文件中的信息按顺序依次进行读/写;随机存取方法是指对文件中的信息可以按任意的次序随机地读/写。
  • 文件存储空间的管理:
  • (1)空闲区表。将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,适用于连续文件结构。
    在这里插入图片描述> - (2)位示图。这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。
    在这里插入图片描述
  • (3)空闲块链。每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。
  • (4)成组链接法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。假如某个组的第一个空闲块号等于0,意味着该组是最后一组,无下一组空闲块。

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

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

相关文章

7+WGCNA+机器学习+实验+泛癌分析,多要素干湿结合

今天给同学们分享一篇生信文章“Analysis and Experimental Validation of Rheumatoid Arthritis Innate Immunity Gene CYFIP2 and Pan-Cancer”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为7.3。 结果解读&#xff1a; DEG筛选和数据预处理 数据在…

Helplook VS Google Docs:一对一比较

还记得Google Docs在2006年一炮走红的时候吗&#xff1f;它很大程度地改变了协作方式&#xff0c;也减少了附加文件和频繁保存的麻烦。相比Microsoft Word&#xff0c;很多人更喜欢Google Docs的简单性。 但是时代也在不断地发展。像HelpLook这样的新竞争对手也可以提供先进的…

设计模式总目录

目录 设计模式 1. 创建型模式 1.1 工厂方法模式 1.2 抽象工厂模式 1.3 单例模式 1.4 建造者模式 1.5原型模式 2. 结构型模式 2.1 适配器模式 2.2 装饰器模式 2.3 代理模式 2.4 外观模式 2.5 桥接模式 2.6 组合模式 2.7 享元模式 3. 行为型模式 3.1 策略模式 …

字符集——带你了解UTF-8的前世今生

文章目录 字符集的来历汉字和字母的编码特点Unicode字符集字符集小结编码和解码开发约定 字符集的来历 计算机是美国人发明的&#xff0c;由于计算机能够处理的数据只能是0和1组成的二进制数据&#xff0c;为了让计算机能够处理字符&#xff0c;于是美国人就把他们会用到的每一…

前端面试高频考点—事件循环Event loop

目录 事件循环 执行步骤 概念讲解 主线程 微任务(micro task) 宏任务(macro task) Event Loop经典例题 这段代码的执行结果是什么&#xff1f; 正确答案&#xff1a; 具体流程&#xff1a; 事件循环 主线程从"任务队列"中读取执行事件&#xff0c;这个过程…

通俗讲解分布式锁:场景和使用方法

对于锁大家肯定不会陌生&#xff0c;比如 synchronized 关键字 和 ReentrantLock 可重入锁&#xff0c;一般我们用其在多线程环境中控制对资源的并发访问。但是随着业务的发展&#xff0c;分布式的概念逐渐出现在我们系统中&#xff0c;我们在开发的过程中经常需要进行多个系统…

字符数组和字符串例题

1、相邻字符判相等 题目描述 输入一行字符&#xff08;长度小于等于1000&#xff09;&#xff0c;判断其中是否存在相邻两个字符相同的情形&#xff0c;若有&#xff0c;则输出该相同的字符并结束程序(只需输出第一种相等的字符即可)。否则输出No。 输入要求 输入一行字符&…

File类—递归文件搜索执行脚本文件

文章目录 一、需求分析二、File类2.1 File对象的创建2.2 File判断和获取方法2.3 创建和删除方法2.4 遍历文件夹方法 三、Runtime类—常见api四、递归文件搜索执行脚本文件 一、需求分析 在本篇博客中&#xff0c;我们想通过递归文件的方式&#xff0c;在D:\\判断下搜索QQ.exe这…

麒麟V10安装kerberos客户端

麒麟V10系统安装kerberos客户端 当系统具备yum镜像源的时候需要执行安装命令 yum install krb5-devel krb5-client krb5-libs -y 会提示报错 “未找到匹配的参数:krb5-client” 此时我们需要手动安装krb5-client 安装包链接放到了这里 链接: https://pan.baidu.com/s/1x1YVr6…

SQL Server的安装和首个库的创建

一、熟悉SQL Server的安装环境&#xff1b; 1.安装Microsoft的数据库管理系统SQL Server 2022 先把SQL Server 2022下载好后进行解压后出现以下界面然后点击基本进行安装 然后会出现以下界面&#xff1a; 一步步按照提示往下走即可&#xff0c;把SQL Server 2022安装完成后再…

【1day】Panabit 日志系统openid接口SQL注入漏洞

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、资产测绘 三、资产测绘 四、漏洞复现

Leetcode刷题笔记题解(C++):LCR 021. 删除链表的倒数第 N 个结点

思路&#xff1a;用双指针去遍历链表&#xff0c;删除left的下一个节点&#xff0c;注意的是n大于等于链表长度即删除第一个节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {…

tmux简单使用

它允许你在一个终端窗口中创建多个终端会话&#xff0c;并在它们之间进行切换。以下是tmux的一些主要用途和功能&#xff1a; 多窗口&#xff1a; Tmux允许你在一个终端中创建多个窗口。每个窗口可以包含一个或多个终端会话&#xff0c;你可以轻松地在这些窗口之间切换。面板分…

ifstream读取txt中的中文数据转成QString出现乱码

使用ifstream从txt文本中读取中文数据到string&#xff0c;再将string转成QString输出时出现了乱码。 分析&#xff1a;如果ifstream能成功从txt文本中读出中文数据&#xff0c;那大概率txt用的编码是ANSI编码&#xff08;GBK就是ANSI的一种&#xff09;&#xff0c;那么在转成…

不愧是字节出来的,太厉害了。。。

前段时间公司缺人&#xff0c;也面了许多测试&#xff0c;一开始瞄准的就是中级水准&#xff0c;当然也没指望能来大牛&#xff0c;提供的薪资在15-20k这个范围&#xff0c;来面试的人有很多&#xff0c;但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

Jmeter 接口-加密信息发送(一百九十九)

方式1&#xff1a;使用函数助手 比如MD5加密方式&#xff1a; 如图&#xff0c;需要对${user}进行MD5加密 1、打开函数助手&#xff0c;找到MD5&#xff0c;输入需要加密的值 2、将${__MD5(${user},)}放到请求中 3、查看请求&#xff0c;请求成功 方式2&#xff1a;导入jar包…

Docker实战【镜像部署】

文章目录 &#x1f4a5; 简介&#x1f4a1; 基础-Tomcat镜像部署&#x1f396;️ 企业实战-制作Tomcat项目镜像&#x1f3af; 企业实战-Docker部署SpringBoot项目&#x1f680; 问题复盘&#x1f353; 总结 &#x1f4a5; 简介 由于公司内部机器要做迁移&#xff0c;原系统机器…

javascript中的过滤操作

JS中的过滤操作 /** 查询列表 */ /** 查询列表 */getList() {this.loading true;listStatusExceptionManage(this.queryParams).then((response) > {this.StatusExceptionManageList response.rows;this.StatusExceptionOldManageList response.rows;this.total respon…

深度学习优化器

不断优化 Example:for input, target in dataset:optimizer.zero_grad()output model(input)loss loss_fn(output, target)loss.backward()optimizer.step() import torch import torchvision.datasets from torch import nn from torch.nn import Sequential,Conv2d,MaxPoo…

架构人生,体魄同行:程序员的健康密码解析

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 架构人生&#xff0c;体魄同行&#xff1a;程序员的健康密码解析 前言&#xff1a;健康饮食指南&#xff1a;程序员的亚健康克星1. 保持规律的三餐2. 多样化的食材选择3. 控制…