操作系统之《PV操作》【知识点+详细解题过程】

1、并发进程 :

并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。

(1)并发进程——互斥性:

进程互斥是指若干个进程因相互争夺独占型资源时所产生的竞争制约关系。

(2)并发进程——同步性:

进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。

(3)两者关系:

进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。

2、临界区管理:

(1)并发进程中与共享变量有关的程序段叫“临界区”,指进程中用于访问共享资源的那段代码。

(2)共享变量代表的资源叫“临界资源”。

(3)为了保证临界资源的正确使用,可以把临界资源的访问过程分成以下几部分:  

  • 进入区—增加在临界区前面的一段代码,用于检查欲访问的临界资源此刻是否被访问。
  • 退出区—增加在临界区后面的一段代码,用于将临界资源的访问标志恢复为未被访问标志。

3、临界区(互斥)问题的几类方法:

 (1)软 件 方 法

 (2)硬 件 方 法

 (3)P、V 操 作

  • 设s为一个记录型数据结构,一个分量为整形量value,另一个为信号量队列list为等待此类资源的指针。
  •  P(s);将信号量s减去l,若结果小于0,则调用P(s)的进程被置成等待信号量s的状态。
  •  V(s):将信号量s加1,若结果不大于0,则释放一个等待信号量s的进程。

4、习题演练:

1、在一个盒子里,混装了数量相等的黑白围棋子。现在用自动分拣系统把黑子、白子分开,设分拣系统有二个进程P1 和P2,其中P1 拣白子;P2 拣黑子。规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。试写出两进程P1 和P2 能并发正确执行的程序。

main(){Semaphore mutex,S1,S2;mutex=1;S1=1;S2=0;conbegin;Process P1(){While(1){P(S1);P(mutex);{捡白子}V(mutex);V(S2);}}While(1){Process P2(){P(S2);P(mutex);{捡黑子}V(mutex);V(S1);}}conend;
}

2、系统中有二个进程WriteData和ReadData,有一个缓冲区BUF。假设BUF中最多可放5个信息,初始值有2个信息。WriteData进程负责输入信息并送入BUF中,ReadData进程负责取出BUF中的信息并输出。编写实现WriteData和ReadData的同步与互斥的算法程序。

main(){Semaphore mutex,empty,message;mutex=1;empty=3;message=2;conbegin;Process Write(){While(1){P(empty);P(mutex);{输入信息}V(mutex);P(message);}}While(1){Process Read(){P(message);p(mutex);{输出信息}V(mutex);V(empty);}}conend;}

 3、设公共汽车上有一个司机和一个售票员,它们的活动如下:
司机:启动车辆,正常行车,到站停车。
售票员:开车门、关车门,售票,
车辆初始状态:停放在总站、车门关闭、乘客还未上车
要求:当发车时间到,售票员开车门、乘客上(或下)车、关门后,司机才能启动车辆,售票员开始售票;当到站后,司机停车后,售票员才能打开车门,乘客下车、关门。

Semaphore: S_stop,S_run; //定义同步信号量S_stop=1;S_run=0; // 据车辆初始状态设初值cobegin{driver ( );busman ( );}coendprocess driver ( ){while(true){P(S_run)启动车辆;正常行车;到站停车;V(Sstop);} }process busman (){while(true){P(Sstop);开车门;上下乘客;关车门;V(S_run);售票;}}

4、一个网上购物平台,假设有三类职员:

(1)接单员,负责做接收顾客采购商品清单的工作:

(2)打包员,负责顾客购置商品的打包;

(3)快递发货员,负责把包裹发送给顾客。

每类职员看做一个进程,用同步机制编写出能让这三类职员正确并发的工作程序。(接单员进程OrderTaker();打包员进程Packer();快递发货员进程Courier())

main(){Semaphore text,goods,car;text=1,goods=0,car=0;conbegin;Process OrderTaker(){While(){P(text);接收清单;V(goods);}}Process Packer(){While(1){P(goods);打包商品;V(car);}}Process Courier(){While(1){P(car);发货;V(text);}}conend;
}

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

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

相关文章

ingress相关yaml文件报错且相关资源一切正常解决方法

今天在执行ingress相关文件的时候莫名其妙报错了,问了别人得知了这个方法 执行ingress相关文件报错 01.yaml是我自己创建关于ingress的yaml文件 报错信息 且相关资源一切正常 解决方法 kubectl get validatingwebhookconfigurations删除ingress-nginx-admissio…

在Qt中,直接include <moc_xxxxx.cpp> 为什么不会出现符号冲突的错误?

在逛Qt官方社区的时候看到这样一个帖子: https://forum.qt.io/topic/117973/how-does-include-moc_-cpp-work 大概的意思是moc_xxx.cpp如果已经被编译器编译,那么在另一个cpp文件中include同一个moc_xxx.cpp应该出现符号冲突才对,但是Qt却能正…

【RNN练习】LSTM-火灾温度预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前期准备工作 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn1. 导入数据 data pd.read_cs…

汽车抬头显示器HUD阳光倒灌实验太阳光模拟器

简述 HUD阳光倒灌实验是评估汽车抬头显示器(HUD)在强烈日照条件下的性能表现的一种测试方法。该实验通过模拟太阳光照射,检测HUD在阳光直射下的显示效果,以确保驾驶者在强烈日照下仍能清晰地看到HUD显示的信息,从而提…

【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构

更多项目点击👆👆👆完整项目成品专栏 【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构 获取源码方式项目说明:文件包含:项目运行环境项目运行截图 获取源码方式 加Q群…

【地质灾害监测实现有效预警,44人提前安全转移】

