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

操作系统期末复习 | 批处理程序 | PV实现同步互斥 | 调度算法 | 页面置换算法 | 磁盘调度算法

操作系统引论

批处理程序

单道批处理:引入脱机输入/输出技术,并由监督程序负责控制作业的输入、输出。主要优点是缓解了一定程度的人机速度矛盾,资源利用率有所提升。主要缺点是内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待1/0完成,资源利用率依然很低。

多道批处理:主要优点是多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。主要缺点是用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg:无法调试程序/无法在程序运行过程中输入一些参数)。

分时系统

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

实时系统

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

进程同步与互斥

进程的概念

进程是指计算机中已运行的程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

  1. 动态性:进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
  2. 并发性:指多个进程实体,同存于内存中,能在一段时间内同时运行,并发性是进程的重要特征,同时也是操作系统的重要特征。引入进程的目的就是为了使程序能与其他进程的程序并发执行,以提高资源利用率。
  3. 独立性:指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。
  4. 异步性:由于进程的相互制约,使进程具有执行的间断性,即进程按各自独立的、 不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此,在操作系统中必须配置相应的进程同步机制。
  5. 结构性:每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制段三部分组成的。

进程与程序的区别

  1. 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的。
  2. 程序是静态的观念,进程是动态的观念。
  3. 进程具有并发性,而程序没有。
  4. 进程是竞争计算机资源的基本单位,程序不是。
  5. 进程和程序不是一一对应的。
  6. 一个程序可对应多个进程即多个进程可执行同一程序。
  7. 一个进程可以执行一个或几个程序。

进程的基本状态

进程在其生命周期内,由于系统中各进程之间的相互制约关系及系统的运行环境的变化,使得进程的状态也在不断地发生变化(一个进程会经历若干种不同状态)。通常进程有以下五种状态,前三种是进程的基本状态。

  1. 运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。

  2. 就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。

  3. 阻塞状态:又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。

  4. 创建状态:进程正在被创建,尚未转到就绪状态。创建进程通常需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后由系统为该进程分 配运行时所必需的资源;最后把该进程转入到就绪状态。

  5. 结束状态:进程正从系统中消失,这可能是进程正常结束或其他原因中断退出运行。当进程需要结束运行时,系统首先必须置该进程为结束状态,然后再进一步处理资源释放和回收等工作。

image-20240625191052383

**作业2:**请简述进程发生状态变迁1、3、4、6、7的原因;系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。下述变迁是否为因果变迁:3-2,4-5,7-2,3-6,请说明原因。

微信图片_20240625192422

进程同步与互斥

进程同步是指在多个进程或线程之间协调彼此的执行顺序,以避免出现竞态条件、死锁和其他并发问题。当多个进程或线程共享同一资源时,如果它们同时读取或写入该资源,可能会引发数据不一致的问题。为了解决这些问题,需要使用同步机制来协调它们的访问。

进程互斥指的是当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。

临界资源

我们把一个时间段内只允许一个进程使用的资源称为临界资源。许多物理设备(比如摄像头、打印机)都属于临界资源。此外还有许多变量、数据、内存缓冲区等都属于临界资源临界区指的是控制临界资源的代码。为实现对临界资源的互斥访问,必须遵循以下四个规则:

  1. 空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。
  2. 忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待。
  3. 有限等待:对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)。
  4. 让权等待:当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

P、V操作控制进程同步互斥

**作业3-1:**3 个进程 P1、P2、P3 互斥地使用一个包含 N(N > 0)个单元的缓冲区。P1 每次用 produce() 生成一个正整数,并用 put() 将其送入缓冲区的某一空单元中 ;P2每次用 getodd() 从该缓冲区中取出一个奇数,并用 countodd() 统计奇数的个数 ;P3 每次用geteven() 从该缓冲区中取出一个偶数,并用 counteven() 统计偶数的个数。请用信号量机制实现这 3 个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。

b43ca26e87b66f768b9bd4fae9f0806

如下图所示,get、copy和put三个进程共用两个缓冲区s和t (其大小每次存放一个记录) ,get 进程负责不断地把输入记录输入缓冲区s 中,copy 进程负责从缓冲区s 中取出记录复制到缓冲区t 中,而put 进程负责从缓冲区t 中取出记录打印。试用PV 操作实现这三个进程之间的同步,并写出程序描述。

image-20240625193700750
8a28918d4d5f52334ca3787c8132ec9

