The system is said to be in a safe state if there exists a sequence of other valid system states that leads to the successful completion of all processes.
Processes request only 1 resource at a time.
Request is granted only it results in a safe state.
If request results in an unsafe state, the request is denied and the process continues to hold resources it has until such time as it's request can be met.
All requests will be granted in a finite amount of time.
Algorithm can be extended for multiple resource types.
Advantage: Avoids deadlock and it is less restrictive than deadlock prevention.
Disadvantage: Only works with fixed number of resources and processes.
Guarantees finite time - not reasonable response time
Needs advanced knowledge of maximum needs
Not suitable for multi-access systems
Unnecessary delays in avoiding unsafe states which may not lead to deadlock
Reference: http://www.cm.cf.ac.uk/User/O.F.Rana/os/lectureos12/node6.html