3 处理机调度和死锁(下)

2024-02-18 19:04
文章标签 死锁 调度 处理机

本文主要是介绍3 处理机调度和死锁(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

死锁

  1. 引起死锁:需要采用互斥访问的 不可以被抢占的资源(临界资源)

  2. 系统资源分类:

    1. 可重用性资源 可消耗性资源
    2. 可抢占性资源 不可抢占性资源
  3. 计算机系统中的死锁

    1. 竞争不可抢占性资源引起死锁
    2. 竞争可消耗资源引起死锁
    3. 进程推进顺序不当引起死锁
  4. 死锁定义:一组相互竞争系统资源或进行通信的进程间的永久阻塞

  5. 死锁危害:死锁进程无限期阻塞等待、资源浪费、更多进程卷入死锁、系统死机

  6. 产生死锁原因:

    1. 动态资源分配策略
    2. 资源可用数量少于需求数量
    3. 进程并发过程的偶然因素
  7. 产生死锁的必要条件:

    1. 互斥条件 2. 请求和保持条件 3. 不可抢占条件 4. 循环等待条件
  8. 处理死锁的方法:

    1. 预防死锁 事前 (通过破坏产生死锁的四个必要条件中的一个或者几个)

      1. 破坏请求和保持条件

        1. 第一种协议(静态资源分配策略 一次性 全部)
        2. 第二种协议(动态资源分配策略 需要时动态申请 使用完动态释放)
      2. 破坏不可抢占条件

        当一个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能得到满足时,它必须释放已经保持的所有资源

      3. 破坏循环等待条件

        对系统所有资源类型进行线性排序,并赋予不同的序号

    2. 避免死锁 事前 (在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁)

      1. 利用银行家算法避免死锁(计算但简单 求安全序列)
    3. 检测死锁 事后

      1. 资源分配图
    4. 解除死锁 事后

      1. 终止进程方法:
        1. 终止所有死锁进程
        2. 逐个终止进程
      2. 付出代价最小的死锁解除算法

这篇关于3 处理机调度和死锁(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722149

相关文章

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

MYSQL事务死锁问题排查及解决方案

《MYSQL事务死锁问题排查及解决方案》:本文主要介绍Java服务报错日志的情况,并通过一系列排查和优化措施,最终发现并解决了服务假死的问题,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录问题现象推测 1 - 客户端无错误重试配置推测 2 - 客户端超时时间过短推测 3 - mysql 版本问

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【Linux】探索进程优先级的奥秘,解锁进程的调度与切换

目录 进程优先级: 是什么? 为什么存在进程优先级的概念呢? Linux为什么调整优先级是要受限制的? PRI vs NICE Linux的调度与切换 概念准备: 那我们到底怎样完成进程的调度和切换呢? 区分:寄存器VS寄存器的内容 Linux实现进程调度的算法,需要考虑优先级,考虑进程饥饿问题,考虑效率问题。 解决优先级问题: 解决进程饥饿问题: 解决效率的问题: