进程管理(三态模型,PV操作详细讲解,经典例题)

2023-11-21 19:51

本文主要是介绍进程管理(三态模型,PV操作详细讲解,经典例题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人博客

文章目录

    • 进程的概念
      • 定义
      • 进程与程序的区别
    • 进程的状态及变换
    • 进程的同步和互斥
    • P,V操作
      • 互斥模型
      • 同步模型
      • 经典例题
      • pv操作的前驱图

进程的概念

定义

进程是程序在一个数据集合上运行的过程,它是学习通进行资源分配和调度的一个独立单位。它由程序块,进程控制块PCB和数据块三部分组成

进程与程序的区别

进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程。

程序是完成某个特定功能的一系列程序语句的集合,只要不被破话,程序就会永远存在。程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡,进程是系统进行资源分配和调度的独立单位,而程序不是

进程的状态及变换

进程有就绪态,运行态和阻塞态(等待态)
在这里插入图片描述
如何转换:

  1. 就绪态转换运行态:进程在就绪态时,唯一欠缺的是cpu的资源。当cpu调度这个进程时,进程就会从就绪态转变为运行态。
  2. 运行态转变为阻塞态:当进程是运行态时,需要等待某些io设备的处理或者其他事情的发生或提供的数据,进程就会运行态变为阻塞态。
  3. 阻塞态变为就绪态:当等待的资源或者事情发生时,则转变
  4. 运行态转变为就绪态:cpu的时间片用完了,有更高优先级的进程替代此进程时

进程的同步和互斥

同步的定义:

进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。

同步相当于跑得快的等跑的慢的一起到终点

互斥的定义:

进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。

互斥相当于多个人过独木桥 ,这里的独木桥就是临界资源

P,V操作

  • 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机,磁带机等
  • 临界区:每个进程中访问临界资源的那段代码称为临界区
  • 信号量:是一种特殊的变量
操作作用
p操作申请资源,可以理解为等待资源
v操作释放资源

在这里插入图片描述
上图的s是信号量,进行以下p操作,信号量就会减一。s的时候,进程就会被挂起,因为没有资源分配了。v操作释放资源,如果s<=0时说明阻塞队列里面还有队列再等待,会阻塞

互斥模型

多个进程共享一台打印机
pv操作是成对出现的
在这里插入图片描述
打印机就是一个资源

同步模型

在这里插入图片描述
下面的单缓冲区的意思是一次只能有一个执行操作
生产者生产产品,消费者消费产品,市场的个数只有一个。s1代表生产中的产品,s2代表市场中的产品。

经典例题

在这里插入图片描述
解题过程

  1. 这种题先确定是什么模型,由收银员一次只能服务一个购书者得,是同步模型
  2. 从简单的一方出发,由于收银员只有一个,逻辑肯定要简单,所以最好先做第二空
  3. 由于收银员需要等待第一个购书者来缴费,所以b1 为 p(s1),当收费成功后肯定是释放资源,叫下一个购书者来,所以b2 为V(S2).
  4. 再看第一空,当第一个购书者缴费时,需要呼叫收银员,所以a1为V(s1),第二个购物者来之后只能排队等

pv操作的前驱图

在这里插入图片描述
由前驱图写p,v操作:这里应该是只要正确理解了pv操作的含义了,是绝对好写的,这中题目的关键是:注意箭头的指向,比如d进程需要等待前面三个A,B,C都释放资源了才可以得到执行,所以前面有p(Sa),p(Sb),p(Sc).

这篇关于进程管理(三态模型,PV操作详细讲解,经典例题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W