- Each and
every task which we order our computer to carry out is accomplished by a set of
processes.
- It is these processes that actually run the program.
- A process can
be defined as an instance of the program that is currently being executed.
- A
program’s current activity and the code being executed are stored in the
process itself.
- However, it depends on the operating system that the process
is to constitute of multiple threads for a concurrent execution or just one
thread for sequential execution.
This gives rise to two different types of
processes namely:
Sequential processes
Sequential processes can be executed on the same processor but the concurrent processors however may sometimes require more than one processor.
Concurrent processes
Concurrent processes are executed in parallel to each other and at the same whereas the sequential processes go step by step executing one instruction at a time.
Concepts of Process
- A computer program can be defined
as a set of passive instructions. When these instructions are actually
executed, they form a process.
- The same program may have a number of processes
associated with it.
- Multiple processes can be executed by sharing the
processors and the resources.
- If this is done, it is called multitasking.
- Each
processor takes up a single task.
- With multitasking, switching between the
different tasks becomes possible for the processor and so the processes won’t
have to wait for long.
- However, it depends entirely on the operating system when
the switch has to be performed:
- When the task is performing I/O operations or
- When the task itself indicates that it can now
be switched or
- On hardware interrupts.
- Time
sharing is a common type of multitasking and allows interactive user applications
to response quickly.
- In systems using the time sharing systems, switching is
done quite rapidly.
- This gives an illusion of the simultaneous execution of the
multiple processes by the same processor.
- Such type of execution is termed as
concurrency.
- Direct communication that may take place between independent
processes is avoided by many of the modern operating systems for the reasons of
maintaining reliability and security.
- The inter-process communication
functionality is kept under strict control and mediation.
- In general, the
following resources are said to constitute a process:
Ø Executable machine code’s image
associated with the task.
Ø Some part of virtual memory that
is inclusive of the process specific data, executable code, heap and a call
stack. Heap is for holding the immediate data generated during the execution
and the call stack is for keeping a track of the subroutines.
Ø OS descriptors belonging to the
resources that were allocated to the processes. These descriptors may be data
sources, sinks and file descriptors etc.
Ø Security attributes including the
set of permissions for the process and the owner of the process.
Ø Processor state like physical
memory addressing or register contents etc. registers store the state during
the execution of the process or otherwise it is stored in memory.
- Most of
this information is held in the process control blocks regarding the active
processes.
- The operating system makes it a point to maintain a separation
between its resources and allocate them the requested resources so that they
won’t interfere with the working of each other and thus won’t cause any system
failures such as thrashing or deadlocks.
- But processes do require communicating
with each other.
- For such cases to make interaction safe, operating system has
mechanisms especially for the inter-process communication.
No comments:
Post a Comment