{ "q1": { "type": "order", "question": "\n

Identify the system call you should use to accomplish the\nfollowing tasks:

\n\n

\n

    \n
  1. Create a new process.
  2. \n
  3. Replace current process image with a new process image.
  4. \n
  5. Retrieve the exit status of a child process.
  6. \n
  7. Terminate calling process.
  8. \n
  9. Send a signal to a process.
  10. \n
\n

\n", "responses": { "exec": "exec()", "kill": "kill()", "wait": "wait()", "exit": "exit()", "fork": "fork()" } }, "q2": { "type": "multiple", "question": "\n

Which of the following statements regarding fork and\nexec are true (select all that apply)?

\n", "responses": { "parent": "After a fork(), the parent gets the PID of the child process.", "child": "After a fork(), the child gets the PID of itself.", "process": "After a fork(), the parent and child processes are nearly identical.", "perror": "During a fork(), the parent is terminated if there is an error.", "pfirst": "After a fork(), the parent is guaranteed to run first.", "cfirst": "After a fork(), the child is guaranteed to run first.", "nondeter": "After a fork(), the next process to run is non-deterministic.", "create": "After an exec(), a new process is created.", "load": "After an exec(), a new program code is loaded.", "before": "You must always call fork() before you call exec().", "after": "You must always call exec() after you call fork()." } } }