2.1.4. Rehearsal

At this point, you should understand how the abstract concept of a running process maps to the specific things happening inside a computer. You should be able to describe how the execution of a process relates to the execution of machine code instructions by the processor and what these instructions look like. You should be able to explain how the abstract concept of a process state maps to the content of memory and registers.

You should be able to outline how a process gets started and where the machine code instructions and the content of memory and registers comes from. You should understand how machine code instructions address memory and how the location of the program image in memory relates to the addressing of memory.

You should understand how an operating system gets to the point where it can start an arbitrary process from the point where the computer has just been turned on.

You should know what facilities enable a process to interact with the system libraries and the operating system.

Based on your knowledge of how processes are used, you should be able to design an intelligent API used to create and destroy processes and threads.

Questions. 

  1. Explain what is a process.

  2. Explain how the operating system or the first application process gets started when a computer is switched on.

  3. Explain what it means to relocate a program and when and how a program is relocated.

  4. Explain what information is needed to relocate a program and where it is kept.

  5. Explain what it means to link a program and when and how a program is linked.

  6. Explain what information is needed to link a program and where it is kept.

  7. Explain what the interface between processes and the operating system looks like, both for the case when the operating system code resides in the user space and for the case when the operating system code resides in the kernel space.

  8. Propose an interface through which a process can start another process and wait for termination of another process.