6月13日14时,国信华源地质灾害监测预警系统提前精准预警,安全转移10户44人。 该滑坡隐患点通过科学部署国信华源裂缝计、倾角加速度计、雨量计、预警广播等自动化、智能化监测预警设备,实现了对隐患点裂缝、位移、降雨量等关键要素的实时动态…

DBdoctor产品介绍

基本信息 DBdoctor是一款企业级数据库监控、巡检、性能诊断、SQL审核与优化平台,致力于解决一切数据库性能问题。采用eBPF技术可对数据库做细粒度的扫描,帮助您一分钟内找到数据库性能问题,实现性能诊断百倍提效。针对数据库性能诊断门槛高、…

信息化与农业生产的深度融合

信息化与农业生产的深度融合 信息化与农业生产的深度融合,是现代农业发展的一个重要趋势,它不仅促进了农业生产效率的显著提升,还为实现农业可持续发展和精准管理提供了强有力的支撑。这一过程不仅仅是技术的简单叠加,更是农业生…

自研网关架构设计

网关项目 1. 了解网关网关横向对比为什么自研网关 2. 架构设计技术栈技术要点异步化设计使用缓存缓冲合理使用串行化吞吐量为王合适的工作线程 架构图 1. 了解网关 概念 访问数据、业务逻辑或功能的 “前门”负责处理接受和处理调用过程中的所有任务 类型 RESTful APl 使用…

基于DPU的Ceph存储解决方案

1. 方案背景和挑战 Ceph是一个高度可扩展、高性能的开源分布式存储系统,设计用于提供优秀的对象存储、块存储和文件存储服务。它的几个核心特点是: 弹性扩展:Ceph能够无缝地水平扩展存储容量和性能,只需添加新的存储节点即可&am…

探索绿色消费新纪元:消费增值模式

大家好!我是来自一家备受瞩目的科技公司的产品经理,我叫吴军。今天,我非常荣幸能与大家分享一种正在市场上引起广泛关注的创新商业模式——消费增值模式。 近年来,随着环保意识的日益增强,绿色消费逐渐成为了新时代的消…

【思科】IPv6 过渡技术 - IPv6 in IPv4隧道

【思科】IPv6 过渡技术 - IPv6 in IPv4隧道 实验要求实现思路IPv6 in IPv4 与 GRE 不同点注意点配置R1基础配置OSPFv3 局域网可达 R2基础配置局域网环境(OSPFv3):IPv6 网络IPv6 in IPv4隧道 R3R4基础配置局域网环境(OSPFv3):IPv6 网络IPv6 in IPv4隧道 R…

css做旋转星球可举一反三

<!DOCTYPE html> <html lang"en"><head> <meta charset"UTF-8" /> <title>旋转的星球</title> <style type"text/css">.box {/*position: relative;*/position: absolute;width: 139px;height: 139p…

菜籽桌面4.5.0~4.5.1常见问题解答

目录 如何刷机&#xff1f; 刷机失败&#xff1f; 无法方控&#xff1f; 无法画中画? 原车音乐跟我安装的音乐一起播放&#xff1f; 原车音乐停了&#xff0c;我安装的软件也跟着没声音了&#xff1f; 调节声音时忽大忽小&#xff1f; 怎么安装软件&#xff1f; 软件…

访问外网的安全保障——反向沙箱

反向沙箱作为一种网络安全技术&#xff0c;其核心理念在于通过构建一个隔离且受控的环境&#xff0c;来有效阻止潜在的网络威胁对真实系统的影响。在当今日益复杂的网络环境中&#xff0c;如何借助反向沙箱实现安全上网&#xff0c;已成为众多用户关注的焦点。 随着信息化的发…

net Framework OAuth2.0

grant_type client_credentials 客户端凭证password 密码模式 用于资源所有者密码凭据token 隐藏式 、 简化式 简化模式又称为隐式授权码模式&#xff0c;它是授权码模式的一个简化版本authorization_code 授权码 A. 第三方程序向资源拥有者(用户)发送授权请求&#xf…

[Cloud Networking] VLAN

1 为什么需要 VLAN(Virtual Local Area Network) VLAN是一个逻辑网络&#xff0c;VLAN将设备/用户进行逻辑分组&#xff0c;VLAN需要在Switch上创建。为什么需要这样呢&#xff1f;为何不能所有设备都在同一个网络&#xff1f; 如下网络&#xff0c;如果设备过多&#xff0c;…

计算机网络课程实训:局域网方案设计与实现(基于ensp)

文章目录 前言基本要求操作分公司1分公司2总部核心交换机配置实现内部服务器的搭建acl_deny部分用户与服务器出口出口防火墙配置 前言 本篇文章是小编实训部分内容&#xff0c;内容可能会有错误&#xff0c;另外ensp对电脑兼容性及其挑剔&#xff0c;在使用之前一定要安装好。…

找不到xinput1_3.dll怎么办,实测有效的几种方法分享

在日的使用电脑过程中&#xff0c;我们经常会遇到各种各样的问题。其中之一就是找不到xinput1_3.dll文件。这个问题可能会影响到我们的游戏体验&#xff0c;甚至导致电脑无法正常运行。那么&#xff0c;又该如何解决这个问题呢&#xff1f;小编将全面解析找不到xinput1_3.dll对…

K8S 角色/组件及部署方式的简单概述

1.宏观架构图 2.角色详情 2.1 Master(Controller Plane) 早期是叫 Master 节点&#xff0c;后期改名为 Controller Plane&#xff0c;负责整个集群的控制和管理 Master 不会干活的(当然你让它干也是会干的&#xff0c;涉及到污点容忍)&#xff0c;而是起到访问入口&#xff…