工学

问答题设T1,几,几是如下的3个事务:  T1:A : = A + 2 ;  T2:A : = A * 2 ;  T3:A : = A **2 ; ( A<-A*A) 设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。

题目
问答题
设T1,几,几是如下的3个事务:   T1:A : = A + 2 ;   T2:A : = A * 2 ;   T3:A : = A **2 ; ( A<-A*A)  设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下函数模板定义:templateT2 plus T1 t1,T3 t3){retur

有如下函数模板定义: template<typename T1,typename T2,typename T3> T2 plus T1 t1,T3 t3){return t1+t3;} 则以下调用中正确是

A.plus(3,5L);

B.plus<>(3,5L);

C.plus<int>(3,5L);

D.plus<int,double>(3,5L);


正确答案:D
解析:本题考核函数模板的使用。C++中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管参数的类型如何:虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数T2没有出现在模板函数的形参列表中,所以在调用时不能省略,D选项的调用省略了T3,这是允许的。

第2题:

阅读下列说明,回答问题。

【说明】

现有事务T1,T2、L3它们对数值型数据A执行的操作分别如下:

T1;将A加1。

T2:将A加倍。

T3:输出A的值,并将A置为1。

假设T1、T2、T3可以并发执行。若A的初值为0,那么存在多少种可能的正确结果?


正确答案:根据排列组合原理三个事务一共有6种排列结果: T1→T2→T3 A的值为1 T1→T3→T2 A的值为2 T2→T1→T3 A的值为1 T2→T3→T1 A的值为2 T3→T1→T2 A的值为4 T3→T2→T1 A的值为3
根据排列组合原理,三个事务一共有6种排列结果: T1→T2→T3 A的值为1 T1→T3→T2 A的值为2 T2→T1→T3 A的值为1 T2→T3→T1 A的值为2 T3→T1→T2 A的值为4 T3→T2→T1 A的值为3

第3题:

阅读以下说明和关系表,回答问题1~3。

[说明]

设T1,T2,T3是如下三个事务,其中S为数据库中某个数据项,设S的初值为1。

T1: S:= S * S

T2: S:= S + 3

T3: S:= 6

若允许三个事务并行执行,请列出所有可能的正确结果。


正确答案:有6种可能的情况: (1)T1-T2-T3: S=6 (2)T1-T3-T2:S=9 (3)T2-T1-T3:S=6 (4)T2-T3-T1:S=36 (5)T3-T1-T2:S=39 (6)T3-T2-T1:S=81
有6种可能的情况: (1)T1-T2-T3: S=6 (2)T1-T3-T2:S=9 (3)T2-T1-T3:S=6 (4)T2-T3-T1:S=36 (5)T3-T1-T2:S=39 (6)T3-T2-T1:S=81

第4题:

事务T1,T2,T3分别对数据D1,D2,D3并发操作如下图所示,其中T1与T2问的并发操作存在的问题是 (1) 。T2与T3问的并发操作存在的问题是 (2) 。

1.


正确答案:不能重复读
不能重复读

第5题:

阅读以下说明和关系表,回答问题1~2,将解答填入对应的解答栏内。

[说明]

设T1、T2是如下两个事务:

T1:A=B+2

T2:B=A*B

A、B的初值分别是2和2。

假设T1和T2可以并发执行,且对T1、T2的调度不加限制,它们的并发执行可能产生哪几种结果?


