并发处理 优先图和多重图

    • 优先图(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.mzph.cn/news/867830.shtml

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

相关文章

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码&#xff0c;系统基于thinkphp框架开发&#xff0c;功能已全完善&#xff0c;可灵活对接其他上游渠道接口&#xff0c;默认对接了大猿人接口&#xff0c;另外可无限制自定义创建充值页面&#xff0c;首页支持后台自定义修改&#xff0c;支持三级分销&…

史上最全的自抗扰控制(ADRC)学习资料

史上最全的自抗扰控制&#xff08;ADRC&#xff09;学习资料 需要的私信我~ 需要的私信我~ 需要的私信我~ ​ 本文将作者近些年来学习ADRC算法的学习资料进行汇总&#xff0c;整理了这一版相对较全的学习资料&#xff0c;包含参考文献以及仿真案例&#xff0c;适合初学者入门&…

6、Redis系统-数据结构-05-整数

五、整数集合&#xff08;Intset&#xff09; 整数集合是 Redis 中 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素&#xff0c;并且元素数量不大时&#xff0c;就会使用整数集合这个数据结构作为底层实现。整数集合通过紧凑的内存布局和升级机制&#xff0c;实现了…

HiAI Foundation开发平台,加速端侧AI应用的智能革命

如果您是一名开发者&#xff0c;正在寻找一种高效、灵活且易于使用的端侧AI开发框架&#xff0c;那么HarmonyOS SDKHiAI Foundation服务&#xff08;HiAI Foundation Kit&#xff09;就是您的理想选择。 作为一款AI开发框架&#xff0c;HiAI Foundation不仅提供强大的NPU计算能…

直击2024 WAIC现场:关于大模型,热情、焦虑与冷静同在

世博展览馆内人们的热情&#xff0c;与世博中心内参与论坛的人们&#xff0c;心情似乎并不成正比。 展馆内人们看到的大模型加速落地是表象&#xff0c;也是结果&#xff1b;而论坛里的企业家和人工智能学者们则更关注大模型的未来发展方向和商业化进程&#xff0c;以及AI安全…

计算机的错误计算(二十三)

摘要 计算机的错误计算&#xff08;二十二&#xff09;阐明&#xff1a;对于结果应该为 0的算式&#xff0c;即使增加计算精度&#xff0c;也得不出0. 针对 &#xff0c;本节给出一种解决方案。 计算机的错误计算&#xff08;十九&#xff09;展示了计算机对 的错误计算&…

【0基础学爬虫】爬虫框架之 feapder 的使用

前言 大数据时代&#xff0c;各行各业对数据采集的需求日益增多&#xff0c;网络爬虫的运用也更为广泛&#xff0c;越来越多的人开始学习网络爬虫这项技术&#xff0c;K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章&#xff0c;为实现从易到难全方位覆盖&#xff0c;特设【0…

Python遥感开发之时序数据的线性插值

Python遥感开发之时序数据的线性插值 0 历史博客1 实现思路2 代码实现3 效果展示 前言&#xff1a;在遇到空间数据的时候&#xff0c;尤其是哨兵、Landsat或者MODIS数据会出现局部值的空缺&#xff0c;为了解决这些值的空缺&#xff0c;通常采用插值的方法&#xff0c;本博客使…

Python编程学习笔记(1)--- 变量和简单数据类型

1、变量 在学习编程语言之前&#xff0c;所接触的第一个程序&#xff0c;绝大多数都是&#xff1a; print("Hello world!") 接下来尝试使用一个变量。在代码中的开头添加一行代码&#xff0c;并对第二行代码进行修改&#xff0c;如下&#xff1a; message "…

中国星坤X1224系列线对板连接器:小巧稳定,助力物联网终端高效运行

在物联网、电器和消防等领域&#xff0c;终端设备的安全稳定运行至关重要。为了满足这些领域对连接器高可靠性、小巧轻便和耐高温的需求&#xff0c;X1224系列线对板连接器应运而生。这款连接器以其独特的设计和卓越的性能&#xff0c;成为了终端设备中不可或缺的一部分。 一、…

Ubantu22.04 通过FlatPak安装微信

Ubuntu22.04 下使用Flatpak稳定安装微信&#xff01; 国际惯例&#xff0c;废话不多说&#xff0c;先上效果图。为啥使用Flatpak,因为Wechat官方只在FlatPak发布了最新的版本。之前使用了Wine以及Dock安装Wechat,效果都不是很理想&#xff0c;bug很多。所以使用了FlatPak。 Fl…

免费的鼠标连点器电脑版教程!官方正版!专业鼠标连点器用户分享教程!2024最新

电脑技术的不断发展&#xff0c;许多用户在日常工作和娱乐中&#xff0c;需要用到各种辅助工具来提升效率或简化操作&#xff0c;而电脑办公中&#xff0c;鼠标连点器作为一种能够模拟鼠标点击的软件&#xff0c;受到了广大用户的青睐。本文将为大家介绍一款官方正版的免费鼠标…

一.2.(3)放大电路的图解分析方法和微变等效电路分析方法;

放大电路的主要分析方法:图解法、微变等效电路法 这里以共射放大电路为例 (1) 图解法: 1.静态分析 首先确定静态工作点Q,然后根据电路的特点,做出直流负载线,进而画出交流负载线,最后,画出各极电流电压的波形。求出最大不失真输出电压。 估算IBQ&#xff0c;然后根据数据手册里…

09.QT控件:按钮类控件

1. QPushButton 在QT中使⽤ QPushButton 表⽰⼀个按钮。QPushButton 继承⾃ QAbstractButton&#xff0c;这个类是⼀个抽象类&#xff0c;是其他按钮的⽗类。 &#xff08;1&#xff09;QAbstractButton 中&#xff0c;和 QPushButton 相关性较⼤的属性&#xff1a; &#xf…

STM32-Unix时间戳和BKP备份寄存器以及RTC实时时钟

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. Unix时间戳1.1 Unix时间戳简介1.2 UTC/GMT1.3 时间戳转换 2. BKP备份寄存器2.1 BKP简介2.2 BKP基本结构2.3 BKP库函数 3. RTC实时时钟3.1 RTC简介3.2 RTC框图3.3 RTC基本结构3.4 硬件电路3.5 RTC操作注意事项3.6 R…

vue事件处理v-on或@

事件处理v-on或 我们可以使用v-on指令&#xff08;简写&#xff09;来监听DOM事件&#xff0c;并在事件触发时执行对应的Javascript。用法&#xff1a;v-on:click"methodName"或click"hander" 事件处理器的值可以是&#xff1a; 内敛事件处理器&#xff1…

Golang | Leetcode Golang题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; func _rob(nums []int) int {first, second : nums[0], max(nums[0], nums[1])for _, v : range nums[2:] {first, second second, max(firstv, second)}return second }func rob(nums []int) int {n : len(nums)if n 1 {return nums[0]}…

SSRF靶场通关合集

目录 前言 SSRF总结 1.pikachu 1.1SSRF(curl) 1.1.1http协议 1.1.2 file协议查看本地文件 1.1.3 dict协议扫描内网主机开放端口 1.2 SSRF&#xff08;file_get_content&#xff09; 1.2.1 file读取本地文件 1.2.2 php://filter/读php源代码 2.DoraBox靶场 前言 最近…

恢复出厂设置手机变成砖

上周&#xff0c;许多Google Pixel 6&#xff08;6、6a、6 Pro&#xff09;手机用户在恢复出厂设置后都面临着设备冻结的问题。 用户说他们在下载过程中遇到了丢失 tune2fs 文件的错误 。 这会导致屏幕显示以下消息&#xff1a;“Android 系统无法启动。您的数据可能会被损坏…

Linux服务器使用总结-不定时更新

# 查看升级日志 cat /var/log/dpkg.log |grep nvidia|grep libnvidia-common