并发处理 优先图和多重图

    • 优先图(Precedence Graph)
    • 视图可串性
    • 多重图(Polygraph)

优先图(Precedence Graph)

优先图用于冲突可串性的判断。

优先图结构:

  • 结点 (Node):事务;
  • 有向边 (Arc): Ti → Tj ,满足 Ti <s Tj;

存在Ti中的操作A1和Tj中的操作A2,满足A1在A2前,并且A1和A2是冲突操作(对同一个元素进行:读写、写读、写写)。

在这里插入图片描述

S 中,

  • 先考虑元素 A,r2(A) w2(A) r3(A) w3(A),很明显,r2(A) 和 w3(A) 、w2(A) 和 w3(A) 是冲突操作,所以画一条有向边,从 T2 指向 T3。
  • 再考虑元素 B,r1(B) w1(B) w2(B),r1(B) 和 w2(B)、w1(B) 和 w2(B) 是冲突操作,所以画一条有向边,从 T1 指向 T2。

在这里插入图片描述

给定一个调度S,构造S的优先图P(S),若P(S)中无环,则S满足冲突可串性。

视图可串性

在这里插入图片描述

在这里插入图片描述

如果按照conflict serializability,S1不可串,实际上S1可串。View serializability 解决了 Conflict serializability 过于严格这一问题。

S1和S2中任何事务的读操作的源都相同。

在这里插入图片描述

区别:

在这里插入图片描述

多重图(Polygraph)

视图可串性判断:多重图 (Polygraph)。
对于调度Z,其Polygraph为LP(Z)。

结构:

  • Node:事务+假想的事务Tb和Tf
  • Arcs:事务(包括Tb和Tf)之间

(1) Tb对所有DB元素执行写操作,构成DB初始状态
(2) Tf读所有DB元素,得到DB终态
(3) 建立Arcs

(3a) If wi(A) ⇒ rj(A) in S, add Ti → Tj

(3b) For each wi(A) ⇒ rj(A) do
consider each wk(A): [Tk ≠Tb]
- If Ti ≠Tb ∧ Tj ≠Tf then insert
Tk → Ti some new p
Tj → Tk
- If Ti =Tb ∧ Tj ≠Tf then insert
Tj → Tk
- If Ti ≠Tb ∧ Tj =Tf then insert
Tk → Ti

(3c) 对于每一对 Ti → Tj, 选择其中一个,将其在Polygraph中删除,
如果能使Polygraph成为无环图,则调度S是视图可串化的 (V-S)

在这里插入图片描述

在这里插入图片描述

多重图画法步骤

  • 先找出所有的 写->读 操作,注意读的是源头。wb(A)->r1(A),w2(A)->r3(A),w3(A)->rf(A) 这三对如红线所示,注意 wb(A) r3(A) 并不是一对,因为 r3(A) 读的源头是 w2(A) 而不是 wb(A)。
  • 再根据上一步找出的 写->读 操作,对每一个 写->读,找出所有其他事务中的写操作,
    – 如果写是 wb,如 wb(A)->r1(A),那么除了 wb(A) 以外其他对元素 A 的写操作有 w2(A),w3(A),由于 wb(A)->r1(A) 中 T1 是作为 “接收” 的一方,所以接下来由 T1 “发送” 到其他写的事务,即从 T1->T2,T1->T3。如图中绿色线所示。
    – 如果读是 rf,如 w3(A)->rf(A),那么除了 w3(A) 和 wb(A) 以外其他对元素 A 的写操作有 w1(A),w2(A),由于 w3(A)->rf(A) 中 T3 是作为 “发送” 的一方,所以接下来由 T3 “接收” 来自其他写的事务,即从 T1->T3,T2->T3。如图中紫色线所示。
    – 如果写不是 wb,读不是 rf,如 w2(A)->r3(A),那么除了 w2(A) 和 wb(A) 以为其他对元素 A 的写操作有 w1(A),w3(A),由于 w2(A)->r3(A) 中 T2 是 “发送” 的一方,所以接下来由 T2 “接收” 来自其他写的事务,即从 T1->T2,注意标号不为 0,为 1。此外 w2(A)->r3(A) 中 T3 是 “接收” 的一方,所以接下来由 T3 “发送” 到其他写的事务,即从 T3->T1,注意标号不为 0,为 1。如图中黑色线所示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用redis Zset实现 排行榜功能 配合xxl-job持久化每一个赛季的排行榜

