Current location - Music Encyclopedia - Chinese History - Detailed information on the development history of the operating system
Detailed information on the development history of the operating system
Operating system was not born with computer hardware. With the development of computer technology and its application, it is gradually formed and perfected to meet two major needs: improving resource utilization and enhancing computer system performance.

Basic introduction Chinese name: operating system development history stage 1: manual operation stage 2: batch processing system stage 3: online batch processing system manual operation, batch processing system, multiprogramming system, time-sharing system, real-time system, general operating system, system development, manual operation 1946 The first computer was born-in the mid-1950s, there was no operating system, and all computer work was done. The programmer loads the punched paper tape (or card) corresponding to the program and data into the input machine, then starts the input machine to input the program and data into the computer memory, and then starts the program to run the data through the console switch; After the calculation, the printer outputs the calculation result; Users get the results and unload the paper tape (or card), and then let the next user use the computer. Manual operation Manual operation mode has two characteristics: (1) users monopolize the whole machine. There will be no waiting phenomenon because resources have been occupied by other users, but the resource utilization rate is low. (2)CPU waits for manual operation. The CPU is not fully utilized. ? At the end of 1950s, there appeared the contradiction between man and machine: the sharp contradiction between slow manual operation and fast computer speed. Manual operation seriously damages the utilization rate of system resources (reducing the utilization rate of resources to a few percent or even lower), which is intolerable. The only solution: only get rid of manual operation and realize automatic transition of work. In this way, batch processing appeared. Batch processing system Batch processing system: System software installed on a computer. Under its control, the computer can automatically and batch process one or more users' jobs (including programs, data and commands). Online batch processing system is the first online batch processing system, that is, the input/output of jobs is handled by CPU. A storage device, magnetic tape, is added between the host and the input machine. Under the automatic control of the monitoring program running on the host, the computer can automatically read the user jobs on the input machine into the tape in batches, read the user jobs on the tape into the host memory in turn, execute them, and output the calculation results to the output machine. After finishing the last batch of jobs, the management program inputs another batch of jobs from the input machine, saves them on the tape, and repeats the above steps. The monitoring program constantly handles all kinds of jobs, realizes the automatic transfer between jobs, reduces the time of job establishment and manual operation, effectively overcomes the contradiction between man and machine, and improves the utilization rate of computers. However, during job input and result output, the host's high-speed CPU is still idle, waiting for the slow input/output device to finish the work: the host is in a "busy" state. In order to overcome and alleviate the contradiction between high-speed host and slow peripheral and improve the utilization rate of CPU, an off-line batch processing system is introduced, that is, the input/output is separated from the host control. The remarkable feature of this method is the addition of a satellite machine which is not directly connected to the host computer, but is specially used to process input and output equipment. Its function is (1) to read the user's homework from the input machine and put it on the input tape. (2) Read the execution result from the output tape and send it to the output machine. In this way, the host does not directly deal with slow input/output devices, but with relatively fast tape drives, effectively alleviating the contradiction between the host and the devices. Host computer and satellite computer can work in parallel, with clear division of labor, and can give full play to the high-speed computing ability of host computer. Off-line batch processing system: It was widely used in 1960s, which greatly eased the contradiction between man and machine and between host and peripherals. IBM-7090/7094: The supervisor is an off-line batch processing system, which is the prototype of modern operating system. Insufficient: Only one job is stored in the host memory at a time, and every time I/O request is issued during its operation, the high-speed CPU is in a state of waiting for the low-speed I/O to complete, resulting in the CPU being idle. In order to improve the utilization rate of CPU, a multi-program system is introduced. Multiprogram system multiprogram technology The so-called multiprogram technology refers to allowing multiple programs to run in memory at the same time. That is, put multiple programs into memory at the same time and let them run alternately in CPU, so that you can enjoy all kinds of software and hardware resources in the system. When a program is suspended due to an I/O request, the CPU will immediately switch to another program. The running process of single-channel program: I/O is idle when program A calculates, and CPU is idle when program A I/O runs (the same is true for program B); B can only enter the memory and start working after A's work is finished. They are connected in series, and it takes time to complete them all =T 1+T2. ? Multi-program running process: Two programs, A and B, are stored in the memory at the same time, and can be run alternately on the CPU under the control of the system. When a program abandons the CPU because it requests I/O operation, B program can occupy the CPU to run, so that the CPU is no longer idle, and the I/O devices that are performing I/O operations are not idle. Obviously, CPU and I/O devices are busy. & ltT 1+T2. Multiprogramming technology not only makes full use of CPU, but also improves the utilization rate of I/O devices and memory, thus improving the resource utilization rate and system throughput (the number of jobs (programs) processed per unit time) of the whole system, and finally improving the efficiency of the whole system. Features of multi-channel program running in single processor system: (1) Multi-channel: several independent programs are stored in computer memory at the same time; (2) Macro-parallelism: Several programs that enter the system at the same time are in the process of running, that is, they have started to run separately, but they have not finished running; (3) Micro-serial: In fact, each program uses CPU in turn and runs alternately. The emergence of multi-program system marks the gradual maturity of operating system, and functions such as job scheduling management, processor management, memory management, external device management and file system management have appeared one after another. Multi-channel batch processing system In the mid-1960s, multi-channel programming technology was introduced into the aforementioned batch processing system, forming a multi-channel batch processing system. It has two characteristics: (1) multi-channel: the system can accommodate multiple jobs at the same time. These jobs are placed in external memory to form a backup queue. According to a certain scheduling principle, the system selects one or more jobs from the backup job queue to run in memory at one time, and the end, exit and entry of backup jobs are automatically realized by the system, thus forming an automatic switching and continuous job flow in the system. (2) Batch processing: During the system operation, users are not allowed to interact with jobs, that is, once jobs enter the system, users cannot directly interfere with the operation of jobs. The goal of batch processing system is to improve the utilization and throughput of system resources and the automation of job flow. An important disadvantage of batch processing system is that it does not provide human-computer interaction ability, which brings inconvenience to users to use computers. Although users monopolize the resources of the whole machine and directly control the operation of the program, they always know the operation of the program. But this working mode is extremely inefficient because it monopolizes the whole machine. ? A new goal: not only to ensure the efficiency of the computer, but also to facilitate users to use the computer. In the mid-1960s, the development of computer technology and software technology made this pursuit possible. ? Time-sharing system Because of the continuous improvement of CPU speed and the adoption of time-sharing technology, a computer can connect multiple user terminals at the same time, and each user can use the computer online on his own terminal as an exclusive machine. Time-sharing technology: divide the running time of the processor into short time slices, and assign the processor to each online operation in turn according to the time slices. If a job can't complete the calculation within the allocated time slice, the job is temporarily interrupted and the processor is handed over to another job to continue running until the next round. Because the computer is very fast, the homework runs very fast, giving every user the impression that he has a computer by himself. And each user can send various operation control commands to the system through his own terminal to complete the operation of the job under the condition of full human-computer interaction. The computer system with the above characteristics is called time-sharing system, which allows multiple users to use the computer online at the same time. Features: (1) multiplexing. Several users use a computer at the same time. Microscopically, users use computers in turn; Macroscopically, users work in parallel. (2) interactivity. Users can also make new requests to the system according to the response results of the system to the request. This working mode that enables users to have man-machine dialogue with the system is obviously different from batch processing system, so time-sharing system is also called interactive system. (3) independence. Users can operate independently without interfering with each other. The system ensures the integrity of each user's program and will not be confused or destroyed. (4) timeliness. The system can respond to the user's input in time. One of the main indicators of time-sharing system performance is reverberation time, which refers to the time from the terminal to the system response. The main goal of time-sharing system is to respond to users in time, that is, users will not wait too long to process each command. Time-sharing system can accommodate dozens or even hundreds of users at the same time. Due to the limited memory space, exchange (also called exchange) storage is often adopted. That is, the operation that does not "turn" is placed on the disk, and once it is "turned", it is transferred to the memory; After the time slice is used up, the job is saved back to disk (commonly known as "rolling in" and "rolling out"), so that the same storage area can serve multiple users in turn. Multi-user time-sharing system is the most commonly used computer operating system. Multi-channel batch processing system and time-sharing system can obtain satisfactory resource utilization and system reverberation time, but they cannot meet the needs of real-time control and real-time information processing. In this way, a real-time system is produced, that is, the system can respond to random external events in time and complete the processing of events within a strict time range. Real-time systems are usually used as control devices in specific applications. Real-time systems can be divided into two categories: (1) real-time control systems. When used for automatic control of aircraft flight and missile launch, it is required that the computer can process the data measured by the measurement system as soon as possible, control the aircraft or missile in time, or provide relevant information to decision makers through the display terminal. When it is used to control industrial production processes such as steel rolling and petrochemical industry, the computer is also required to process the data sent by various sensors in time and then control the corresponding actuators. (2) Real-time information processing system. When it is used to book airline tickets, inquire about flights, routes, fares and other matters, or used in banking systems and information retrieval systems, computers are required to give correct answers to service requests sent by terminal equipment in time. This requirement for echo timeliness is slightly weaker than the first one. The main feature of real-time operating system: (1) timely echo. Every process of receiving, analyzing, processing and transmitting information must be completed within a strict time limit. (2) High reliability. Redundancy measures need to be taken, and the work before and after the dual-computer system also includes necessary safety measures. There are three basic types of general operating systems: multi-channel batch processing system, time-sharing system and real-time system. General operating system: an operating system with various operating characteristics. It can have multi-channel batch processing, time-sharing processing and real-time processing functions at the same time, or it can have more than two of them. For example: real-time processing+batch processing = real-time batch processing system. First of all, real-time tasks are given priority, and batch jobs are carried out in the middle. Real-time tasks are usually called foreground jobs, and batch jobs are called background jobs. Another example: time-sharing processing+batch processing = time-sharing batch processing system. That is, jobs that are not time-critical are put in the background (batch processing), jobs that need frequent interaction are put in the foreground (time-sharing), and the processor gives priority to the jobs in the foreground. Since the mid-1960s, some large general operating systems have been developed internationally. These systems try to achieve the goal of functional integrity and adaptation to various environments with different application scopes and operation methods. However, these systems are too complex and huge, which not only pays a huge price, but also encounters great difficulties in solving their reliability, maintainability and understandability. In contrast, the UNIX operating system is an exception. This is a universal multi-user time-sharing interactive operating system. It first established a lean core, but its function is comparable to many large operating systems, and it can support huge software systems outside the core layer. It has been rapidly applied and popularized, and has been continuously improved, which has had a great impact on modern operating systems. At this point, the basic concept, function, basic structure and composition of the operating system have been formed and gradually improved. System development entered the 1980s, with the rapid development of large-scale integrated circuit technology and the emergence and development of microprocessors, a wave of computer development and popularization was set off. On the one hand, it ushered in the era of personal computers, and at the same time it developed in the direction of computer network, distributed processing, supercomputer and intelligence. As a result, the operating system has been further developed, such as: personal computer operating system, network operating system, distributed operating system and so on. Personal computer operating system The operating system on a personal computer is a single-user operating system with online interaction, and its online interaction function is very similar to that provided by the general time-sharing system. Because it is personal, some functions will be much simpler. However, due to the popularity of personal computers, the demand for file systems that provide more convenient and friendly user interfaces and rich functions will become more and more urgent. Network operating system computer network: a system that connects geographically dispersed and autonomous computer systems through communication facilities to realize information exchange, resource sharing, interoperability and collaborative processing. Network operating system: Based on the original computer operating system, according to various protocol standards of network architecture, network management modules are added, including communication, resource sharing, system security and various network application services. On the surface, there is not much difference between distributed operating system and computer network system. Decentralized operating systems also interconnect geographically dispersed data processing systems or computer systems with autonomous functions through communication networks to realize information exchange, resource sharing and collaborative task completion. -Hardware connections are the same. However, there are some obvious differences as follows: (1) The distributed system needs a unified operating system to realize the unity of system operation. (2) The distributed operating system manages all resources in the distributed system, and is responsible for resource allocation and scheduling, task division, information transmission and control coordination of the whole system, and provides a unified interface for users. (3) Through this interface, users can realize the required operations and use system resources. As for which computer the operation is to be performed on or which computer resources are to be used, it is all done by the operating system, and the user does not need to know. This is the so-called system transparency. (4) Decentralized system emphasizes decentralized calculation and processing, so it has higher requirements for multi-machine cooperation and system reconfiguration, robustness and fault tolerance. It is hoped that the system will have shorter response time, high throughput and high reliability.