操作系统 应用题 例题+参考答案(考研真题)
1.(考研真题)一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。
P1:计算60ms,I/O 80ms,计算20ms。
P2:计算120ms,I/O 40ms,计算40ms。
不考虑调度和切换时间,请计算完成两个作业需要的最少时间。
【参考答案】作业执行的过程如图所示。由于多道批处理系统中,P1与P2可以部分并行,那么,P1先到达系统,先占用CPU进行计算到60ms,然后执行I/O时间是80ms~140ms;而P1执行I/O的过程中,P2可获得CPU运行120ms,到180ms结束;当P1执行完它的I/O后,执行计算,此时CPU正被P2占用,P1等P2执行完后,获得CPU执行剩余的20ms完成退出系统;此时,P2执行I/O40ms到220ms;最后P2获得CPU运行剩余的40ms到260ms结束。由图可知,完成两个作业需要的最少时间为260ms。
2.设某计算机系统有一个CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪态,且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。画出它们的运行图,并说明:
(1)开始运行后,CPU有无空闲等待?若有,在哪段时间内等待?计算CPU的利用率;
(2)进程A运行时有无等待现象?若有,在何时发生等待现象?
(3)进程B运行时有无等待现象?若有,在何时发生等待现象?
【参考答案】进程运行情况如下图所示。
(1)CPU在100~150ms时间段内空闲,利用率为250/300=83.3%。
(2)进程A为无等待现象。
(3)进程B为有等待现象,0~50ms,180~200ms。
3.(考研真题)画出下面4条语句所对应的前驱图。
P1:a=x+2y; P2:b=a+6; P3:c=4a-9; P4:d=2b+5c;
3. 【参考答案】P2和P3都必须在a被赋值之后才能执行;但P2、P3可以并发执行,因此它们彼此互不依赖;P4必须在b和c被赋值后才能执行。因此前趋图如图所示。
4.(考研真题)有以下的进程需要调度执行(见表3-1-1),若用非抢占式短进程优先调度算法,问这5个进程的平均周转时间是多少?
表3-1-1 进程运行时间表
进程名 | 到达时间 | 运行时间 |
P1 | 0.0 | 9 |
P2 | 0.4 | 4 |
P3 | 1.0 | 1 |
P4 | 5.5 | 4 |
P5 | 7 | 2 |
4.【参考答案】本题分步解答如下。
(1)采用非抢占式短进程优先调度算法,各进程执行次序如图所示。
在0时刻,进程P1到达,P1获得处理机。由于不可抢占,所以P1会一直运行到9时刻结束;在9时刻,所有进程到达,根据短进程优先调度,P3获得处理机,然后是P5;P2和P4的预计运行时间一样,P2和P4按照先来先服务原则调度,P2优先获得处理机,最后P4运行。
(2)周转时间=完成时间-作业到达时间。因此P1的周转时间是9-0=9,P2的周转时间是16-0.4=15.6,P3的周转时间是10-1=9,P4的周转时间是20-5.5=14.5,P5的周转时间是12-7=5。平均周转时间为(9+15.6+9+14.5+5)/5=10.62。
5.(考研真题)5个进程P1、P2、P3、P4、P5几乎同时到达,预期运行时间分别为10、6、2、4、8个时间单位。各进程的优先级分别为3、5、2、1、4(数值越大,优先级越高)。请按下列调度算法计算任务的平均周转时间(进程切换开销可忽略不计)。
(1)先来先服务(按P1、P2、P3、P4、P5顺序)算法。
(2)时间片轮转算法,假定时间片大小为2个时间单位。
(3)优先权调度算法。
5. 【参考答案】根据算法思想,确定调度先后顺序。
(1)FCFS调度顺序如图所示。
(2)时间片轮转调度顺序如图所示。
(3)优先权调度算法的调度顺序如图所示。
于是,可以得到如表所示的结果。
算法
时间类型
P1
P2
P3
P4
P5
平均
运行时间
10
6
2
4
8
FCFS
周转时间
10
16
18
22
30
19.2
带权周转时间
1
2.67
9
5.5
3.75
4.384
RR
周转时间
30
22
6
16
28
20.4
带权周转时间
3
3.67
3
4
3.5
3.434
优先权
周转时间
24
6
26
30
14
20
带权周转时间
2.4
1
13
7.5
1.75
5.13
周转时间=结束时间-到达时间
带权周转时间=WT = (Service Time + Waiting Time) / (Service Time)
6.在一个单道批处理系统中,一组作业的提交时刻和运行时间如下表所示:
作业 | 提交时间 | 运行时间 |
1 | 8:00 | 1.0 |
2 | 8:50 | 0.50 |
3 | 9:00 | 0.20 |
4 | 9:10 | 0.10 |
试计算以下3种作业调度算法的平均周转时间T和平均带权周转时间W:
- 先来先服务;(2)短作业优先;(3)响应比高者优先。
【参考答案】(1)采用先来先服务作业调度算法时,作业的运行情况如下表所示。
作业执行次序
提交时间
运行时间
开始时刻
完成时刻
周转时间
带权周转时间
1
8:00
1.0
8:00
9:00
1.0
1.0
2
8:50
0.05
9:00
9:50
1.0
2.0
3
9:00
0.20
9:50
9:70
0.7
3.5
4
9:10
0.10
9:70
9:80
0.7
7.0
平均周转时间为T=(1.0+1.0+0.7+0.7)/4=0.85。
平均带权周转时间为W=(1.0+2.0+3.5+7.0)/4=3.375。
(2)采用短作业优先调度算法时,作业的运行情况如下表所示。
作业执行次序
提交时间
运行时间
开始时刻
完成时刻
周转时间
带权周转时间
1
8:00
1.0
8:00
9:00
1.0
1.0
3
8:50
0.20
9:00
9:20
0.2
1.0
4
9:10
0.10
9:20
9:30
0.2
2.0
2
8:50
0.50
9:30
9:80
1.3
2.6
平均周转时间为T=(1.0+0.2+0.2+1.3)/4=0.675。
平均带权周转时间为W=(1.0+1.0+2.0+2.6)/4=1.65。
(3)采用响应比高者优先作业调度算法时,作业的运行情况如下表所示。
作业执行次序
提交时间
运行时间
开始时刻
完成时刻
周转时间
带权周转时间
1
8:00
1.0
8:00
9:00
1.0
1.0
3
9:00
0.20
9:00
9:20
0.2
1.0
2
8:50
0.50
9:20
9:70
1.2
2.4
4
9:10
0.10
9:70
9:80
0.7
7.0
平均周转时间为T=(1.0+0.2+1.2+0.7)/4=0.775。
平均带权周转时间为W=(1.0+1.0+2.4+7.0)/4=2.85。
7.单道批处理系统中有4个作业,其有关情况如下表所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。
作业 | 提交时间/h | 运行时间/h |
J1 | 8.0 | 2 |
J2 | 8.6 | 0.6 |
J3 | 8.8 | 0.2 |
J4 | 9.0 | 0.5 |
【参考答案】在8.0只有作业J1到达,系统先将作业J1投入运行。作业J1运行2个小时后完成。这时3个作业都已到达,要计算3个作业的响应比,然后使响应比最高的投入运行。3个作业的响应比为:
响应比=作业周转时间/作业处理时间
=(作业等待时间+作业处理时间)/作业处理时间
=1+(等待时间/处理时间)
作业J2的响应比=1+(10.0-86)/0.6=3.33
作业J3的响应比=1+(10.0-8.8)/0.2=7
作业J4的响应比=1+(10.0-9.0)/0.5=3
从计算的结果来看,作业J3的响应比最高,所以让作业J3先执行。
作业J3执行0.2小时后完成。此时作业J2和作业J4的响应比为:
作业J2的响应比=1+(10.2-8.6)/0.6=3.67
作业J4的响应比=1+(10.2-9.0)/0.5=3.4
从计算的结果来看,作业J2的响应比最高,所以再让作业J2执行。
可见,4个作业的执行次序为:作业J1,作业J3,作业J2,作业J4。
计算结果如下表:
作业号
到达时间
运行时间
开始时间
完成时间
周转时间
带权周转时间
1
8.0
2.0
8.0
10.0
2.0
1.0
2
8.6
0.6
10.2
10.8
2.2
3.67
3
8.8
0.2
10.0
10.2
1.4
7
4
9.0
0.5
10.8
11.3
2.3
4.6
平均周转时间为T=(2.0+2.2+1.4+2.3)/4=1.975
平均带权周转时间为W=(1.0+3.67+7+4.6)/4=3.98
8.(考研真题)假设系统中有下述解决死锁的办法:
(1)银行家算法;
(2)检测死锁,终止处于死锁状态的进程,释放该进程占有的资源;
(3)资源预分配。
简述哪种办法允许最大的并发性?请按“并发性”从大到小对上述3种办法排序。
【参考答案】题中给出的3种办法中,
检测死锁能允许更多的进程无等待地向前推进,并发性最大。因为该方法允许进程最大限度地申请并分配资源,直至出现死锁,再由系统解决。
银行家算法允许进程自由申请资源,只是在某个进程申请时检查系统是否处于安全状态,若是,则可立即分配,若不是,才拒绝。并发性大小次于检测死锁的方法。
最后是资源预分配,因为此方法要求进程在运行之前申请所需的全部资源才可以,这会使得许多进程因申请不到资源而无法开始,得到部分资源的进程因得不到全部资源也不释放已占用的资源,因此导致资源的浪费。
因此,3种方法的并发性按从大到小排序为:检测死锁、银行家算法、资源预分配。
9.(考研真题)假定系统中有5个进程P0、P1、P2、P3、P4和4种资源A、B、C、D,若出现如表所示资源分配情况。
进程 | 已分配到资源 | 尚需资源需求 | 当前可用资源数 |
P0 | (1,1,1,0) | (0,3,3,1) | (0,3,2,2) |
P1 | (0,2,3,1) | (0,3,4,2) | |
P2 | (0,2,1,2) | (1,0,3,4) | |
P3 | (0,3,1,0) | (0,3,2,0) | |
P4 | (1,0,2,1) | (0,4,2,3) |
问:(1)该状态是否安全?为什么?
(2)如果进程P0提出资源请求(0,0,0,1),系统能否将资源分配给它?为什么?
【参考答案】严格按照银行家算法及安全检查子算法进行。
(1)初始状态如表所示。
进程
Work
Need
Allocation
Work + Allocation
Finish
P3
0,3,2,2
0,3,2,0
0,3,1,0
0,6,3,2
True
P0
0,6,3,2
0,3,3,1
1,1,1,0
1,7,4,2
True
P1
1,7,4,2
0,3,4,2
0,2,3,1
1,9,7,3
True
P4
1,9,7,3
0,4,2,3
1,0,2,1
2,9,9,4
True
P2
2,9,9,4
1,0,3,4
0,2,1,2
2,11,10,6
True
存在一个安全序列P3,P0,P1,P4,P2,所以,该状态是安全的。
(2)Request0(0,0,0,1)<Need0(0,3,3,1)
Request0(0,0,0,1)<Available(0,3,2,2)
故尝试将资源分配给P0,修改P0对应资源,P0对应的Need(0,3,3,0),Allocation(1,1,1,1),系统的Available为(0,3,2,1)。进程资源分配情况如表所示。
进程
Work
Need
Allocation
Work + Allocation
Finish
P3
0,3,2,1
0,3,2,0
0,3,1,0
0,6,3,1
True
P0
0,6,3,1
0,3,3,0
1,1,1,1
1,7,4,2
True
P1
1,7,4,2
0,3,4,2
0,2,3,1
1,9,7,3
True
P4
1,9,7,3
0,4,2,3
1,0,2,1
2,9,9,4
True
P2
2,9,9,4
1,0,3,4
0,2,1,2
2,11,10,6
True
存在一个安全序列P3、P0、P1、P4、P2,该状态是安全的,所以,可以实施分配。
10.(考研真题)假设系统有5类独占资源:Rl、R2、R3、R4、R5。各类资源分别有2、2、2、1、1个。系统有5个进程:P1、P2、P3、P4、P5。其中P1已占有2个R1,且申请1个R2和1个R4;P2已占有1个R2,且申请1个Rl;P3已占有1个R2,且申请1个R2和1个R3;P4已占有1个R4和1个R5,且申请1个R3;P5已占有1个R3,且申请1个R5。
(1)试画出该时刻的资源分配图。
(2)什么是死锁定理?如何判断(1)中给出的资源分配图有无死锁?给出判断过程和结果。
10. 【参考答案】(1)1该时刻的资源分配图如图所示。
(2)系统状态S为死锁状态的充分条件:当且仅当S状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理。
对于本题的情况,当前状态下系统可用资源数为(0,0,1,0,0),可以满足P4的申请需求,可将P4申请的资源进行分配,P4执行完毕后,系统的状态如图所示。
P4释放资源后,系统可用资源数变为(0,0,1,1,1),可以满足P5的申请需求,可将P5申请的资源进行分配,P5执行完毕后,系统的状态如图所示。
P5释放资源后,系统可用资源数变为(0,0,2,1,1),已不能满足任何进程的申请需求,系统当前资源分配图已经不能再简化,故系统处于死锁状态。
11.某系统有同类资源m个,供n个进程共享。如果每个进程最多申请x个资源(其中1≤x≤m)。
请证明:当n(x-1)+1≤m时,系统不会发生死锁。
【参考答案】由于每个进程最多申请使用x个资源,在最坏的情况下,每个进程都得到了(x-1)个资源,并且现在均需申请最后一个资源。这时系统剩余资源数为m-n(x-1)。如果系统剩余资源数大于1,即系统还有1个资源可以使用,就可以使这几个进程中的一个进程获得所需的全部资源。该进程可以运行结束,释放出所占有的资源供其它进程使用,从而每一个进程都可以执行结束。
因而,当m-n(x-1)≥1时,即n(x-1)+1≤m时,系统不会发生死锁。
12.(考研真题)对下面用类Pascal语言描述的读者写者问题,请填入正确的wait()、signal()操作。
var rmutex,wmutex:semaphore:=1,1;
readcouncnteger=0;
begin
parbegin
reader:
begin
repeat
wait(rmutex);
if readcount:=0 then A
readcount:=readcount+1;
B
perform read operation;
C
readcount:=readcount-1;
if readcount:=0 then D
signal(rmutex);
until false;
end
writer:
begin
repeat
E
Perform write operation;
signal(wmutex);
until false;
end
parend
供选择的答案:[1]wai(mutex);[2]wait(wmutex);[3]signal(rmatex) [4]signal(wmutex)
【参考答案】
A:wait(wmutex); //禁止写者写。
B:signal(rmutex); //释放信号,让其他读者进来。
C:wait(rmutex); //保证读者互斥使用readcount变量。
D:signal(wmutex); //释放写互斥信号,可以让其他写者或读者进入。
E:wait(wmutex); //禁止其他写者进来。
13.某系统采用动态分区分配方式管理内存,内存空间为640KB,高端40KB用来存放OS。在分配内存时,系统优先使用空闲区低端的空间。对下列的请求序列:作业1申请130KB、作业2申请60KB、作业3申请100KB、作业2释放60KB、作业4申请200KB、作业3释放100KB、作业1释放130KB、作业5申请140KB、作业6申请60KB、作业7申请50KB、作业6释放60KB,请分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后,内存的实际使用情况。
【参考答案】首次适应算法将空闲区按起始地址递增的次序排序,而最佳适应算法则将空闲区按分区大小递增的次序排序。在分配时,它们都是从开始顺序查找,直至找到一个足够大的空闲分区为止,然后按作业大小从该分区中划出一块内存空间分配给请求者,余下的分区(如果有的话)仍按上述原则留在空闲分区链中;在释放时,则需分别按地址递增或大小递增的次序将空闲分区插入空闲分区表(链),并合并空闲分区。表给出了使用这两种算法进行上述内存分配和回收的具体过程。
使用首次适应算法和最佳适应算法进行上述内存的分配和回收后,内存的实际使用情况分别如图(a)和(b)所示。
(a)首次适应算法 (b)最佳适应算法
14.设作业A(30K)、B(7OK)和C(5OK)依次请求内存分配,内存现有F1(100K)、F2(50K)两个空闲区,如图所示。分别采用最佳适应算法和最差适应算法,画出内存分配情况示意图。
F1(100K) |
F2(50K) |
【参考答案】该题中按BF算法,作业A(3OK)分配到F2空闲区后,F2变为2OK;作业B(7OK)分配到F1空闲区后,F1变为3OK;作业C(5OK)分配失败。
该题中若按WF算法,作业A(3OK)分配到F1后,F1变为70K;作业B(7OK)也分配到F1空闲区;作业C(5OK)分配到F2空闲区。
因此,BF算法内存分配情况如图(a)所示。WF算法内存分配情况如图(b)所示。
(a) (b)
15.在一个分页存储管理系统中,页面大小为4KB,系统中的地址占24位,给定页面变换表如下表所示。
(1)计算逻辑地址(页号为3,页内地址为100)的物理地址。
(2)说明地址变换过程。
页号P | 块号B |
0 | 3 |
1 | 4 |
2 | 9 |
3 | 7 |
15.【参考答案】(1)逻辑地址(页号3,页内地址100)的物理地址为:
7×4KB+100=28KB+100=28772
(2)在请求分页存储管理中,系统是通过页表进行地址转换。先将逻辑地址分解成页号P和页内地址W两部分,然后查页表,可得页号P对应的物理块号为B,从而变换出对应的物理地址为:物理地址=块号×页面大小+页内地址
16.在某请求分页存储管理系统中,主存容量为1MB,被划分为256块,每块为4KB,现有一作业,其页表如下表所示。
试问:
(1)若给定一逻辑地址为9016(十进制),求其物理地址。
(2)若给定一逻辑地址为12300(十进制),其物理地址如何得到?
【参考答案】(1)逻辑地址(页号2,页内地址824)查页表可知,该页被装入主存的第32块中,所以,其物理地址为:128K+824。
若给定逻辑地址为12300,其页号为3,查页表,该页的状态位为1可知未装入主存,因而产生缺页中断。中断后由中断处理程序将该页装入主存,然后进行地址变换。
17.设作业的虚拟地址为24位,其中高8位为段号,低16位为段内相对地址。试问:
(1)一个作业最多可以有多少段?
(3)每段的最大长度为多少字节?
(3)某段式存储管理采用如下段表,试计算[0,430]、[1,50]、[2,30]、[3,70]的主存地址。其中方括号内的前一元素为段号,后一元素为段内地址。当无法进行地址变换时,应说明产生何种中断。
段号 | 段长 | 主存起始地址 | 是否在主存 |
0 | 600 | 2100 | 是 |
1 | 40 | 2800 | 是 |
2 | 100 | 否 | |
3 | 80 | 4000 | 是 |
【参考答案】(1)一个作业最多可以有28=256个段。
(2)每段的最大长度为216=64KB=65536字节。
(3)逻辑地址(0,430)的主存地址为2100+430=2530;
逻辑地址(1,50)无法进行地址变换,因为产生了越界中断;
逻辑地址(2,30)无法进行地址变换,因为产生了缺段中断;
逻辑地址(3,70)的主存地址为4000+70=4070。
18.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 | 物理块号 |
0 | 3 |
1 | 7 |
2 | 11 |
3 | 8 |
则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。
【参考答案】逻辑地址0A5C(H)所对应的二进制表示形式是: 0000 1010 0101 1100
所对应的页号是: 2 (十进制)
查页表,得到物理块号是: 11 (十进制)
拼接后,得到物理地址: 2E5C(H)
19.对于如下的页面访问序列:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5。当内存块数量分别为3和4时,试问:使用FIFO、LRU置换算法产生的缺页中断是多少?(所有内存开始时都是空的,凡第一次用到的页面都产生一次缺页中断)
【参考答案】(1)FIFO 淘汰算法:内存块为3 时,缺页中断(或称缺页次数、页面故障)为9;内存块为4 时,缺页中断为10。(Bleady现象)
(2)LRU淘汰算法:内存块为3时,缺页中断为10;内存块为4 时,缺页中断为8。
20.考虑一个请求分页系统,测得如下的时间利用率:
CPU:20%;分页磁盘:97.7%;其它外设:5%
下列措施中,哪个(些)可改善CPU 的利用率?说明理由:
- 更换速度更快的CPU;(2)更换更大容量的分页磁盘;(3)增加内存中用户进程数;(4)挂起内存中的某个(些)用户进程。
【参考答案】因为分页磁盘占95%,主要是考虑页表的存储问题,挂起某个进程,可扩大进程的存储空间;更换更大容量的分页磁盘,可增加页表的分页速度,从而改善CPU 的利用率。所以应选择(2)和(4)。
21.对于一个利用快表且页表存于内存的分页系统,假定CPU 一次访问时间为1us,访问快表的时间可以忽略不记。如果85%的地址映射可直接通过快表完成,那么进程完成一次内存读写的平均有效时间是多少?
0.85*1μs+0.15*2μs=1.15μs
22.某计算机有32位虚地址空间,页大小为1024字节。每个页表项占4个字节。因为每个页表都必须包含在一页中,所以使用多级页表,问共需要几级?
【参考答案】因为一张页表只能包含1024/4=256个页表项。而页的大小为210,所以共需要32-10=22位来表示页号。而每一级页表只能处理22位中的8位,所以共需要3级。有两级页表有28个页表项,另一级只有26个页表项。
23.在某分页系统中,有224字节的物理内存,256页的逻辑地址空间并且页的大小为210字节,问逻辑地址为多少位?
【参考答案】256页的逻辑地址空间,256=28,需要8位二进制表示页号,且页的大小为210字节,页内偏移量需要10位表示,因此逻辑地址为8+10=18位。
24.在某段页式系统中,虚地址空间包含了8个段,段长为229字节。硬件把每个段分成大小为256字节的页。问虚地址中有多少位可以用于指定:
(a)段号;(b)页号;(c)页内偏移量;(d)整个虚地址。
【参考答案】(a)因为段个数为8=23,所以段号需要3位;(b)每页大小256字节为28,段长为229,因此每段最多可分为229/28=221个页,因此页号需21位;(c)页大小为256字节为28,页内偏移量需8位;(d)整个虚地址为段号和最大段长之和,即为3+29=32位。
25.已知某程序访问以下页面:0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2。如果程序有3个页框可用且使用下列替换算法,求出现缺页的次数。
(1)FIFO替换算法(2)LRU替换算法
【参考答案】(1)FIFO 算法总是淘汰最先进入内存页面,即选择在内存中驻留时间最长的页予以淘汰。算法如图所示:
缺页率13/20=65%
(2)LRU 算法是最近最久未使用的页面予以淘汰。算法如图所示:
缺页率14/20=70%
26.某系统使用请求分页存储管理,如果页在内存中,满足一个内存请求需要200ns。如果页不在内存,如有空闲的页框或者没有修改的换出的页,则请求需要7ms。如果替换出的页已经被修改,则需要15ms,如果缺页率是5%,并且60%的时间用于修改要换出的页,问有效访问时间是多长?假设系统只运行一个进程且页交换时CPU空闲。
【参考答案】200ns内得到满足的访问占用全部访问的95%。5%的访问造成缺页,其中40%的需要7ms。因此,5%×40%=2%的访问需要7ms。类似地,5%×60%=3%的访问需要15ms。把所有的时间转换为us,结果如下:
有效访问时间=0.95×0.2+0.02×7000+0.03×15000。
有效访问时间=590.19us。
相关文章:

