解释串行执行或事务(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! 个有效的串行调度。
广告