进程同步

死锁

在两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进,此时每个进程都占用了一定的资源但又都不能向前推进,称这一组进程产生了死锁

产生死锁的两个原因:

  1. 系统资源不足。
  2. 进程推进顺序非法。

产生死锁的四个必要条件:

  1. 互斥条件:涉及的资源是非共享的。

  2. 不剥夺条件:进程所获得的资源在未使用完毕之前不能被其它进程强行夺走。

  3. 部分分配:进程每次申请它所需要的一部分资源,在等待新资源的同时继续占用已分配到的资源。

  4. 环路条件:存在着一种进程的循环链,链中的每一个进程已获得的资源同时被链中的下一个进程请求。

解决死锁的四种策略:

  1. 预防:通过设置某些限制条件,以破坏产生死锁的四个条件中的一个或者几个,来防止发生死锁。
  2. 避免:系统在分配资源时根据资源的使用情况提前作出预测,从而避免死锁的发生。
  3. 检测:允许系统在运行的过程中产生死锁,但是,系统中有相应的管理模块可以及时检测出已经产生的死锁,并且精确地确定与死锁有关的进程和资源,然后采取适当措施,清除系统中已经产生的死锁。
  4. 解除:与检测死锁相配套的一种措施,用于将进程从死锁状态下解脱出来。

选择进程调度算法的准则:尽快响应交互式用户的请求、尽量提高处理机的利用率、 尽可能提高系统的吞吐量。如果所有进程同时到达,短进程优先算法使进程的平均周转时间最短。

银行家算法

设系统中有5个进程P1、P2、P3、P4、P5,有3种类型的资源A、B、C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如下表所示。

image-20240625195123412
  1. 计算每个进程还可能需要的资源,并填入表的“仍然需要资源数(Need)”的栏目。
  2. 0时刻系统是否处于安全状态?为什么?
  3. 如果T0时刻进程P2又有新的资源请求(0,3,4),是否实施资源分配?为什么?
  4. 如果T0时刻,若进程P4又有新的资源请求(2,0,1),是否实施资源分配?为什么?
  5. 在4的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?为什么?
d015a6b92fd02ec8213aae4d17dd04d

进程调度常用算法

在这里插入图片描述

在一个系统中,有5个进程进入系统,它们的提交时间、执行时间如下:

image-20240625202416734

若系统分别采用先来先服务(FCFS)调度算法、短作业优先(SJF)和最高响应比(HRRN)调度算法进行上述进程调度,请计算几种算法的周转时间和带权周转时间并填写下表。

image-20240625202532773
7151f381d2957edfb11e941e0af130b e57d7400e58d3e4c928d6676c44bf96

进程A、B、C、D先后在1、2、3、4时刻到达系统,需要运行的时间分别为6ms、5ms、3ms、4ms。如果时间片分别为2ms和5ms,计算各个进程的周转时间和带权周转时间并填写下表。

2eb3a4c3ab5a9844c3fb380e20af24c

image-20240625211939182

存储器管理

地址

  1. 逻辑地址:用户程序的目标模块都以0为基地址顺序编址的,这种地址称为逻辑地址,也称为相对地址。

  2. 物理地址:内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为物理地址,也称为绝对地址。

  3. 地址重定位:程序和数据装入内存时,需对目标程序中的地址进行修改。这种把逻辑地址转变为内存物理地址的过程称作重定位。

分区存储管理

在某个系统,存储管理方案采用动态分区方式。在某一时刻,主存中有两个空白区,分别为120kb和78kb。现有3个被调度执行的作业J1、J2和J3,对内存需求分别为50KB、60KB、70KB。若用首次适应算法最佳适应算法来处理这个作业序列,试问哪一种算法可以满足三个作业的分配需求?请说明分配过程。

f57388efb54104fe52258ad2895a142

某页式存储管理系统,内存的大小为256KB,被分为128块,块号为0、1、2、……、127。设某进程有4页,其页号为0、1、2、3,被分别装入内存的4、5、18,9号块。该进程的大小是多少字节?请计算该进程每一页在内存的起始地址并填入下表。计算逻辑地址2176和6300对应的物理地址是多少?

页号块号内存起始地址
04
15
218
39
cba690fd7f5b8b6145c75409f6cb035

分页存储管理