操作系统 应用题 例题+参考答案(考研真题)
1.(考研真题)一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。 P1:计算60ms,I/O 80ms,计算20ms。 P2:计算120ms,I/O 40ms&…...

免费获取GPT-4的五种工具
不可否认,由OpenAI带来的GPT-4已是全球最受欢迎的、功能最强大的大语言模型(LLM)之一。大多数人都需要使用ChatGPT Plus的订阅服务去访问GPT-4。为此,他们通常需要每月支付20美元。那么问题来了,如果您不想每月有这笔支…...
XTU OJ 1146 矩阵乘法学习笔记
原题 题目描述 给你两个矩阵A(n*k),B(k*m),请求A*B。 输入 第一行是一个整数K,表示样例的个数。 每个样例包含两个矩阵A和B。 每个矩阵的第一行是两个整数n,m,(1≤n,m≤10)表示矩阵的行和列 以后的n行,每行m个整数,每个整数的绝对值不超过…...

基于官方YOLOv4开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】
本文是关于基于YOLOv4开发构建目标检测模型的超详细实战教程,超详细实战教程相关的博文在前文有相应的系列,感兴趣的话可以自行移步阅读即可:《基于yolov7开发实践实例分割模型超详细教程》 《YOLOv7基于自己的数据集从零构建模型完整训练、…...

