Page 47 - DCAP507_SYSTEM_SOFTWARE
P. 47
Unit 2: Evolution of Operating System
Notes
Example: Opening up two windows of the same program typically means two processes
are being executed.
A single computer processor executes only one instruction at a time. To allow users to run
several programs at once, single-processor computer systems can use time-sharing processes
switch between being executed and waiting to be executed. In most cases this is done at a very
fast rate, giving an illusion that several processes are executing at once. Using multiple processors
achieves actual simultaneous execution of multiple instructions from different processes, but
time-sharing is still typically used to allow more processes to run at once.
For security reasons most modern operating systems prevent direct inter-process communication,
providing mediated and limited functionality. However, a process may split itself into multiple
threads that execute in parallel, running different instructions on much of the same resources
and data. This is useful when, for instance, it is necessary to make it seem that multiple things
within the same process are happening at once (such as a spell check being performed in a word
processor while the user is typing), or if part of the process needs to wait for something else to
happen (such as a web browser waiting for a web page to be retrieved).
A multitasking operating system may just switch between processes to give the appearance of
many processes executing concurrently or simultaneously, though in fact only one process can
be executing at any one time on a single-core CPU (unless using multi-threading or other
similar technology).
It is usual to associate a single process with a main program, and 'daughter' ('child') processes
with any spin-off, parallel processes, which behave like asynchronous subroutines. A process is
said to own resources, of which an image of its program (in memory) is one such resource.
Notes However, that in multiprocessing systems, many processes may run off of, or
share, the same reentrant program at the same location in memory- but each process is
said to own its own image of the program.
Processes are often called tasks in embedded operating systems. The sense of 'process' (or task)
is 'something that takes up time', as opposed to 'memory', which is 'something that takes up
space'. (Historically, the terms 'task' and 'process' were used interchangeably, but the term 'task'
seems to be dropping from the computer lexicon.)
The above description applies to both processes managed by an operating system, and processes
as defined by process calculi.
If a process requests something for which it must wait, it will be blocked. When the process is in
the Blocked State, it is eligible for swapping to disk, but this is transparent in a virtual memory
system, where blocks of memory values may be really on disk and not in main memory at any
time.
!
Caution Even unused portions of active processes/tasks (executing programs) are eligible
for swapping to disk.
All parts of an executing program and its data do not have to be in physical memory for the
associated process to be active.
LOVELY PROFESSIONAL UNIVERSITY 41