Both Serializable and Snapshot isolation levels exclude concurrency issues such as Dirty Reads, Non-repeatable Reads and Phantoms. However the way in which they deal with such issues is quite different. In this article, Sergey Gigoyan explains the main differences between the two.
This article looks at SQL Server locking and transaction isolation levels, how to set the transaction isolation level, and how some isolation levels use locking, while others use row versioning. It also explains what type of locks data update requires.
Transaction Isolation levels are described in terms of which concurrency side-effects, such as dirty reads or phantom reads, are allowed.