1、Docker概述与安装
相关资源网站: ● docker官网:http://www.docker.com ● Docker Hub仓库官网: https://hub.docker.com/ 注意,如果只是想看Docker的安装,可以直接往下拉跳转到Docker架构与安装章节下的Docker具体安装步骤,一步步带你安…...

论文笔记——FasterNet
为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。 为了实现更快的网络,作者重新回顾了FLOPs的运算符,并证明了如此低的FLOPS主要是由…...

计算机组成原理-固态硬盘SSD
文章目录 总览机械硬盘vs固态硬盘固态硬盘的结构固态硬盘与机械硬盘相比的特点磨损均衡技术例题 总览 机械硬盘vs固态硬盘 固态硬盘采用闪存技术,是电可擦除ROM 下图右边黑色的块块就是一块一块的闪存芯片 固态硬盘的结构 块大小16KB~512KB 页大小512B~4KB 对固…...

Electron+VUE3开发简版的编辑器【文件预览】
简版编辑器的功能主要是: 打开对话框,选择文件后台读取文件文件前端展示文件内容。主要技术栈是VUE3、Electron和Nodejs,VUE3做页面交互,Electron提供一个可执行Nodejs的环境以及支撑整个应用的环境,nodeJS负责读取文件内容。 环境配置、安装依赖这些步骤就不再叙述了。 …...

