ü A process is a program in execution.
We are assuming a multiprogramming OS that
can switch from one process to another.
Sometimes this is called pseudoparallelism
since one has the illusion of a parallel processor.
The other possibility is real parallelism
in which two or more processes are actually running at once because the
computer system is a parallel processor, i.e., has more than one processor.
1: The Process Model
Even though in actuality there
are many processes running at once, the OS gives each process the illusion that
it is running alone.
Virtual time: The
time used by just these processes. Virtual time progresses at a rate independent
of other processes. Actually, this is false, the virtual time is typically
incremented a little during systems calls used for process switching; so if
there are more other processors more ``overhead'' virtual time occurs.
Virtual memory: The memory as viewed by
the process. Each process typically believes it has a contiguous chunk
of memory starting at location zero. Of course this can't be true of all
processes (or they would be using the same memory) and in modern systems it is
actually true of no processes (the memory assigned is not contiguous and does
not include location zero).
Think of the individual modules that are input to the linker.
Each numbers its addresses from zero; the linker eventually translates these
relative addresses into absolute addresses. That is the linker provides to the
assembler a virtual memory in which addresses start at zero.
Virtual time and virtual memory
are examples of abstractions provided by the operating system to the user
processes so that the latter ``sees'' a more pleasant virtual machine than
2. Process Hierarchies
Modern general purpose operating systems permit a user to
create and destroy processes.
In unix this is done by the fork system
call, which creates a child process, and the exit system call,
which terminates the current process.
After a fork both parent and child keep running
(indeed they have the same program text) and each can fork off other
A process tree results. The root of the tree is a
special process created by the OS during startup.
A process can choose to wait for children
to terminate. For example, if C issued a wait() system call it would block
until G finished.
Old or primitive operating system
like MS-DOS are not multiprogrammed so when one process starts another, the
first process is automatically blocked and waits until the second is