zset 可以排序 使用xxl-job实现定时任务 对历史排行榜持久化到数据库 排行榜有当前赛季排行版和历史排行榜 当前赛季排行榜利用redis 中的SortSet 数据结构 获取 每个月的 月初 利用xxl-job的定时任务持久化化上一个月的排行榜信息 并删除redis中的数据 当排行榜数据量巨大时…

【5G VoNR】VoNR流程简述

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

移动校园(5):课程表数据获取及展示

首先写下静态页面&#xff0c;起初打算做成一周的课表&#xff0c;由于是以小程序的形式展现&#xff0c;所以显示一周的话会很拥挤&#xff0c;所以放弃下面的方案&#xff0c;改作一次显示一天 改后结果如下&#xff0c;后期还会进行外观优化 真正困难的部分是数据获取 大家大…

拆分Transformer注意力,韩国团队让大模型解码提速20倍|大模型AI应用开始小规模稳步爆发|周伯文:大模型也有幻觉,全球AI创新指数公布

拆分Transformer注意力&#xff0c;韩国团队让大模型解码提速20倍AI正在颠覆AI上市不到两年&#xff0c;蜗牛游戏可能要退市了&#xff1f;世界人工智能大会结束了&#xff0c;百花齐放&#xff0c;但也群魔乱舞“串联OLED”被苹果带火了&#xff0c;比OLED强在哪里&#xff1f…

文化财经macd顶底背离幅图指标公式源码

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26); DEA:EMA(DIFF,9); MACD:2*(DIFF-DEA),COLORSTICK; JC:CROSS(DIFF,DEA); SC:CROSSDOWN(DIFF,DEA); N1:BARSLAST(JC)1; N2:BARSLAST(SC)1; HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值 HH2:VALUEWHE…

MySQL:视图、用户管理、C/C++/图形化界面链接访问数据库、网页逻辑

文章目录 1.视图1.1 视图的基本使用1.2 视图的基本规则 2.用户管理2.1 创建、删除、修改用户2.2 数据库权限 3.C/C/图形化界面链接访问数据库3.1 准备工作及常用接口介绍3.2 图形化界面访问MySQL 4.用户逻辑(注册&&登录) 1.视图 视图是一个虚拟表&#xff0c;其内容由…

springboot苏桦旅游管理系统-计算机毕业设计源码02123

摘要 旅游业在全球范围内不断发展&#xff0c;为了提供高效的旅游管理和服务&#xff0c;开发一个旅游管理系统具有重要意义。本文旨在设计和实现该旅游管理系统&#xff0c;以满足用户和管理员的需求。该系统采用Spring Boot作为后端框架&#xff0c;利用其简化的开发流程和强…

ComfyUI如何高效率使用多Lora

