Web前端最新剑指Offer——知识点储备-操作系统基础_操作系统 剑指offer,【无偿分享】

最后

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

文章目录

一、操作系统什么情况下会出现死锁?

1.1 产生死锁的必要条件
  • 互斥条件:即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有,这种独占资源如CD-ROM驱动器,打印机等,必须在占有该资源的进程主动释放它以后,其他进程才能占有该资源,这是资源本身的属性决定的。
  • 不可抢占条件:进程所获得资源在未使用完毕之前,资源申请者不能强行将资源从占用者手中夺取,而只能由该资源的占有者进程自行释放。
  • 占有且申请条件:进程至少已经占有一个资源,但又申请新的资源。由于该资源已被另外进程占有,此时该进程阻塞;但是它在等待新资源之时,仍继续占用已有的资源。
  • 循环等待条件:存在一个进程等待序列{P1,P2,……,Pn},其中P1等待P2所占有的某一部分资源,P2等待P3所占有的某一资源,……,而Pn等待P1所占有的某一资源,形成一个进程循环等待环。
1.2 死锁预防
  • 打破互斥条件:即允许进程同时访问某些资源。但是,有的资源是不允许被同时访问的,如打印机。(这是资源本身属性所决定的,所以这种办法并无实用价值。)
  • 打破不可抢占条件:即允许进程强行从占有者那里获取某些资源。就是说,当一个进程已占有了某些资源,它又申请新的资源,但不能立即被满足时,它必须释放所占有的全部资源,以后再重新申请。它所释放的资源可以分配给其它进程。这就相当于该进程占有的资源被隐藏的占有了。这种预防死锁的方法实现起来困难,会降低系统性能。
  • 打破占有且申请条件:可以实现资源预先分配策略。即进程在运行前一次性的向系统申请它所需要的全部资源。如果某个进程所需要的全部资源不能得到满足,则不分配任何资源,此进程暂不运行,只有当系统能够满足当前进程的全部资源需求时,才能一次性的将所申请的资源全部分配给该进程,由于运行的进程已占有了它所需要的全部资源,所以不会发生占有资源又申请资源的现象,因此不会发生死锁。但是,这种策略也有如下缺点:
  • 不可预测:在许多情况下,一个进程在执行之前不可能知道它所需要的全部资源,这是由于进程的执行时是动态的,不可预测的。
  • 资源利用率低:无论所分资源何时用到,一个进程只能占用所需资源的全部资源后才能执行。即使有些资源最后才被该进程用到一次,但该进程在生存期间却一直占有它们,造成长期占着不用的状况。这显然是一种极大的资源浪费。
  • 进程并发性降低:因为资源有限,又加上存在浪费,能分配到所需全部资源的进程个数就必然少了。
  • 打破循环等待条件:实行资源有序分配策略。采用这种策略,即把资源事先分类编号,按号分配,使进程在申请占有资源时不会形成环路。所有进程对资源的请求必须严格按照资源序号递增的顺序提出。进程占用(应该改成用完)了小号资源,才能申请大号资源,就不会产生环路,从而预防死锁。这种策略与前面相比,资源利用率和系统吞吐量都有很大提高。但是也存在以下缺点:
  • 限制了进程对资源的请求,同时给系统中所有资源合理编号也是件难事,并增加了系统的开销。
  • 为了遵循按编号申请的次序,暂不使用的资源也需要提前申请,从而增加了进程对资源占用时间。
1.3 死锁避免
  • 避免一个线程同时获取多个锁;
  • 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源;
  • 尝试使用定时锁,使用lock.tryLock(timeout)来代替使用内部锁机制;
  • 对于数据库锁,加锁解锁必须在一个数据库连接里,否则会出现解锁失败的情况;
1.4 实际的应用方法
  • 安全序列
  • 银行家算法

二、如何理解分布式锁?

最后

推荐一些系统学习的途径和方法。

路线图

每个Web开发人员必备,很权威很齐全的Web开发文档。作为学习辞典使用,可以查询到每个概念、方法、属性的详细解释,注意使用英文关键字搜索。里面的一些 HTML,CSS,HTTP 技术教程也相当不错。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

HTML 和 CSS:

html5知识

css基础知识

65e1bf84360c1c8a40cf6.png)

css基础知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值