正确答案:第一种调度:①读A=2B=2: (T1) ②A=B+2=4        (T1) ③写回A=4B=2 (T1) ④读A=4B=2 (T2) ⑤B=A*B=8 (T2) ⑥写回A=4B=8 (T2) 结果:A=4B=8 第二种调度:①读A=2B=2 (T2) ②B=A*B=4 (T2) ③写回A=2B=4 (T2) ④读A=2B=4 (T1) ⑤A=B+2=4 (T1) ⑥写回A=4B=4 (T2) 结果:A=4B=4 第三种调度:①读A=2B=2 (T1) ②读A=2B=2 (T2) ③A=B+2=4 (T2) ④B=A*B=4 (T2) ⑤写回A=4B=2 (T1) ⑥写回A=2B=4 (T2) 结果:A=2B=4 第四种调度:①读A=2B=2 (T2) ②读A=2B=2 (T1) ③B=A*B=4 (T2) ④A=B+2=4 (T1) ⑤写回A=2B=4 (T2) ⑥写回A=4B=2 (T1) 结果:A=4B=2 第五种调度:①读A=2B=2 (T1) ②A=B+2=4 (T1) ③读A=2B=2 (T2) ④B=A*B=4 (T2) ⑤写回A=4B=2 (T1) ⑥写回A=2B=4 (T2) 结果:A=2B=4 第六种调度:①读A=2B=2 (T2) ②B=A*B=4 (T2) ③读A=2B=2 (T1) ④A=B+2=4 (T1) ⑤写回A=2B=4 (T2) ⑥写回A=4B=2 (T1) 结果:A=4B=2
第一种调度:①读A=2,B=2: (T1) ②A=B+2=4        (T1) ③写回A=4,B=2 (T1) ④读A=4,B=2 (T2) ⑤B=A*B=8 (T2) ⑥写回A=4,B=8 (T2) 结果:A=4,B=8 第二种调度:①读A=2,B=2 (T2) ②B=A*B=4 (T2) ③写回A=2,B=4 (T2) ④读A=2,B=4 (T1) ⑤A=B+2=4 (T1) ⑥写回A=4,B=4 (T2) 结果:A=4,B=4 第三种调度:①读A=2,B=2 (T1) ②读A=2,B=2 (T2) ③A=B+2=4 (T2) ④B=A*B=4 (T2) ⑤写回A=4,B=2 (T1) ⑥写回A=2,B=4 (T2) 结果:A=2,B=4 第四种调度:①读A=2,B=2 (T2) ②读A=2,B=2 (T1) ③B=A*B=4 (T2) ④A=B+2=4 (T1) ⑤写回A=2,B=4 (T2) ⑥写回A=4,B=2 (T1) 结果:A=4,B=2 第五种调度:①读A=2,B=2 (T1) ②A=B+2=4 (T1) ③读A=2,B=2 (T2) ④B=A*B=4 (T2) ⑤写回A=4,B=2 (T1) ⑥写回A=2,B=4 (T2) 结果:A=2,B=4 第六种调度:①读A=2,B=2 (T2) ②B=A*B=4 (T2) ③读A=2,B=2 (T1) ④A=B+2=4 (T1) ⑤写回A=2,B=4 (T2) ⑥写回A=4,B=2 (T1) 结果:A=4,B=2

第6题:

阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。

[说明] 设T1,T2,T3为如下所述的三个事务。

T1:A:=A+1。

T2: A:=A*2。

T3:A:= 在屏幕上输出A,并将A置为1;其中A为数据库中的某个数据项。设A的初值为0。

若这三个事务允许并行执行,则请列举出有多少可能的正确结果。


正确答案:有6种可能的正确结果相应的6个串行调度是: T1-T2-T3:A=1 T1-T3-T2:A=2 T2-T1-T3:A=1 T2-T3-T1:A=2 T3-T1-T2:A=4 T3-T2-T1:A=3
有6种可能的正确结果,相应的6个串行调度是: T1-T2-T3:A=1 T1-T3-T2:A=2 T2-T1-T3:A=1 T2-T3-T1:A=2 T3-T1-T2:A=4 T3-T2-T1:A=3

第7题:

如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2。接着T2又申请封锁R1。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成()。

A 活锁

B 死锁

C 乐观锁

D 悲观锁


参考答案B

第8题:

( 25 )有如下模板声明:

template <typename T1, typename T2> class A;

下列声明中,与上述声明不等价的是

A ) template <class T1, class T2> class A;

B ) template <class T1, typename T2> class A;

C ) template <typename T1, class T2> class A;

D ) template <typename T1, T2> class A;


正确答案:D

第9题:

事务T1、T2、T3分别对数据D1、D2和D3并发操作如下所示,其中T1与T2间并发操作(14),T2与T3间并发操作(15)。

A.不存在问题

B.将丢失修改

C.不能重复读

D.将读“脏”数据


正确答案:C

第10题:

下面不属于同一函数模板的是()。A.template t1 max(t1 &a,t1 &b) {…}template<

下面不属于同一函数模板的是( )。

A.template<class t1> t1 max(t1 &a,t1 &b) {…}template<class t2> t2 max(t2 &a,t2 &b) {…}

B.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 &a,t2 &b){…}

C.template<class t1> t1 max(t1 * a,t1 * b) {…} template<class t2> t2 max(t2 &a,t2 &b) {…}

D.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 &a,t2 &b,t2 c){…}


正确答案:D
解析:函数模板的重载是靠模板参数的数量不同来区分的,因为函数模板是抽象的,有待于进一步实例化,所以靠参数类型无法区别调用哪个函数模板。

更多相关问题