Computer System Architecture
Categorized roughly according to the number of general-purpose processors used –
Single-Processor Systems – Most systems use a single processor. The variety of single-processor systems range from PDAs through mainframes. On a single-processor system, there is one main CPU capable of executing instructions from user processes. It contains special-purpose processors, in the form of device-specific processors, for devices such as disk, keyboard, and graphics controllers.
All special-purpose processors run limited instructions and do not run user processes. These are managed by the operating system, the operating system sends them information about their next task and monitors their status. For example, a disk-controller processor, implements its own disk queue and scheduling algorithm, thus reducing the task of main CPU. Special processors in the keyboard, converts the keystrokes into codes to be sent to the CPU. The use of special-purpose microprocessors is common and does not turn a single-processor system into a multiprocessor. If there is only one general-purpose CPU, then the system is a single-processor system.
Multiprocessor Systems (parallel systems or tightly coupled systems) – Systems that have two or more processors in close communication, sharing the computer bus, the clock, memory, and peripheral devices are the multiprocessor systems.
Multiprocessor systems have three main advantages:
1. Increased throughput – In multiprocessor system, as there are multiple processors execution of different programs take place simultaneously. Even if the number of processors is increased the performance cannot be simultaneously increased. This is due to the overhead incurred in keeping all the parts working correctly and also due to the competation for the shared resources. The speed-up ratio with N processors is not N, rather, it is less than N. Thus the speed of the system is not has expected.
2. Economy of scale – Multiprocessor systems can cost less than equivalent number of many single-processor systems. As the multiprocessor systems share peripherals, mass storage, and power supplies, the cost of implementing this system is economical. If several processes are working on the same data, the data can also be shared among them.
3. Increased reliability– In multiprocessor systems functions are shared among several processors. If one processor fails, the system is not halted, it only slows down. The job of the failed processor is taken up, by other processors. Two techniques to maintain ‘Increased Reliability’ – graceful degradation & fault tolerant
Graceful degradation – As there are multiple processors when one processor fails other process will take up its work and the system goes down slowly.
Fault tolerant – When one processor fails, its operations are stopped, the system failure is then detected, diagnosed, and corrected. The HP Non Stop system uses both hardware and software duplication to ensure continued operation despite faults. The system consists of multiple pairs of CPUs. Both processors in the pair execute same instruction and compare the results.
If the results differ, then one CPU of the pair is at fault, and both are halted. The process that was being executed is then moved to another pair of CPUs, and the instruction that failed is restarted. This solution is expensive, since it involves special hardware and considerable hardware duplication.
There are two types of multiprocessor systems –
• Asymmetric multiprocessing
• Symmetric multiprocessing
1) Asymmetric multiprocessing – (Master/Slave architecture) Here each processor is assigned a specific task, by the master processor. A master processor controls the other processors in the system. It schedules and allocates work to the slave processors.
2) Symmetric multiprocessing (SMP) – All the processors are considered as peers. There is no master-slave relationship. All the processors have its own registers and CPU, only memory is shared.
The benefit of this model is that many processes can run simultaneously. N processes can run if there are N CPUs—without causing a significant deterioration of performance. Operating systems like Windows, Windows XP, Mac OS X, and Linux—now provide support for SMP.
A recent trend in CPU design is to include multiple compute cores on a single chip. The communication between processors within a chip is more faster than communication between two single processors.
Clustered systems are two or more individual systems connected together via network and sharing software resources. Clustering provides high-availability of resources and services. The service will continue even if one or more systems in the cluster fail. High availability is generally obtained by storing a copy of files (s/w resources) in the system.
There are two types of Clustered systems –
asymmetric and symmetric
In asymmetric clustering – one system is in hot-stand by mode while the others are running the applications. The hot-standby host machine does nothing but monitor the active server. If that server fails, the hot-standby host becomes the active server.
In symmetric clustering – two or more systems are running applications, and are monitoring each other. This mode is more efficient, as it uses all of the available hardware. If any system fails, its job is taken up by the monitoring system.
Other forms of clusters include parallel clusters and clustering over a wide-area network (WAN). Parallel clusters allow multiple hosts to access the same data on the shared storage. Cluster technology is changing rapidly with the help of SAN(storage-area networks). Using SAN resources can be shared with dozens of systems in a cluster, that are separated by miles.