Analysis of ten important relationships in computer technology

Source: Internet
Author: User

Author: Yi Hongwei, Yi Tang Information Technology Service Co., Ltd.

Abstract: This paper systematically summarizes ten important relationships in computer technology, analyzes these technical elements and their relationships, and illustrates them through a large number of typical examples. Understanding these relationships can improve the reader's overall grasp of computer technology to a certain extent.

1 Introduction

There are many technical terms in the field of computer technology, and many technical elements often have logical connections. Some technical relationships have rich connotations. Therefore, it is necessary to summarize and analyze the typical technical relationships in computer technology. The following describes the ten important relationships of computer technology.

2. Analysis of ten important relationships in computer technology

2.1 hardware and software

Hardware is the material basis for the entire computer system to exert its functions. Any function or operation performed on a computer is ultimately converted into a series of "actions" of components related to the hardware system. Specifically, it is a combination of a series of time-changing electrical signals. A software is a logical organization of a hardware functional unit (machine command) based on a specific task to be completed, or a set of commands. It is the soul of a computer system. Different tasks that computers need to accomplish are embodied through different software. Although software and hardware are both intangible logical entities and physical entities, they are logically equivalent. All functions implemented by hardware can also be implemented using the software method, and vice versa. For the same function, whether it is implemented by hardware or software depends on the comprehensive consideration of costs, execution efficiency, flexibility, and other aspects. In fact, in the historical development of computer technology, the boundaries between hardware and software are not fixed, but dynamic. For example, in the early stages of computer technology development, due to the limitation of the hardware manufacturing process, there was no multiplication command in the CPU command system, that is, the hardware could not perform multiplication directly. To enable the computer to complete the multiplication function, it must be achieved through a combination of several addition commands. It is implemented by combining commands, that is, programming, or software. Later, with the development of computer hardware technology and consideration of execution efficiency, multiplication commands were added to the CPU command system, so that the multiplication function could be directly completed by hardware. The logical Equivalence Principle of software and hardware is an important basis for computer system design. The function allocation of software and hardware and its interface confirmation are important contents in the research of computer system structure.
The imbalance between the development of software and hardware restricts the overall development of computer technology. Looking at the historical development of computer technology, we can see that the development of hardware technology is active and rapid, and it is the engine that promotes the development of computer technology.
However, software development lags behind due to its own characteristics. That is to say, software often cannot make full use of and give full play to the potential provided by computer hardware (for example, software does not make full use of computer tokens and command systems ). Therefore, how to improve the efficiency of software development while ensuring software quality is an important area of computer science research.

2.2 operating system and application software

Some people regard the operating system as the core of the computer system, showing its position and role in the whole system. There are two kinds of views on operating systems: one is system management, that is, the operating system is the manager of hardware and software system resources; the other is the user interface, that is, the operating system provides interfaces for upper-layer applications to access system services (called system calls or APIs ). These two points of view actually reflect the two functions of the operating system. The operating system provides interfaces for application software to access the underlying hardware and handle other functions closely related to the system. On the one hand, it aims to reduce the complexity of programming staff, on the other hand, it is also an inevitable requirement for unified management of system resources (especially in multi-task environments ). Almost all practical applications require the operating system to provide services through system calls during operation. In general, an application can be transplanted from one operating system platform to another operating system platform without modification. This is mainly because there are differences in system calls between different operating systems.

2.3 logical design and physical implementation

The so-called logical design refers to the abstract description of the problem, which generally exists on paper. Physical implementation refers to converting the logical description of a problem into a representation or function in a computer. In order to facilitate learning and research, we often need to abstract the problems related to computer technology. Therefore, we often involve the relationship between logical design and physical implementation. For example, the logical structure and storage structure (physical structure) in the data structure, the logical form of the "table" in the relational database system and the corresponding physical file format, the data type in the programming language and the representation of the type of variables in the memory (the number of bytes occupied, the binary encoding used ), the concepts of files in the operating system and the specific storage methods of the corresponding data on the disk.

2.4 hierarchy and transparency

To simplify the research and design complexity, people tend to adopt a layered structure in view of the entire computer system or the implementation of a specific software system. Adjacent Layers communicate with each other through some form of interfaces. The lower layer of the higher layer is more abstract. For example, from the programmer's perspective, we can divide the entire computer system into four layers: machine hardware layer (machine language layer), operating system layer, assembly language layer, and advanced language layer. The concept of transparency refers to the fact that an existing thing does not seem to exist under certain conditions. Hierarchy and transparency are inherently related. Any transparency is transparent to a certain extent, that is, there is a degree of transparency difference. This difference is caused by the hierarchy of the system. Looking at a system at a higher level, the system's transparency to this observer is higher. For example, hardware attributes such as the instruction system and register structure of a machine are not transparent to assembly language programmers, and senior language programmers do not need to care about these underlying details during program design, that is to say, the above hardware properties are transparent to them. It can be seen that transparency is always transparent at a certain level, and transparency needs to be achieved through system layering. Therefore, hierarchy is the basis of transparency, and transparency is the reflection of hierarchy. Whether hierarchical or transparent, their goals are consistent, that is, to achieve the ease of use of the system.

