Requires the OS (or the system which is allocating resources) to track the potential and actual resource use of all the processes in the system. A process is only allowed to aquire a resource if granting the request is guaranteed never to lead to deadlock. (Otherwise it must wait until such a situation is possible.)
This approach is only possible in certain very limited situations: those in which processes know in advance what resources they might need in the future. In general, processes appear and disappear, and allocate resources dynamically, so such advance knowledge is not available.