当前位置: 首页 > news >正文

同步、通信、死锁

基础概念

竞争资源引起两个问题

死锁:因资源竞争陷入永远等待的状态

饥饿:一个可运行程序由于其他进程总是优先于它,而被调用程序总是无限期地拖延而不能执行

进程互斥:若干进程因相互争夺独占型资源而产生的竞争关系

进程同步:我们把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步

临界区:每个进程中访问临界资源的那段代码

临界资源:一次仅供一个进程使用的资源。

原语:由若干条机器指令所构成,用以完成特定功能的一段程序,为保证其操作的 正确性,它应当是原子操作,即原语是一个不可分割的操作

进程进入临界区的调度原则是什么?

1、一次至多只有一个进程进入临界区内执行

2、如果已有进程在临界区中,则其它所有试图进入临界区的进程必须等待

3、进入临界区的进程要在有限时间内退出,以便让等待队列中的一个进程进入

信号量和 PV 操作

信号量(Semaphore):相当一个信号灯,表示状态,在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。

简述信号量的定义和作用。P、V操作原语是如何定义的?

定义:相当一个信号灯,表示状态,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。

用来解决进程同步互斥问题的机制,包括一个称为信号量的变量及对它进行的两个原语操作。

p操作和v操作是不可中断的程序段,称为原语。P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的incremnet。

具体定义如下:

P(S):

①将信号量S的值减1,即S=S-1;

②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。

V(S):

①将信号量S的值加1,即S=S+1;

②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

管程

管程:代表共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序,共同构成了一个操作系统的资源管理模块,我们称之为管程。

管程的属性:共享性、安全性、互斥性

管程和进程的区别:

(1)、管程所定义的是公用数据结构,而进程定义的是私有数据结构

(2)、管程把共享变量上的同步操作集中起来统一管理,而临界区却分散在每一个进程中

(3)、管程是为了解决进程共享资源的互斥而建立的,而进程是为了占有系统资源和实现系统并发性而引入的

(4)、管程被欲使用共享资源的所有 进程所调用,管程和调用它的进程不能并行;而进程之间能够并行工作,并发性是其固有的特性

(5)、管程可作为语言或者操作系统成分,不必创建或者撤销;而进程有生命周期,由创建而产生至撤销便消亡

进程通信

并发进程之间的交互必须满足两个基本要求:同步和通信

  1. 高级进程通信有哪几类?各自是如何实现进程间通信的?
    消息或邮箱机制则无论接收进程是否已准备好接收消息,发送进程都将把所要发送的消息送入缓冲区或邮箱。这里,消息(message)是用来区别于命令(command)或指令(instruction)等用语的。除了表示所交换的数据传递大量信息之外,消息还具有两互相通信的进程地位平等的意思。
    消息缓冲机制,消息缓冲机制中所使用的缓冲区为公用缓冲区,

死锁

死锁:指多个进程因竞争二个资源造成的一种僵局,若无外力的作用,这些进程将永远不能再向前推进。

  1. 计算机系统产生死锁的根本原因?

由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。

相关文章:

同步、通信、死锁

基础概念竞争资源引起两个问题死锁:因资源竞争陷入永远等待的状态饥饿:一个可运行程序由于其他进程总是优先于它,而被调用程序总是无限期地拖延而不能执行进程互斥:若干进程因相互争夺独占型资源而产生的竞争关系进程同步&#xf…...

【聚类】谱聚类解读、代码示例