2.5 complexity, efficiency and ease of use

The technical indicators pursued by computer systems are often mutually exclusive, that is, they cannot achieve the optimal at the same time. Such as the time complexity and space complexity of algorithms, and the reliability and flexibility of the system. The complexity of the system conflicts between efficiency and ease of use. Taking programming languages as an example, assembly languages are more difficult to use than advanced languages, but Assembly programs are less complex than compilation programs in advanced languages. At the same time, programs written in assembly languages are shorter and faster than program target codes written in advanced languages. The object-oriented programming language is easier to use than the traditional process-oriented language, but it is less efficient to write programs in an object-oriented language (especially when large applications are implemented ). The graphic user interface (GUI) is designed based on the principle of ease of use. It provides end users with a convenient and friendly means to interact with computers, however, software systems that implement graphical interfaces are generally large and complex. On the contrary, the character command line interface is not very friendly to common users, but its implementation is simple. More importantly, it is quick and efficient for skilled professionals to interact with the system through command lines. This is why many operating systems still retain the character interface. From the above facts, we can understand that the ease of use of the system is always at the cost of increasing the complexity of the system implementation and sacrificing the operating efficiency of the system. The relationship between complexity and efficiency and ease of use is essentially a function allocation problem between the system and the user. To make a system easy to use, it is necessary to reduce user intervention on the system, which requires the system itself to undertake more functions. Therefore, such system implementation will be complicated. On the other hand, if you implement many functions on your own, the system itself will become simple, but such system users feel very difficult to use. There is often a saying that "the simpler the system looks, the more complicated the system is. Now, because the performance of computer hardware systems has been greatly improved, efficiency is no longer the main aspect of conflict. How to Improve the ease of use of the System, providing users with a more user-friendly interface has become the focus of software designers.

2.6 portability and compatibility

Portability mainly refers to the difficulty of placing the same software on different system platforms (such as different hardware platforms and operating systems) and making it run normally. Portability is sometimes expressed as cross-platform. The portability of analysis software is generally considered in the following situations: Binary applications between different architectures (such as CPU command systems) cannot be transplanted. If it is a source program, it must be re-compiled to run in the new environment. On a hardware platform with the same architecture, if the operating system is the same (the interface called by the system is the same), binary applications can be transplanted, otherwise, you must modify the source program and re-compile the link to generate a new executable file to run it in different operating systems. For the portability of programs written in the same language between compilers of different versions (regardless of whether the hardware platform and operating system are the same ), it depends on the degree of standardization of the language and the degree of strict compliance with the language standards when the compiler is implemented. Compatibility refers to the technical characteristics of different software and hardware products. Compatibility is hierarchical. For example, CPU compatibility can be classified into chip-level pin-level compatibility (consistent definition of Chip Pin signals) and command-level compatibility (consistent machine Command System ). It is important to maintain product compatibility so as to ensure the continuity of product use (for the same series of products) and interoperability (for the same category of products ). However, many products are becoming increasingly large and complex to take care of compatibility (mainly the backward compatibility of the same series of products. This is because new products must not only provide newer and more advanced features, but also retain features of the original product (although these features may be outdated, or even a certain degree of conflict with new features ). The well-known C ++ language is an example. In order to maintain compatibility with the traditional C language, C ++ cannot completely discard the unreasonable language elements in the C language during design, the syntax of the language is a bit messy, and programmers may use the new and old language elements in programming, the program is not readable, and prone to errors.
Portability depends on compatibility. The compatibility of different platforms on which a software depends is necessary for the software to be transplanted on these platforms. Assume that software A can run on platform B. If platform C is compatible with platform B, software A can also run on platform B, C is portable. An obvious example is that if the C language compiler of two different versions is fully compatible, the source program written in C language of any of the two versions is used, can be compiled successfully without modification on the C compiler of another version.

2.7 security and availability

The security of information systems or communication networks is always at the cost of system complexity and availability. Security means to restrict the flexibility and extensiveness of a security system, resulting in poor system availability. For example, the firewall security policy can adopt two different principles: (1) operations that are not explicitly prohibited by the security policy are allowed; (2) operations that are not permitted by the security policy are prohibited. Obviously, the second case is more restrictive than the first case. The _ blank ">

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.