解释串行执行或事务(DBMS 示例)


事务执行有三种可能的方式,如下所示:

  • 串行执行 - 在串行执行中,第二个事务只有在第一个事务完成后才能开始执行。这在单处理器系统上是可能的。

  • 并行执行 - 在并行执行中,两个事务可以同时开始执行。为此,我们需要多个处理器。

  • 并发执行 - 在并发执行中,第二个进程的执行甚至可以在第一个进程完成执行之前就開始。

让我们考虑两个事务 T1 和 T2。在并发执行中,CPU 执行事务 T1 的一些指令,然后移动到第二个事务并执行其指令一段时间,然后再次返回到第一个事务。

这个循环重复进行,直到两个事务的所有指令都执行完毕。这个过程称为上下文切换。

示例

以下是串行执行的示例:

让我们考虑两个事务 T1 和 T2,其中 T1 将 150 元从账户 A 转到账户 B,T2 将账户 A 的余额的 10% 转到账户 B。

  T1               T2
  Read(A)        Read(A)
  A=A-150        temp =0.1 *A
  Write(A)       A=A-temp
  Read(B)        Write(A)
  B=B+150        Read(B)
  Write(B)      B=B+temp
                 Write(B)

事务 T1 和 T2 的指令执行顺序称为调度。

可能的串行调度如下:

设 A=200,B=200

调度 S1 和 S2 保持数据库处于一致状态。

一般来说,如果系统由 n 个事务组成,那么我们可以生成 n! 个有效的串行调度。

更新于:2021年7月6日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告