【聚类】谱聚类详解、代码示例 文章目录【聚类】谱聚类详解、代码示例1. 介绍2. 方法解读2.1 先验知识2.1.1 无向权重图2.1.2 拉普拉斯矩阵2.2 构建图(第一步)2.2.1 ϵ\epsilonϵ 邻近法2.2.2 k 近邻法2.2.3 全连接法2.3 切图(第二步&#xf…...

最牛逼的垃圾回收期ZGC(1),简介

1丶什么是ZGC? ZGC是JDK 11中引入的一种可扩展的、低延迟的垃圾收集器。ZGC最主要的特点是:在非常短的时间内(一般不到10ms),就可以完成一次垃圾回收,而且这个时间是与堆的大小无关的。另外,ZGC支持非常大…...

微服务的Feign到底是什么

Feign是什么 分区是一种数据库优化技术,它可以将大表按照一定的规则分成多个小表,从而提高查询和维护的效率。在分区的过程中,数据库会将数据按照分区规则分配到不同的分区中,并且可以在分区中使用索引和其他优化技术来提高查询效…...

JavaScript 正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。什么是正则表达式?正则表达式是由一…...

【批处理脚本】-1.15-文件内字符串查找命令find

"><--点击返回「批处理BAT从入门到精通」总目录--> 共7页精讲(列举了所有find的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,…...

【手撕面试题】JavaScript(高频知识点二)

目录 面试官&#xff1a;请你谈谈JS的this指向问题 面试官&#xff1a;说一说call apply bind的作用和区别&#xff1f; 面试官&#xff1a;请你谈谈对事件委托的理解 面试官&#xff1a;说一说promise是什么与使用方法&#xff1f; 面试官&#xff1a;说一说跨域是什么&a…...

Web学习1_HTML

在学校期间学的Web知识忘了一些&#xff0c;很多东西摸棱两可&#xff0c;现重新系统的学习一下。 首先下载安装完vsc后并下载拓展文件live server&#xff08;模拟一个服务器&#xff09; Auto Rename Tag&#xff08;在写网页时&#xff0c;自动对齐前后标签&#xff09;在设…...

华为OD机试真题Java实现【靠谱的车】真题+解题思路+代码(20222023)

靠谱的车 题目 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。 出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。 比如: 23再多一块钱就变为25; 39再多一块钱变…...

【C++入门(下篇)】C++引用,内联函数,auto关键字的学习

前言&#xff1a; 在上一期我们进行了C的初步认识&#xff0c;了解了一下基本的概念还学习了包括&#xff1a;命名空间&#xff0c;输入输出以及缺省参数等相关的知识。今天我们将进一步对C入门知识进行学习&#xff0c;主要还需要大家掌握我们接下来要学习的——引用&#xf…...

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

2023年全国最新保安员精选真题及答案8

百分百题库提供保安员考试试题、保安职业资格考试预测题、保安员考试真题、保安职业资格证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 81.以下各组情形都属于区域巡逻中异常情况的是&#xff08;&#xff09;。 A&#x…...

JavaScript高级程序设计读书分享之6章——MapSet

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 Map 作为 ECMAScript 6 的新增特性&#xff0c;Map 是一种新的集合类型&#xff0c;为这门语言带来了真正的键/值存储机制。Map 的大多数特性都可以通过 Object 类型实现&#xff0c;但二者之间还是存在…...

改进的 A*算法的路径规划(路径规划+代码+毕业设计)

引言 近年来&#xff0c;随着智能时代的到来&#xff0c;路径规划技术飞快发展&#xff0c;已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等&#xff0c;然而传统的路径规划算法在复杂的场景的表现并不如人意&#xff0c;例…...

Tina_Linux存储性能参考指南

OpenRemoved_Tina_Linux_存储性能_参考指南 1 概述 1.1 编写目的 介绍TinaLinux 存储性能的测试方法和历史数据&#xff0c;提供参考。 1.2 适用范围 Tina V3.0 及其后续版本。 1.3 相关人员 适用于TinaLinux 平台的客户及相关技术人员。 2 经验性能值 Flash 性能与实…...

NCRE计算机等级考试Python真题(四)

第四套试题1、以下选项中&#xff0c;不属于需求分析阶段的任务是&#xff1a;A.需求规格说明书评审B.确定软件系统的性能需求C.确定软件系统的功能需求D.制定软件集成测试计划正确答案&#xff1a; D2、关于数据流图&#xff08;DFD&#xff09;的描述&#xff0c;以下选项中正…...

LeetCode每周刷题总结2.20-2.26

本栏目记录本人每周写的力扣题的相关学习总结。 虽然开新的栏目都没有完成 70.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 解题思路&#xff1a; 斐波那契数列递归 class Solution {…...

u盘里删除的文件可以恢复吗?分享解决方法

u盘里删除的文件可以恢复吗?不知道使用过U盘的你&#xff0c;是否遇到过这样的问题呢?其实正常情况下&#xff0c;在电脑中操作u盘&#xff0c;并删除相关的文件&#xff0c;删除的文件是不会经过电脑回收站的。想要找回就需要借助相关的恢复工具才能实现。下面小编给大家分享…...

十、vben框架如何使用table来写报表

在项目开发的过程中&#xff0c;有很多特殊的table样式&#xff0c;有的时候后端会用帆软来写报表&#xff0c;但是有的特殊的报表后端就不能支持实现了&#xff0c;那么前端是如何实现的呢&#xff0c;今天我们就来讲讲。 先上效果图&#xff1a; 本次使用的tsx组件来写的报表…...

jQuery:入门

jQuery 入门 Date: January 19, 2023 目标&#xff1a; 能够说出什么是 jQuery 能够说出 jQuery 的优点 能够简单使用 jQuery 能够说出 DOM 对象和 jQuery 对象的区别 jQuery 概述 JavaScript 库 仓库&#xff1a; 可以把很多东西放到这个仓库里面。找东西只需要到仓库里…...

用Python+OpenCV手把手实现Prewitt边缘检测(附完整代码与效果对比图)

用PythonOpenCV手把手实现Prewitt边缘检测&#xff08;附完整代码与效果对比图&#xff09; 边缘检测是计算机视觉中最基础也最关键的预处理步骤之一。想象一下&#xff0c;当你需要让计算机"看清"一张照片中的物体轮廓时&#xff0c;边缘检测算法就是它的"视觉…...

环境光遮蔽(Ambient Occlusion):揭秘那个让虚拟世界“有重量感“的阴影魔法

一、一个让我"开窍"的老木匠故事 我有个朋友是传统家具的修复师&#xff0c;他给我讲过一个让我至今难忘的故事。他说他刚入行时跟着一位 70 多岁的老木匠师父学习——师父让他做的第一件事不是雕花、不是榫卯——而是"看阴影"——这个看似奇怪的训练改变了…...

嘈杂工业场景下的自适应VAD与双码本声纹识别鉴权系统:基于端侧轻量化神经网络与向量量化(VQ)重构

在大型化工车间、能源集控中心以及金融极密隔离库房中&#xff0c;离线声纹识别是物理访问控制和身份安全核验的重要生物特征屏障。然而&#xff0c;在环境本底噪声高达80dB以上的恶劣工业场景下&#xff0c;常规的语音活动检测&#xff08;VAD&#xff09;会频繁误触&#xff…...

碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理

碧蓝航线自动化脚本终极指南&#xff1a;3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...

AI学习 - 大模型基础入门

AI学习 - 大模型基础入门 从零开始&#xff1a;Ollama 安装 → 本地模型运行 → Python 代码接入 → 理解核心概念 摘要 本文记录了在 Windows 上使用 Ollama 部署本地大模型、并通过 Python 代码接入调用的完整过程。内容涵盖&#xff1a;Ollama 安装与模型拉取、大模型基础概…...

浏览器指纹识别机制深度剖析与反识别技术实现

一、浏览器指纹技术基础认知1.1 浏览器指纹的核心定义在数字化时代&#xff0c;每一台接入互联网的设备都会留下独特的数字标识&#xff0c;浏览器指纹便是其中最关键的识别凭证之一。浏览器指纹是网站通过 JavaScript 脚本、HTTP 请求头、硬件接口调用等多种技术手段&#xff…...

yolo视频识别 车辆速度估计识别 yolo11视频实时速度测量与测速估计

文章目录YOLOv11&#xff1a;视频实时速度测量与测速估计一、YOLOv11概述二、速度测量原理三、距离测量方法四、应用场景五、实践案例以下是关于使用YOLOv11进行视频实时速度测量与测速估计的介绍&#xff1a; YOLOv11&#xff1a;视频实时速度测量与测速估计 随着计算机视觉…...

别再死记硬背了!用UE材质里的点积、叉积,5分钟搞定模型表面动态光效

用UE材质玩转动态光效&#xff1a;点积、叉积实战指南第一次接触UE材质编辑器时&#xff0c;看到那些密密麻麻的数学节点总让人头皮发麻。特别是"点积"、"叉积"这些听起来就很高深的术语&#xff0c;很容易让美术背景的创作者望而却步。但你知道吗&#xf…...

总线式智能提示灯系统设计:从恒流驱动到模块化架构

1. 项目概述&#xff1a;从传统到智能的剧场提示灯系统革新在剧场、演播室或者大型活动现场的后台&#xff0c;如果你待过&#xff0c;一定对那套“红灯停&#xff0c;绿灯行”的提示灯系统不陌生。导演或舞台监督通过对讲机喊“Standby”&#xff08;准备&#xff09;&#xf…...

CTF出题人视角:从NewStarCTF 2023的WEB题,聊聊PHP特性与Flask Debug的那些‘坑’

CTF出题艺术&#xff1a;从PHP特性到Flask Debug的攻防博弈 当一道精心设计的CTF题目被成功破解时&#xff0c;出题人与解题者之间往往存在一场无声的思维交锋。作为NewStarCTF 2023 WEB方向的出题人&#xff0c;我想通过复盘"Begin of PHP"和"ErrorFlask"…...