Page 56 - DCAP403_Operating System
P. 56
Unit 4: Process Management
Introduction Notes
Earlier a computer was used to be fasten the jobs pertaining to computation diligently and
incessantly for a single person. Soon it was realized that the computer was far more powerful than
just carrying out a single man’s single job. Such was the speed of operation that the CPU would
sit idle for most of the time awaiting user input. The CPU was certainly capable of carrying out
many jobs simultaneously. It could also support many users simultaneously. But, the operating
systems then available were not capable of this support. The operating systems facilitating a
single-user support at a time was felt inadequate. Then a mechanism was developed which
would prevent the wastage of CPU cycles. Hence multi-tasking systems were developed.
In a multi-tasking system a job or task is submitted as what is known as a process. Multi-tasking
operating systems could handle multiple processes on a single processor.
Process is a unit of program execution that enables the systems to implement multi-tasking
behavior. Most of the operating systems today have multi-processing capabilities. This unit is
dedicated to process and process related issues.
In this unit, present and discuss the mechanisms that support or enforce more structured forms
of interprocess communications. Subsequent sections are devoted to messages, an extremely
versatile and popular mechanism in both centralized and distributed systems, and to facilitate
interprocess communication and synchronization.
4.1 Process Concepts
An operating system manages each hardware resource attached with the computer by representing
it as an abstraction. An abstraction hides the unwanted details from the users and programmers
allowing them to have a view of the resources in the form, which is convenient to them. A process
is an abstract model of a sequential program in execution. The operating system can schedule a
process as a unit of work.
The term “process” was first used by the designers of the MULTICS in 1960’s. Since then, the
term “process” is used somewhat interchangeably with ‘task’ or ‘job’. The process has been given
many definitions as mentioned below:
1. A program in Execution.
2. An asynchronous activity.
3. The ‘animated spirit’ of a procedure in execution.
4. The entity to which processors are assigned.
5. The ‘dispatchable’ unit.
Though there is no universally agreed upon definition, but the definition “Program in Execution”
is the one that is most frequently used. And this is a concept you will use in the present study of
operating systems.
Now that you agreed upon the definition of process, the question is - what is the relation between
process and program. It is same beast with different name or when this beast is sleeping (not
executing) it is called program and when it is executing becomes process. Well, to be very precise.
Process is not the same as program.
A process is more than a program code. A process is an ‘active’ entity as oppose to program
which is considered to be a ‘passive’ entity. As you all know that a program is an algorithm
expressed with the help of a programming language. A program is a passive entity sitting on
some secondary storage device.
LOVELY PROFESSIONAL UNIVERSITY 49