【操作系统】PV操作模型总结

·根本方法:行为所需资源、行为与行为前后关系的图分析法

1.0顺序执行模型

        ·特点:(1)多进程之间的执行具有牵制性(2)每个进程执行内容不复杂,强调进程之间的执行顺序。

        ·分析方法:有向图分析;结点表示进程,有向线段表示执行顺序

        ·实现方法:(1)前V后P(2)每个有向线段代表一个资源,用来完成执行的先后顺序的制约

2.0生产者消费者类模型(ProducerCustomerModel)

        ·特点:(1)资源由生产者生产,消费者消费(2)生产者的生成行为受消费者和消费行为依托于资源存在着相互受制的关系(3)生产者的数量可以不唯一且消费者的数量也可以不唯一(4)缓冲区——互斥访问(5)进程的生产行为和消费行为可以需要多个资源分步完成(例如:和尚喝水题)

2.1 PCM.多生产者消费者问题

        ·例题:

2.2PCM.多资源生产消费行为问题

        ·例题:和尚喝水

        某寺庙有小和尚、老和尚若干,有一水缸,由小和尚提水入缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为3个。每次入缸取水仅为1桶水,且不可同时进行。 试给出有关从缸取水、入水的算法描述。

2.3PCM.资源选择问题

        ·例题:吸烟者问题

        ·方法:消费者的顺序消费行为由整型的同余数标志决定,生产者改变同余数值,消费者不可更改。

2.4PCM.进程并行问题

        ·方法:计数标记特殊对象,特殊对象行为改变资源的共享状态

        ·例题:过桥问题(简单)---->读者写者(难)

        有桥如图所示。车流方向如箭头所示。回答如下问题:
        假设该桥上不允许两车交会,但允许同方向多个车一次通过(即桥上可有多个同方向行驶的车)。试用信号灯的P、V操作实现桥上交通管理。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​ 

 

2.5PCM.缓冲区保留问题

        ·例题:生产自行车问题

        设自行车生产线上有一只箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮;又设有3 个工人,其活动分别如下,试分别用信号量与PV操作实现三个工人的合作,要求解中不含死锁。

3.1PCM.多任务问题

        ·原理:1.0&2.0&2.1

        ·方法:二维时序分析图

        ·例题:输入打印问题

如图所示,三个合作进程P1、P2、P3,它们都需要通过同一设备输入各自的数据a、b、c,该输入设备必须互斥地使用,而且其第一个数据必须由P1进程读取,第二个数据必须由P2进程读取,第三个数据则必须由P3进程读取。然后,三个进程分别对输入数据进行下列计算(如图-2)。最后,P1进程通过所连接的打印机将计算结果x、y、z的值打印出来。请用信号量实现它们的同步。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15414.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试 在开发 SpringBoot 应用程序时,我们通常需要与数据库进行交互。为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,以测试我们的应用程序是否能…

Gof23设计模式之装饰者模式

1.概述 定义 指在不改变现有对象结构的情况下,动态地给对象增加一些职责(即增加其额外功能)的模式。 例子 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加…

springmvc相关知识点记录

1、若依框架:v—haspermi条件写上就要保证内容包含在getinfo的列表里面,否则不显示按钮 2、当elmentui中只有一个input的时候,空值按enter键会刷新整个页面,需要在form标签中加上submit.native.prevent来阻止刷新页面 3、 spri…

VBA小工具:EXCEL如何批量给每行下面插入n个空行?

目录 1EXCEL本身的方法 2 VBA实现1: 2.1 粗糙代码 2.2 需要注意的问题 3 VBA实现2: 3.1 改进代码:根据用户自己先选中的区域,进行插入空行操作。 3.1.1 用户可在EXCEL里选中区域,而不是改VBA代码 3.1.2 自动识…

js逆向补环境-调试工具vscode与nodejs使用之无环境联调

目录 一、啊哈一、Nodejs安装1、nodejs最新版本的安装(windows)2、旧版nodejs更新成最新版本(windows)3、nodejs安装(linux) 二、vscode安装使用(windows)1、下载安装vscode2、vscode运行插件Code Runner安…

微信小程序视图层莫名出现”竖线“

写完视图层后&#xff0c;发现页面上莫名其妙的出现了一些“竖线”&#xff0c;如下图所示&#xff1a; 这段html代码是这样写的&#xff1a; <view class"other-des"><view class"section"><text class"section-num">{{cou…

Python实现PSO粒子群优化算法优化Catboost回归模型(CatBoostRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

抖音seo源码开发部署技术分享(一)

目录 开发概述 自研开发者介绍 开发要求&#xff1a; 技术开发布局 源码部署及搭建分享 部署环境搭建 代码开发示例 请求样例 响应样例&#xff1a; 代码展示样例 开发概述 开放平台基于开发者诉求和相关平台规则&#xff0c;提供了两种开放模式&#xff1a;能力开放…

Python零基础入门(七)——Python中的选择和循环语句

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python入门专栏&#xff1a;《Python入门》欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; 码字不易&#xff0c;如果觉得文章不…

day69_Vue进阶

今日内容 零、 复习昨日 零、 复习昨日 nginx 静态服务器(动静分离)反向代理服务器(代理后端服务器)负载均衡异步 前端工程化 —> java代码工程 一、使用Vue-Cli搭建Vue项目 1.1 什么是vue-cli cli: Command Line 命令行工具&#xff0c;vue-cli就是vue的命令行工具&#xf…

LeetCode[面试题17.14]最小的K个数

难度&#xff1a;中等 题目&#xff1a; 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4]提示&#xff1a; 0 < len(arr) < 1000000 <…

开源教育对话大模型 EduChat

文章目录 一、&#x1f680; 前言二、&#x1f916; 本地部署三、&#x1f468;‍&#x1f4bb; 使用示例四、&#x1f50e; 总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、&#x1f680; 前言 教育是一项对人类身心发展产生影响的社会实践…