1.Release all resources before requesting a new resource
2.Number the resources uniquely and never request a lower numbered resource t
3.Never request a resource after releasing any resource
4.Request and all required resources be allocated before execution