To check for conflict serializability, we construct the precedence (serialization) graph for each schedule:
Schedule S1:
Conflicting operations on item y:
r1(y) is executed before w2(y), which creates a directed edge T1→T2.
Conflicting operations on item x:
r2(x) is executed before w1(x), which creates a directed edge T2→T1.
The precedence graph contains a cycle: T1↔T2. Therefore, S1 is not conflict serializable.
Schedule S2:
Conflicting operations on item y:
w2(y) is executed before r1(y), which creates a directed edge T2→T1.
Conflicting operations on item x:
r2(x) is executed before w1(x), which creates a directed edge T2→T1.
The precedence graph contains no cycle (only the edge T2→T1). Therefore, S2 is conflict serializable.
Hence, S1 is not conflict serializable, and S2 is conflict serializable, which corresponds to option B.