Step 1: Understanding the Question:
The question asks to identify the specific condition for deadlock that describes a scenario where a resource cannot be forcibly taken away from a process that holds it.
Step 2: Detailed Explanation:
For a deadlock to occur in an operating system, four conditions must be met simultaneously. Let's review them:
Mutual Exclusion: At least one resource must be held in a non-shareable mode. Only one process at a time can use the resource.
Hold and Wait: A process must be holding at least one resource and waiting to acquire additional resources that are currently being held by other processes.
No Preemption: A resource can only be released voluntarily by the process holding it, after that process has completed its task. It cannot be forcibly taken away.
Circular Wait: A set of processes \(\{P_0, P_1, \ldots, P_n\}\) must exist such that \(P_0\) is waiting for a resource held by \(P_1\), \(P_1\) is waiting for a resource held by \(P_2\), ..., and \(P_n\) is waiting for a resource held by \(P_0\).
The condition described in the question, "a process cannot be preempted from its resource until it completes its task," directly matches the definition of the No Preemption condition.
Step 3: Final Answer:
Therefore, the condition that ensures a resource cannot be forcibly taken from a process is No Preemption.