•Dirty data
–One task T reads data written by T’ while T’ is running,
then T’ aborts (so its data was
not appropriate)
•Lost update
–Two tasks T and T’ both modify the same data
–T and T’ both commit
–Final state shows effects of only T, but not of T’
•Inconsistent read
–One task T sees some but not all changes made by T’
–The values observed may not satisfy integrity
constraints
–This was not considered by the programmer, so code moves
into absurd path
•