C++ 全栈知识体系
✿导航
C++
C++
基础
函数
知识点
IO框架
新版本特性
数据库
数据库
数据库原理
SQL语言
SQL - MySQL
NoSQL - Redis
NoSQL - ElasticSearch
算法
算法
算法基础
常见算法
领域算法
分布式算法
编程四大件
编程四大件
数据结构与算法
计算机网络
操作系统
计算机组成
开发|测试
开发|测试
开发
测试
架构
架构
架构基础
分布式系统
微服务
中间件
方法论
方法论
概念
理论
架构设计原则
设计模式
协议
技术选型
编码规范
工具|部署
工具|部署
流水线构建 - CI/CD
知识点 - Linux
网站 - Nginx
容器化 - Docker
容器编排 - Kubernetes
服务网格 - Service Mesh Istio
常用快捷键 - Shortcut
工具使用 - Tools
项目
项目
开源项目
学习项目
个人项目
项目开发
项目Idea
文章
文章
并发
部署
分布式
知识
问题
读书笔记
读书笔记
编程语言与技术
系统与架构
软件开发实践
数据处理与应用设计
成长
成长
个人
产品
团队
前端
前端
Vue
关于
操作系统 - 死锁
原因
产生条件
预防
概述
原因
系统资源不足
资源分配不当
进程运行推进顺序不合适
产生条件
互斥
请求和保持
不剥夺
环路
预防
打破互斥条件:改造独占性资源为虚拟资源,大部分资源已无法改造。
打破不可抢占条件:当一进程占有一独占性资源后又申请一独占性资源而无法满足,则退出原占有的资源。
打破占有且申请条件:采用资源预先分配策略,即进程运行前申请全部资源,满足则运行,不然就等待,这样就不会占有且申请。
打破循环等待条件:实现资源有序分配策略,对所有设备实现分类编号,所有进程只能采用按序号递增的形式申请资源。
有序资源分配法
银行家算法
Prev
操作系统 - 同步方式