**计算机系统中的死锁**

1.竞争不可抢占性资源引起死锁

2.竞争可消耗资源引起死锁

3.进程推进顺序不当引起死锁

**产生死锁的必要条件**

1.互斥条件

2.请求和保持条件

3.不可抢占条件

4.循环等待条件

处理死锁的方法

1.预防死锁

2.避免死锁

3.检测死锁

4.解除死锁

**预防死锁(主要是破坏产生死锁的后三个条件)**

1.破坏‘请求和保持’条件

2.破坏‘不可抢占条件’条件

3.破坏‘循环等待’条件

异常,也成为内中断,也成为例外或者陷入,指源自CPU执行指令内部的事件,如程序的非法操作码,地址越界,算术溢出、虚存系统的缺页以及专门的陷入指令等引起的。

皮特森算法,两个flag保证进程之间的互斥,但是可能存在死锁,互相阻塞的情况,这个时候就采用turn来决定执行的进程

一般地,解决死锁的方法分为死锁的预防,避免,检测与恢复三种(注意:死锁的检测与恢复是一个方法)

**死锁的预防**是保证系统不进入死锁状态的一种策略。它的基本思想是要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,保证系统不会进入死锁状态。

**死锁的避免,**它不限制进程有关申请资源的命令,而是对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配。就是说,在资源分配过程中若预测有发生死锁的可能性,则加以避免。这种方法的关键是确定资源分配的安全性。

**死锁的检测与恢复  ,** 一般来说,由于操作系统有并发,共享以及随机性等特点,通过预防和避免的手段达到排除死锁的目的是很困难的。这需要较大的系统开销,而且不能充分利用资源。为此,一种简便的方法是系统为进程分配资源时,不采取任何限制性措施,但是提供了检测和解脱死锁的手段:能发现死锁并从死锁状态中恢复出来。因此,在实际的操作系统中往往采用死锁的检测与恢复方法来排除死锁。 死锁检测与恢复是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,从而使得并发进程从死锁状态中恢复出来。

就绪队列是处于就绪状态线程(进程)排队的队列,就绪状态线程是有执行资格的只是在等时间片分配,而等待队列是阻塞状态线程(进程)排队的队列,阻塞状态线程是获取资源没获取到然后阻塞等待的,没获取到资源是没有执行资格的, 根据题意没有线程运行,应该是就绪队列为空,而等待队列中可能有线程没有获取到资源,仍然在等待

在[存储器管理](https://baike.baidu.com/item/存储器管理/6627083)中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。

如果允许将一个[进程](https://baike.baidu.com/item/进程/382503)直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了[离散](https://baike.baidu.com/item/离散/858263)分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。在分页存储管理方式中,如果不具备[页面](https://baike.baidu.com/item/页面/5544813)[对换](https://baike.baidu.com/item/对换/2817180)功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现[虚拟存储器](https://baike.baidu.com/item/虚拟存储器/944209)的功能,它要求把每个作业全部装入内存后方能运行。

**四种常见的线程池**: CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心**线程的数量为Integer.max_value,就是无限大**,当有需要时创建线程来执行任务,没有需要时回收线程,适用于耗时少,任务量大的情况。 SecudleThreadPool:周期性执行任务的线程池,按照某种特定的计划执行线程中的任务,有核心线程,但也有非核心线程,非核心线程的大小也为无限大。适用于执行周期性的任务。 SingleThreadPool:只有一条线程来执行任务,适用于有顺序的任务的应用场景。 FixedThreadPool:定长的线程池,有核心线程,核心线程的即为最大的线程数量,没有非核心线程

**线程池**是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的[堆栈](https://baike.baidu.com/item/堆栈)大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在[托管代码](https://baike.baidu.com/item/托管代码)中空闲(如正在等待某个事件),则线程池将插入另一个[辅助线程](https://baike.baidu.com/item/辅助线程)来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。

牛客刷题难点易错点总结-操作系统4相关推荐

  1. 《牛客刷题》sql错题集

    1. 查询语句select stuff('lo ina',3, 1, 've ch')结果为? 答案:love china 解析: STUFF(原字符, 开始位置, 删除长度, 插入字符) 从指定的起 ...

  2. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

  3. 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)

    讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...

  4. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  5. 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  6. 【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)

    前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失. 个人刷题练习系列专栏:个人CSDN牛客刷题专栏. 题目来自:牛客/题库 / 在线编程 / 剑 ...

  7. 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 牛客刷题偶遇 字节后端笔试0715 撸它 一共两道编程题. 1. 给 ...

  8. 最长上升子序列(LIS),牛客刷题

    目录: 最长上升子序列(LIS) 1.模板(数据较小) 2.模板(数据较大) 牛客刷题 1. 牛客练习赛107A:如见青山 2.牛客小白月赛65A牛牛去购物 3.牛客小白月赛65B牛牛去购物 4.牛客 ...

  9. 【Shell牛客刷题系列】SHELL4 输出第5行的内容:回顾head、tail命令和sed、awk命令的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

最新文章

  1. 一篇带你了解TCP/IP 概念
  2. java指定位置写入_java指定路径写、读文件
  3. linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决
  4. Machine Learning week 6 quiz: Advice for Applying Machine Learning
  5. 最小帧长度的计算公式_网络工程师考试常用计算公式汇总(二)
  6. linux对2k屏幕,(转)Linux中的screen命令使用
  7. Oracle通过邀请Weaver和Chin推动JavaFX向前发展
  8. 我们和全球的朋友一起回家
  9. mikrotik dhcp server
  10. webstrom 开发工具简介
  11. 为什么现在的很多酒店都不收押金,只收房费了?
  12. 安装阿里Java代码规约插件
  13. Web播放器学习笔记(二) 1 Bit Audio Player
  14. etcd 及 etcd 在 k8s中的用法
  15. Cadence Allegro 高亮功能的使用技巧图文教程
  16. 一个正经的前端学习 开源 仓库(每日更新)-648道知识点
  17. 百度地图绘制3D棱柱
  18. 读庄子-万物齐一和自然无为
  19. 降雪致国道315线部分道路通行受阻公路交警部门昼夜坚守
  20. cdh cm 大数据系统hadoop快速安装

热门文章

  1. Service Mesh -- Istio概述
  2. 【爬虫】关于 HTTP 的 OPTIONS 请求
  3. Lombok的使用和常用注解使用示例
  4. 一种用于人脸检测的设备上的深度神经网络
  5. PerfDog小程序测试
  6. python编辑器安装视频_基于 Python 的视频编辑器——MoviePy
  7. 2015微软创新杯Imaginecup大赛报名进行中(报名截止2014年12月31日23:59)
  8. 《变量》阅读笔记作文4500字
  9. IIS URL重写实现重定向
  10. 【童晶老师《Python游戏趣味编程》在PyCharm中编辑】