请求页式存储管理基本思想:将程序的逻辑地址空间划分为一系列的固定大小的页面,每个页面通常包含多个字节,比如4KB或8KB。程序运行时,只加载当前需要执行的部分(即页面)到物理内存中,其余部分暂存在磁盘上。当程序试图访问某个地址时,系统首先检查这个地址是否在当前已加载的页面内。如果在,就直接执行;如果不在(即发生了“缺页”),系统会从磁盘上读取对应的页面并将其调入内存,然后再继续执行。这种管理方式允许程序动态地使用内存,并通过页面替换算法(如LRU、FIFO或最近最不经常使用等)来优化内存使用和提高效率。

内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免。

现在普遍采用的段页式内存分配方式就是将进程的内存区域分为不同的段,然后将每一段由多个固定大小的页组成。通过页表机制,使段内的页可以不必连续处于同一内存区域,从而减少了外部碎片,然而同一页内仍然可能存在少量的内部碎片,只是一页的内存空间本就较小,从而使可能存在的内部碎片也较少。

页面置换算法

有一个虚拟存储系统, 每个进程在内存分配3页数据区, 页面大小为1KB, 刚开始时数据区为空。假设该进程的虚地址访问流为:5200、1000、1300、200、2250、1022、1200、4350、600、3050、6010、2010、2300、4020

(1)请计算出该进程的页面访问序列。

(2)若系统采用先进先出(FIFO)淘汰算法置换页面,请分析并计算发生页面置换和缺页中断的次数。

(3)若系统采用最近最久未使用(LRU)淘汰算法置换页面,请分析并计算发生页面置换和缺页中断的次数。

daa2401a09fa21c9a6e17e2bdd802f7 a41a6767feba8c8eb5167a4b4cf1301

抖动现象

抖动现象是指如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将会很频繁地产生缺页中断 ,这种频率非常高的页面置换现象称为抖动。

也可以说:页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行时间还多,此时系统效率急剧下降,导致系统崩溃。这种现象称为颠簸或抖动。

输入输出系统

设备独立性

设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。引入设备独立性后可以调高设备的利用率和分配时的灵活性;提高系统的可适应性和可扩展性;可以方便用户操作,易于实现IO重定向。

IO控制方式

程序直接控制方式

  1. CPU向控制器发出读指令。于是设备启动,并且状态寄存器设为1(未就绪)。
  2. 轮询检查控制器的状态(其实就是在不断地执行程序的循环,若状态位一直是1,说明设备还没准备好要输入的数据,于是CPU会不断地轮询)。
  3. 输入设备准备好数据后将数据传给控制器,并报告自身状态。
  4. 控制器将输入的数据放到数据寄存器中,并将状态改为0(己就绪)。
  5. CPU发现设备已就绪,即可将数据寄存器中的内容读入CPU的寄存器中,再把CPU寄存器中的内容放入内存。
  6. 若还要继续读入数据,则CPU继续发出读指令。

优点:实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可(因此才称为“程序直接控制方式”)。

缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状态,CPU利用率低。

中断驱动方式

  1. 引入中断机制。
  2. 由于I/O设备速度很慢,因此在CPU发出读/写命令后,可将等待l/O的进程阻塞,先切换到别的进程执行。
  3. 当I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。
  4. 处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存。
  5. 接着,CPU恢复等待l/O的进程(或其他进程)的运行环境,然后继续执行。

优点:与“程序直接控制方式”相比,在“中断驱动方式”中,I/O控制器会通过中断信号主动报告I/O已完成,CPU不再需要不停地轮询。CPU和I/O设备可并行工作,CPU利用率得到明显提升。

缺点:每个字在I/O设备与内存之间的传输,都需要经过CPU。而频繁的中断处理会消耗较多的CPU时间。

DMA控制方式

  1. 数据的传送单位是“块”。不再是一个字、一个字的传送。
  2. 数据的流向是从设备直接放入内存,或者从内存直接到设备。
  3. 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。

优点:数据传输以“块”为单位,CPU介入频率进一步降低。数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加。CPU和I/O设备的并行性得到提升。

缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块。
如果要读/写多个离散存储的数据块,或者要将数据分别写到不同的内存区域时,CPU要分别发出多条I/O指令,进行多次中断处理才能完成。

通道控制方式

  1. CPU向通道发出I/O指令。指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备。之后CPU就切换到其他进程执行了。
  2. 通道执行内存中的通道程序(其中指明了要读入/写出多少数据,读/写的数据应放在内存的什么位置等信息)。
  3. 通道执行完规定的任务后,向CPU发出中断信号,之后CPU对中断进行处理。

