An unsafe state is a resource-allocation state with no guaranteed schedule that lets every execution complete, even when each requests its maximum resources. section 11.2.2
The Banker's algorithm grants a request only when the resulting allocation remains safe; otherwise, it suspends the requesting execution until granting the request becomes safe. section 11.2.2
Database connection pool
With a fixed pool, granting execution a another session can leave too few resources for executions a, b, and c to reach their maximum demands. The allocation becomes unsafe because no completion schedule remains guaranteed, creating an unavoidable risk of deadlock. section 11.2.2
Compare safe and unsafe resource allocations and see how one additional grant can remove every guaranteed completion schedule. section 11.2.2
