I-3 Evolution of operating system

To understand what OS is and what it does, let's look at how it has evolved over the years.

I-3-1 Open door

The first computers were very large machines used from a console. The programmer who was also the operator of the computer system wrote a program and then ran it directly from the operator's console.

Premier ordinateur

Figure 2 : The first historical computer without interface

We reserved and then successively allocated the entire installation (the computer) to the different users for a fixed period. Strictly speaking, there was no OS. This period is characterized by:

  • unreliable computers, without interfaces and not very common
    multifunction users (user, programmer and operator)
  • the operating mode: insertion of the program and data, execution and interpretation of the results
  • multi-user management by reservation
  • disadvantages: significant downtime and lost tasks

I-3-2 Batch processing

It was noted that the preparation time for carrying out a job was considerable. Each job was carried out in several stages: setting up the Fortran compiler tape, executing the compiler, unloading the compiler tape, setting up the assembler tape, executing the assembler, unloading the Assembler tape, loading and executing the object program. Job preparation time was a real problem.

Console : première interface de l'ordinateur

Figure 3 : Console of EDPM 701

I-3-2-1 Resident monitor

During the transition from one job to another the CPU remained inactive, to remedy this we developed automatic job sequencing. This technique made it possible to create the first rudimentary OS: the resident monitor, a small program which remains resident in central memory and which automatically transfers control from one job to another.

successive jobs are grouped into a pack of punched cards, inserted into the card reader by the operator. The resident monitor reads a job (special card for start and end of job), loads it into memory and passes control to it so it executes. At the end the program returns control to the monitor which reads the next job.

The characteristics of automatic sequencing are:

  • successive execution of a set of programs (batch),
  • assign a maximum duration to each program,
  • unfinished tasks are abandoned,
  • the appearance of the job control language (LCJ)
  • example of commands:
    • $FTN: run the Fortran compiler,
    • $ASM: run the assembler,
    • $RUN: run the user's program,
    • $JOB: first card of a job,
    • $END: last card of a job

Figure 4 : Pack of punched cards representing a job in a batch processing system

Figure 5 : Memory diagram of a resident monitor

I-3-2-2 Overlapping CPU and I/O operations

Even with automatic job sequencing, the CPU was often idle. The problem was the speed of the I/O devices. The card reader and printer being mechanical are slower than the electronic CPU and memory devices. Two solutions emerged successively:

  • Offline processing: Card readers and line printers have been replaced by faster magnetic tapes.

Figure 6 : Online I/O operations

Opérations E/S hors ligne

Figure 7 : Offline I/O operations

  • spooling : direct access magnetic disks have replaced sequential access magnetic tapes. The spooler can read the input of one job while it writes the output of a different job. During this time another job can be executed by the CPU.

Figure 8 : Spooling

Despite the different techniques introduced, the major drawback of a batch processing system remained CPU idle time during I/O operations.

I-3-3 Multi-programmed system

In this operating mode the OS maintains several programs in memory at the same time. This set of jobs is a subset of the jobs in the pool (the set of jobs that have been read and are waiting on disk ready to be executed).

Figure 9 : The contents of memory in a multiprogrammed system

The OS chooses and begins to execute one of the jobs in memory, subsequently the job may have to wait for a task such as mounting a tape, command typed on the keyboard or the completion of an I/O operation. The OS simply switches to another job and executes it. When the latter needs to wait, the CPU is switched to another job and so on. Finally, the wait for the first job ends and he gets the CPU again. As long as there is a job to execute, the CPU will never be idle.

Figure 10 : CPU allocation in multiprogramming

Multiprogrammed systems were characterized by:

  • parallel execution of a set of programs,
  • having several programs in memory requires memory management,
  • CPU idle time between I/O for the last tasks,
  • response time independent of the duration of the task,
  • the user cannot interact with the program while it is running.
Modifié le: samedi 15 février 2025, 21:59