优点:CPU、通道、I/O设备可并行工作,资源利用率很高。

缺点:实现复杂,需要专门的通道硬件支持。

Spolling技术

缓冲技术的作用:提高CPU与设备之间的并行程度,以空间代价换取时间代价

共享打印机为例:

  1. 在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中:
  2. 为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上。当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务。

设备控制器

接收和识别CPU发出的命令;向CPU报告设备的状态;数据交换;地址交换。

磁盘调度算法

磁盘请求的磁道号次序为:120,69,78,2,5,29,65,38,106,88寻道时每个磁道移动需要0.1ms,磁臂启动时间为2ms。试计算按以下算法调度时的平均寻道时间:先来先服务(FCFS);最短寻道时间优先(SSTF);扫描算法(SCAN)。

4f241571d8661e3f6b91a095d677599

相关文章:

操作系统期末复习 | 批处理程序 | PV实现同步互斥 | 调度算法 | 页面置换算法 | 磁盘调度算法

操作系统引论 批处理程序 单道批处理:引入脱机输入/输出技术,并由监督程序负责控制作业的输入、输出。主要优点是缓解了一定程度的人机速度矛盾,资源利用率有所提升。主要缺点是内存中仅能有一道程序运行,只有该程序运行结束之后…...

字符串的六种遍历方式