docker、elasticsearch8、springboot3集成备忘
目录 一、背景 二、安装docker 三、下载安装elasticsearch 四、下载安装elasticsearch-head 五、springboot集成elasticsearch 一、背景 前两年研究了一段时间elasticsearch,当时也是网上找了很多资料,最后解决个各种问题可以在springboot上运行了…...
【Lombok使用详解】
目录 前言:注解速查1.Lombok概念2.安装Lombok3. 使用Lombok3.1 😊Data3.2 GetterSetter3.3 NonNull3.4 Synchronized3.5 ToString:自动生成toString()方法3.6 Cleanup3.7 EqualsAndHashCode 前言:注解速查 NonNull : 用在成员方法…...

Tars框架 Tars-Go 学习
Tars 框架安装 网上安装教程比较多,官方可以参数这个 TARS官方文档 (tarsyun.com) 本文主要介绍部署应用。 安装完成后Tars 界面 增加应用amc 部署申请 amc.GoTestServer.GoTestObj 名称不知道的可以参考自己创建的app config 点击刷新可以看到自己部署的应用 服…...

基于JAVA+SpringBoot+VUE+微信小程序的前后端分离咖啡小程序
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着社会的快速发展和…...

2015年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版
文章目录 2015 级考研管理类联考数学真题一、问题求解(本大题共 15 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。真题(2015-01&…...

优秀软件设计特征与原则
1.摘要 一款软件产品好不好用, 除了拥有丰富的功能和人性化的界面设计之外, 还有其深厚的底层基础, 而设计模式和算法是构建这个底层基础的基石。好的设计模式能够让产品开发快速迭代且稳定可靠, 迅速抢占市场先机;而好的算法能够让产品具有核心价值, 例如字节跳动…...

设备管理系统-设备管理软件
一、为什么要使用设备管理系统 1.企业扩张快,设备配置多,管理混乱。 2.设备数量多,存放地点多,查找麻烦。 3.同类设备单独管理, 困难。 4.设备较多时相关信息统计容易出错,错误后修改困难。 二、凡尔码设备管理软件的…...

物联网AI MicroPython学习之语法 I2S音频总线接口
学物联网,来万物简单IoT物联网!! I2S 介绍 模块功能: I2S音频总线驱动模块 接口说明 I2S - 构建I2S对象 函数原型:I2S(id, sck, ws, sd, mode, bits, format, rate, ibuf)参数说明: 参数类型必选参数?…...

Day31| Leetcode 455. 分发饼干 Leetcode 376. 摆动序列 Leetcode 53. 最大子数组和
进入贪心了,我觉得本专题是最烧脑的专题 Leetcode 455. 分发饼干 题目链接 455 分发饼干 让大的饼干去满足需求量大的孩子即是本题的思路: class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {…...

基于C#实现赫夫曼树
赫夫曼树又称最优二叉树,也就是带权路径最短的树,对于赫夫曼树,我想大家对它是非常的熟悉,也知道它的应用场景,但是有没有自己亲手写过,这个我就不清楚了,不管以前写没写,这一篇我们…...
Android 13.0 app进程保活白名单功能实现
1.前言 在13.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能 2.app进程保活白名单功能实…...
查找学习笔记
1、静态查找表 以下查找的索引均从1开始 (1)顺序查找(带哨兵) #include<iostream> #include<vector>using namespace std;int search(vector<int> arr, int key) {arr[0] key;int i;for (i arr.size() - 1…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...