【校招VIP】专业课考点之死锁

05月17日 收藏 0 评论 1 测试开发

【校招VIP】专业课考点之死锁

考点介绍:

在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。是校招考察的重点对象。

本期分享的专业课考点之死锁,分为试题、文章以及视频三部分。

答案详情解析和文章内容可扫下方二维码或链接即可查看!

一、考点题目

1. 操作系统什么情况下会死锁?产生死锁的四个条件?

正确答案:

死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局。

产生的原因:

竞争资源:当系统中多个进程使用共享资源,并且资源不足以满足需要,会引起进程对资源的竞争而产生死锁

2. 悲观锁和乐观锁有什么区别?

正确答案:悲观锁:

顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会 block 直到它拿到锁。正因为如此,悲观锁需要耗费较多的时间,另外与乐观锁相对应的,悲观锁是由数据库自己实现了的,要用的时候,我们直接调用数据库的相关语句就可以了。
说到这里,由悲观锁涉及到的另外两个锁概念就出来了,它们就是共享锁与排它锁。共享锁和排它锁是悲观锁的不同的实现,它俩都属于悲观锁的范畴。

3. 怎么防止死锁?

正确答案:死锁的四个必要条件:

互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源
请求和保持条件:进程获得一定的资源之后,又对其他资源发出请求,但是该资源可能被其他进程占有,此事请求阻塞,但又对自己获得的资源保持不放
不可剥夺条件:是指进程已获得的资源,在未完成使用之前,不可被剥夺,只能在使用完后自己释放
环路等待条件:是指进程发生死锁后,若干进程之间形成一种头尾相接的循环等待资源关系

(答案点击下方链接或者扫海报二维码查看哦)

二、考点文章

1.【校招VIP】死锁及其检测

先说解决方式, 利用hook, 在加锁和解锁的时候做一些记录。 比如哪个线程在用,等等。 保存好, 有了好的数据结构,就得有好的算法去分析。 -----判断有向图的环

2.【校招VIP】死锁

所谓死锁就是一个进程集合中的多个进程因为竞争资源,而造成的互相等待现象。很显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。

3.【校招VIP】什么是死锁及预防具体措施

A线程持有独占锁a,去请求B线程的资源,而此时,B线程持有独占锁b,去请求A的资源。
两个线程互相持有对方的锁,发生了互斥,从而产生线程阻塞,此为死锁。

(扫下方海报二维码查看完整版)

三、考点视频

TCP建立和结束连接的过程

更多资讯可搜索校招VIP小程序查看哦。
PC端链接:https://xiaozhao.vip/dTopic/detail/325
移动端链接:https://m.xiaozhao.vip/dTopic/detail/325

C 1条回复 评论
橘子狂人

我想学习黑客,但是我没有文化

发表于 2022-06-03 23:00:00
0 0