In this type of system, each processor has its own local memory. The processors communicate with one another through various communication lines, such as high-speed buses or telephone lines. These systems are usually referred toas loosely coupled systems, or distributed systems.
The processors in a distributed system may vary in size and function. They may include small microprocessors, workstations, minicomputers, and large general-purpose computer systems. These processors are referred to by a number of different names, such as sites, nodes, computers and so on, depending on the context in which they are mentioned.
There is a variety of reasons for building distributed systems, the major ones are following.
Resource sharing: Resource sharing in a distributed system provides mechanisms for sharing files at remote sites, processing information in a distributed database, printing files at remote sites, using remote specialized hardware devices, and performing other operations.
Computation speedup: If a particular computation can be partitioned into a number of sub computations that can run concurrently, then a distributed system may allow us to distribute the computation among the various sites – to run that computation concurrently.
Reliability: If sufficient redundancy exists in the system, the system can continue with its operation, even if some of its sites have failed.
Communication: There are many instances in which programs need to exchange data with one another on one system. e.g. A user can send mail to another user at the same site or at a different site.
Real – Time Systems:
A real – time system is used when there are rigid time requirements on the operation of a processor or the flow of data, and thus is often used as control device in a dedicated application. Systems that control scientific experiments, medical imaging systems, industrial control system, and some display systems are real – time systems.
There are two flavors of real – time systems. A hard real – time system guarantees that critical tasks complete on time. This goal requires that all delays in the system be bounded, from the retrieval of stored data to the time that it takes the operating system to finish any request made of it.
A less restrictive type of real – time system is a soft real – time system, where a critical real – time task gets priority over other tasks, and retains that priority until it completes.
Process Control Block:
Each process is represented in the operating system by a process control block (PCB) – also called a task control block.
It contains many pieces of information associated with a specific process, including these:
- Process state: The state may be new, ready, running, waiting, halted and so on.
- Program counter: The counter indicates the address of the next instruction to be executed for this process.
- CPU registers: The registers vary in number and type, depending on the computer architecture.
- CPU scheduling information: This information includes a process priority, pointers to scheduling queues, and any other scheduling parameters.
- Memory – management information: This information may include such information as the value of the base and limit registers, the page tables, or the segment tables depending on the memory system used by the operating system.
- Accounting information: This information includes the amount of CPU and real time used, time limits, account numbers, job or process numbers, and so on.
- I/O status information: The information includes the list of I/O devices allocated to this process, a list of open files, and so on.
The PCB simply serves as the repository for any information that may vary from process to process.