Efficient 工作流 {"last_node_id": 29,"last_link_id": 56,"nodes": [{"id": 26,"type": "LoRA Stacker","pos": [540,270],"size": {"0": 320,"1": 322},"flag…

如何让代码兼容 Python 2 和 Python 3?Future 库助你一臂之力

目录 01Future 是什么? 为什么选择 Future? 安装与配置 02Future 的基本用法 1、兼容 print 函数 2、兼容整数除法 3、兼容 Unicode 字符串 03Future 的高级功能 1. 处理字符串与字节 2. 统一异常处理…

STM32-TIM定时器

本内容基于江协科技STM32视频内容&#xff0c;整理而得。 文章目录 1. TIM1.1 TIM定时器1.2 定时器类型1.3 基本定时器1.4 通用定时器1.4 高级定时器1.5 定时中断基本结构1.6 预分频器时序1.7 计数器时序1.8 计数器无预装时序1.9 计数器有预装时序1.10 RCC时钟树 2. TIM库函数…

路径跟踪算法之PID、PP、Stanley详细理解

一、前言 今天又来补作业了&#xff01; 在跟踪控制领域&#xff0c;PID&#xff08;Proportional-Integral-Derivative, 分别为比例、积分、微分&#xff09;、PP&#xff08; Pure-Puresuit, 纯跟踪&#xff09;、Stanley&#xff08;前轮反馈控制&#xff09;是三种最为常见…

02STM32软件安装新建工程

STM32软件安装&新建工程 1.软件安装&#xff1a;1.1Keil5 MDK安装1.2安装器件支持包离线安装支持包在线安装支持包 1.3软件注册&#xff1a;1.4安装驱动STLINK驱动JLink驱动在此文件夹下USB转串口 2开发方式&新建工程步骤&架构2.1STM32开发方式&#xff1a;库函数压…

线性系统理论及应用GUI设计及仿真

目录 1.控制系统的状态空间模型 1.1.状态空间模型 1.2 传递函数模型 1.3 传递函数转换为状态空间模型 1.4.状态空间模型转换为传递函数 1.5.状态空间模型转化为约当标准型 2.线性系统的时域分析 2.1.矩阵指数函数的计算 2.2.线型定常连续系统的状态空间模型求解 3.线…

《Nature》文章:ChatGPT帮助我学术写作的三种方式

图片翻译 ** 文章内容** 忏悔时间&#xff1a;我使用生成式人工智能&#xff08;AI&#xff09;。尽管在学术界关于聊天机器人是积极力量还是消极力量的争论不休&#xff0c;但我几乎每天都使用这些工具来完善我所写论文中的措辞&#xff0c;并寻求对我被要求评估的工作进行替…

Mysql-常用函数及其用法总结

1、字符串函数 测试用例如下&#xff1a; 1.1 CONCAT() 将多个字符串连接成一个字符串。 SELECT CONCAT(first_name, , last_name) AS full_name FROM users; -- 期望结果&#xff1a;John Doe, Jane Smith, Michael Johnson 1.2 SUBSTRING() 提取子字符串 SELECT SUBSTR…

算法012:将x减到0的最小操作数

将x减到0的最小操作数. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/minimum-operations-to-reduce-x-to-zero/ 这个题使用到的是滑动窗口。 乍一看&#xff0c…

纹波和噪声的介绍以及区别

纹波和噪声的介绍 纹波和噪声都是在电源输出中出现的信号波动&#xff0c;但两者存在明显的区别。   纹波&#xff1a;是附着于直流电平之上的包含周期性与随机性成分的杂波信号。在额定输出电压、电流的情况下&#xff0c;纹波指的是输出电压中的交流电压的峰值 。狭义上的纹…

生产调度:flowshop问题数学建模

接上一篇文章&#xff0c;在了解生产调度问题的背景和基本概念之后&#xff0c;我想先从比较基础的 flowshop和 jobshop 数学模型入手&#xff0c;理解实际调度过程中的问题求解思路。这一篇文章主要面向 flowshop 问题进行数学建模&#xff0c;对于这类比较经典的问题&#xf…

大语言模型基础

大语言基础 GPT : Improving Language Understanding by Generative Pre-Training 提出背景 从原始文本中有效学习的能力对于减轻自然语言处理中对监督学习的依赖至关重要。很多深度学习方法需要大量人工标注的数据&#xff0c;限制了它们在很多领域的应用&#xff0c;收集更…

【鸿蒙学习笔记】MVVM模式

官方文档&#xff1a;MVVM模式 [Q&A] 什么是MVVM ArkUI采取MVVM Model View ViewModel模式。 Model层&#xff1a;存储数据和相关逻辑的模型。View层&#xff1a;在ArkUI中通常是Component装饰组件渲染的UI。ViewModel层&#xff1a;在ArkUI中&#xff0c;ViewModel是…