Final answer:
If the parent called wait() but the child is killed, the parent may not be notified. If the parent forgets wait() and uses busy waiting, it consumes CPU resources.
Step-by-step explanation:
a. If the parent process calls the wait() function, it means that it will wait for the child process to terminate before proceeding. However, if the child process is suddenly killed by a user or the kernel (for example, through using the kill() function), the parent process may never receive notification of the child's termination. In this scenario, the parent process may continue execution without knowing about the child's status.
b. If the parent forgets to call the wait() function and enters a busy waiting loop instead, it means that the parent process will continuously check for the termination status of the child process. This can lead to a situation known as busy waiting or spinlock, where the parent process consumes significant amounts of CPU resources while waiting for the child to exit. This can result in inefficient resource usage and may impact the overall performance of the system.