Two-Phase Locking (2PL) is a widely-used protocol for concurrency control in a relational database system.
For each of the following protocols, briefly explain its locking mechanism, and analyse its advantages and limitations compared with the Basic 2PL protocol.