There are various elements of modern computers which are as follows −
Computing Problems − It has been long identified that the theory of computer architecture is no greater limited to the mechanism of the bare machine hardware. A modern computer is an integrated system including machine hardware, an instruction set, system software, application programs, and user interfaces. These system elements are shown in the diagram.
For scientific issues in science and technology, the solutions demand complex mathematical systems and endless integer or floating-point computations. For alphanumerical issues in business and government, the solutions demand detailed transactions, huge database management, and data retrieval operations.
For artificial intelligence (AI) issues, the solutions demand logic inferences and representative manipulations. These estimating issues have been labeled numerical estimating, transaction processing, and logical reasoning. Various complex issues can demand a set of these processing modes.
Algorithms and Data Structures − Appropriate algorithms and data structures are required to determine the computations and communications contained in computing issues. Some numerical algorithms are deterministic, using automatically structured information. Symbolic processing can use heuristics or nondeterministic searches over huge knowledge bases.
Hardware Resources − The system architecture of a computer is defined by three embedded circles on the right in the figure. A modern computer system shows its power through integrated efforts by hardware resources, operating systems, and application software. Processors, memory, and peripheral devices form the hardware element of a computer system.
Special hardware interfaces are generally built into I/O devices, including terminals, departments, optical page scanners, magnetic ink character recognizers, modems, document servers, voice data entry, printers, and plotters. These peripherals are linked to mainframe computers precisely or through local or wide-area networks.
Operating System − An adequate operating system handles the allocation and deallocation of resources during the implementation of customer programs.
Mapping is a bidirectional procedure matching algorithmic structure with hardware structure and vice versa. A powerful mapping will advantage the programmer and make better source programs.
The mapping of algorithmic and data structures onto the machine structure contains processor scheduling, memory maps, interprocessor communications, etc. These activities are generally structure-dependent.
System Software Support − Software support is required for the advancement of powerful programs in high-level languages. The source program written in an HLL should be first interpreted into an object program by an optimizing compiler. The compiler designates variables to registers or memory words and preserves functional units for operators.
An assembler can interpret the compiled object program into a machine program which can be identified by the machine hardware. A loader can start the program implementation through the OS kernel.
Compiler Support − There are three compilers upgrade methods including preprocessor, precompiler, and parallelizing compiler. A preprocessor manages a sequential compiler and a low-level library of the target system to execute high-level parallel constructs. The precompiler methods needed some program flow analysis, dependence checking, and definite optimizations approaching parallelism detection.