Final answer:
When a process is holding some resources and requests another resource that cannot be immediately allocated to it, it should wait for the resource to be allocated.
Step-by-step explanation:
When a process is holding some resources and requests another resource that cannot be immediately allocated to it, the correct response is (a) to wait for the resource to be allocated. This is done to ensure no preemption of resources. Preemption refers to forcibly taking away resources from a process without its consent. Therefore, the process should patiently wait until the requested resource becomes available.
To ensure no preemption, if a process is holding some resources and requests another resource that cannot be immediately allocated to it, the correct action is that the process waits for the resources to be allocated to it. In systems where preemption is not allowed, when a process requests a new resource and it's not available, the process must wait. If the resource were to be preempted, it could lead to scenarios where resources are continuously taken away from processes, potentially causing a deadlock. Therefore, forcing the process to release its currently held resources if it cannot obtain new ones would violate the no preemption condition.