在 Java 中,有多种遍历字符串的方法。以下是几种常见的遍历字符串的方法,并附有示例代码 1. 使用 for 循环 这是最常见和基础的遍历方法,通过索引访问每个字符。 public class StringTraversal {public static void main(String[] args) {S…...

在码云(Gitee)上建立分支(Branch)的步骤如下:

步骤一:登录码云 首先,打开码云的官方网站(gitee.com),输入用户名和密码登录你的账号。 步骤二:创建仓库 登录后,在页面右上方的搜索框中输入仓库名称,并点击“创建”按钮创建新的仓…...

JVM专题四:JVM的类加载机制

Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分,确保Java类可以被JVM(Java虚拟机)正确地加载和执行。类加载机制主要分为以下几个阶段: 加载(Loading):这个阶段&#x…...

Python爬取中国天气网天气数据.

一、主题式网络爬虫设计方案 1.主题式网络爬虫名称 名称:Python爬取中国天气网天气数据 2.主题式网络爬虫爬取的内容与数据特征分析 本次爬虫主要爬取中国天气网天气数据 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) reques…...

EXCEL快速填充空白内容

** EXCEL快速填充空白内容 ** 1.全选所有需要填充的内容,按住电脑的F5或者CTRLG点击定位 2.可以看到空白处被自动选定,之后按电脑和⬆,最后CTRLenter 可以看到空白处已经被填充。...

CBSD创建和管理bhyve容器Ubuntu@FreeBSD

bhyve介绍:bhyve:FreeBSD下的原生虚拟机管理器_freebsd 虚拟化平台bhyve-CSDN博客 两个bhyve的管理软件:使用bvm管理bhyve虚拟机管理系统FreeBSD-CSDN博客 vm-bhyve:bhyve虚拟机的管理系统FreeBSD-CSDN博客 现在,我…...

STM32开发实战:SPI接口在W25Q64 Flash存储器中的应用

摘要 本文将深入探讨STM32微控制器如何利用SPI接口与W25Q64 Flash存储器进行通信。W25Q64是一款常用的SPI串行Flash存储器,具有8Mbit的存储容量。本教程将指导读者完成硬件连接、SPI配置、读写操作,并提供实际的代码实现。 1. SPI接口概述 SPI是一种串…...

python一些进阶用法:hook 钩子函数以及Registry机制

写在前面 一句话讲,register机制 和 hook 都是函数/类 调用和传参机制的一种灵活运用,将函数作为传参对象,进行回调和封装,通常扩展了或修改了原始函数的行为;这些高级用法都是编程经验中沉淀下来的常用范式&#xff0…...

工作实践:11种API性能优化方法

一、索引优化 接口性能优化时,大家第一个想到的通常是:优化索引。 确实,优化索引的成本是最小的。 你可以通过查看线上日志或监控报告,发现某个接口使用的某条SQL语句耗时较长。 此时,你可能会有以下疑问&#xff…...

正版软件 | WIFbox:智能化文件管理工具,让效率与隐私并行

在数字化办公日益普及的今天,文件管理成为了提升工作效率的关键。WIFbox 一款智能文件管理工具,利用强大的人工智能技术,帮助您快速对文件进行分类,完成复杂的智能文件分类任务。 智能分类,效率倍增 WIFbox 通过精细化…...

Postman接口工具实战

为了更好地展示Postman接口测试的实战过程,我将以一个简单的实战示例来说明如何使用Postman完成一个API的测试。假设我们要测试一个假想的天气查询API,该API允许用户通过城市名查询天气情况。我们将执行以下步骤: 1. 准备工作 确保已经安装…...

江协科技51单片机学习- p17 定时器

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…...

【D3.js in Action 3 精译】前言

早在 2017 年,我还是一名渴望迈出职业生涯关键一步的前端开发者。虽然我很热衷于网站开发,但总感觉缺了点什么。我一直希望自己的工程专业背景和对教学的热爱能与新的编程技能相结合。就在这时,搭档建议我学学数据可视化。出于某种原因&#…...

Java SE入门及基础(58) 并发 进程与线程概念

目录 并发 进程和线程 1. 进程和线程 2. 进程 3.线程 总结 并发 并发(Concurrency) Computer users take it for granted that their systems can do more than one thing at a time. They assume that they can continue to work in a word processor, while other app…...

放松一下,简简单单了

哈哈哈哈哈...

【智能制造-5】数采和电机

既然可以采集PLC的数据,为什么要采集电机的数据? 采集PLC(可编程逻辑控制器)的数据和采集电机的数据是两个不同的概念和目的。 PLC是用于控制和监控工业自动化过程的设备,它可以接收传感器的输入信号并根据预设的逻辑…...

【软考论文】论信息系统的安全性与保密性设计

目录 一、题目二、论文2.1 摘要2.2 正文三、扩展3.1 信息安全包括5个基本要素3.2 国产秘钥算法3.3 等保(信息安全等级保护)3.4 其他一、题目 在企业信息化推进的过程中,需要建设许多信息系统,这些系统能够实现高效率、低成本的运行,为企业提升竞争力。但在设计和实现这些…...

【图文教程】电脑查看显卡GPU温度方法:小白也能秒懂!

在电脑操作中,显卡是电脑的重要组件之一,其温度控制对于保持系统稳定运行是特别重要的。但是,许多新手用户不知道要怎么操作才能查看电脑显卡CPU的温度?接下来小编给大家介绍三种简单有效的查看显卡温度方法,操作简单&…...

Qt的智能终端项目文档完整版

由于上一篇文章已经把用户端的页面都显示了,这里就不在赘述,就将那个运行在虚拟机上的截图展示下来了,其实这个也就是最后的效果了。目前就是这个,感觉当练手的也还行...

SQL面试题练习 —— 查询最近一笔有效订单

目录 1 题目2 建表语句3 题解 题目来源:字节跳动。 1 题目 现有订单表t_order,包含订单ID,订单时间,下单用户,当前订单是否有效,请查询出每个用户每笔订单的上一笔有效订单 ----------------------------------------…...

分享HTML显示2D/3D粒子时钟

效果截图 实现代码 线上体验&#xff1a;three.jscannon.js Web 3D <!DOCTYPE html> <head> <title>three.jscannon.js Web 3D</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,ini…...

Java——IDEA使用

一、IDEA介绍 IntelliJ IDEA 是 JetBrains 公司开发的一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于 Java 编程语言&#xff0c;但也支持多种其他语言和框架。由于其强大的功能和灵活性&#xff0c;IntelliJ IDEA 被广泛应用于软件开发领域&…...

高性能STL库 EASTL 、高性能JSON库

GitHub - electronicarts/EASTL: EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance. 兄弟们&#xff0c;对STL要求性能高的可以试试这个EASTL库&#xff01;&#xff01…...

多通道采集器采样接口设计[进行中...]

1.技术问题 这是一个非常小的设计&#xff0c;完全不值得把它展示出来。但是因为这个接口设计关系到一些细微的配置和技术限制&#xff0c;仍然有一些细节需要处理&#xff0c;并且很容易出错&#xff0c;我们先把技术问题罗列一下&#xff1a; 多个传感器对应的多个逻辑通道…...

rapidjson使用中crash问题分析

问题 在使用rapidjson时&#xff0c;使用Document的Parse方法解析json字符串&#xff0c;程序crash。 分析 可以参考https://github.com/Tencent/rapidjson/issues/1269&#xff0c;由于rapidjson的内存分配器默认认为内存分配成功&#xff0c;没有对分配后做判空判断&#…...

TCP协议中的三次握手和四次挥手机制

TCP协议中的三次握手和四次挥手机制 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的通信协议&#xff0c;它的三次握手和四次挥手机制是建立和断开连接的关键步骤。 三次握手&#xff1a; 第一次…...

Linux双网卡默认路由的metric设置不正确,导致SSH连接失败问题定位

测试环境 VMware虚拟机 RockyLinux 9 x86_64 双网卡&#xff1a;eth0(访问外网): 10.206.216.92/24; eth1(访问内网) 192.168.1.4/24 问题描述 虚拟机重启后&#xff0c;SSH连接失败&#xff0c;提示"Connection time out"&#xff0c;重启之前SSH连接还是正常的…...

Batch入门学习:从零开始掌握批处理脚本

目录 1. Batch脚本简介 1.1 什么是Batch脚本&#xff1f; 1.2 Batch脚本的历史 1.3 Batch脚本的应用场景 2. Batch脚本基本语法 2.1 注释 2.2 变量 2.3 常用命令 2.3.1 ECHO 2.3.2 PAUSE 2.3.3 CLS 2.3.4 GOTO 2.3.5 IF 2.3.6 FOR 2.4 参数传递 2.5 输入输出重…...

diffusion model(十八):diffusion model中negative prompt的工作机制

info个人博客主页http://myhz0606.com/article/ncsn 前置阅读&#xff1a; DDPM&#xff1a; http://myhz0606.com/article/ddpm classifier-guided&#xff1a;http://myhz0606.com/article/guided classifier-free guided&#xff1a;http://myhz0606.com/article/classi…...

制作器/抖音优化排名

ID&#xff1a;fuchen1994 姓名&#xff1a;江军 作业要求&#xff1a; 理解Linux系统中进程调度的时机&#xff0c;可以在内核代码中搜索schedule()函数&#xff0c;看都是哪里调用了schedule()&#xff0c;判断我们课程内容中的总结是否准确&#xff1b; 使用gdb跟踪分析一…...

宁波企业做网站哪家好/英文网站seo

问题现象&#xff1a; 请一段开发个项目 程序调试全部通过但测试时出现个问题 “out of memory” 在长时间运行时&#xff01;后来终于解决 &#xff1a;很简单其实就是object.create时对象没有释放。 代码如下&#xff1a; function SplitString(const Source,ch:string):TStr…...

为什么有的公司做很多个网站/深圳网络推广公司排名

1、简单介绍该错误发生的背景&#xff1a; 1&#xff09; 数据库版本&#xff1a;MySQL5.7.19 2&#xff09; 对一个大表修改字段类型DDL&#xff08;将主键id int变为bigint&#xff09;&#xff0c;为了不影响主库业务&#xff0c;先在从库上执行DDL操作&#xff0c;然后通过…...

重庆所有做网站的公司/做微商怎么找客源加人

1、time.Sleep 可以直接sleep需要的时间之后&#xff0c;在执行&#xff0c;调度器会把当前协程置为GWaiting状态&#xff0c;放入定时器阻塞堆&#xff0c;是一个小顶堆&#xff0c;不断去堆顶元素 2、time.Timer 简单使用 fmt.Println("now time",time.Now().F…...

广州自助网站推广制作/企业官网seo

内联汇编使用“__asm”&#xff08;C&#xff09;和“asm”&#xff08;C和C&#xff09;关键字声明&#xff0c;语法格式如下所示,内联汇编支持大部分的ARM指令&#xff0c;但不支持带状态转移的跳转指令&#xff0c;如BX和BLX 指令 __asm("instruction[;instruction]&q…...

做网站的费用/如何把一个关键词优化到首页

电厂的安全问题一直是发电企业高度关注的问题&#xff0c;安全隐患大体上分为21大类&#xff0c;包括火灾、爆炸、中毒和窒息、水害、坍塌、滑坡、泄漏、腐蚀、触电、坠落、机械伤害、煤与瓦斯突出、公路设施伤害、公路车辆伤害、铁路设施伤害、铁路车辆伤害、水上运输伤害、港…...