V0-Vmax => max size of the process address space
heap and data may not be contiguous
stack: last in first out
any access of the process to x will access the correct physical location where x is stored.
not all processes requires the entire address space from V0 to Vmax
There may be portions of this address space that are not allocated.
Also we may simply not have enough physical memory to store all this state.
the operating system must maintain information where these virtual addresses actually are in memory, on disk, since it maintains the mapping between the virtual addresses and the physical location of every part of the process address space.
PC: at any point of time, cpu needs to know where in the instruction sequence the process currently is
regs: pc is also maintaining the pc by part of regs
MM: stack pointer/top of the stack of the process
and other information
OS maintains the Process Control Block, including the information above
Process Control Block is a data structure that OS maintains for every one of the processes.
cpu has a dedicated register, used to track the current program counter for the currently executing process.
PC register will get automatically updated by the cpu on every new instruction
root processes:
once the initial boot process is done, and the OS is loaded on the machine, it will create some number of initial processes.
and then when the user types in commands, like list or emacsm, then the new processes get spawned from that shell parent process.
Being efficient means that it's important to have both efficient designs as well as sufficient implementations of the various algorithms that are used, for instance in scheduling.
As well as efficient data structure that are used to representing things like the waitinig process, or any information that's relevant to making scheduling decisions.
information => priority, history (how long ran in the past)
Because the OS is out of the way, it no longer supports fixed and well-defined APIs how this particular shared memory region is used.
For that reason, the usage sometimes becomes more error prone, or developers simply