Key topics

Major advances

Major theoretical advances in the development of operating systems:

  • The concept of process.

  • Memory management.

  • Resource scheduling and management.

  • Information protection and security.

Each advance is characterized by principles, or abstractions, developed to meet difficult practical problems.

The process

It appears as a mean to control the activity of the various programs executing in a multiprogrammed system, possible belonging to different users.

  • A process is not a program.

Program

Set of instructions describing how a task is performed by a computer.

  • In order for the task to be actually performed, the corresponding program has to be executed.

Process

An entity that represents a computer program being executed.

  • it represents an activity of some kind.

  • it is characterized by:

    • addressing space – code and data (actual values of the different variables) of the associated program.

    • input and output channels and data (data that are being transfered from input devices and to output devices).

    • actual values of the processor internal registers.

    • state of execution.

    • other process specific data (process ID, ...).

Different processes can be running the same program.

A possible implementation of a process

Each process occupies a block of memory.

  • containing the program, the data, and part of the context.

Each process occupies a record in a process list.

  • with a pointer to the process’ memory.

  • and the other part of the context.

A process index identifies the running process.

The base and limit registers define the running process memory.

The program counter and all data references are checked against these register values, at every access.

Memory management

Memory management is required in order to support the flexible use of data.

Some OS memory management functionalities:

  • Process isolation – independent processes can not interfere with each other’s memory.

  • Automatic allocation and management – Programs should be dynamically allocated across the available memory.

  • Dynamic growth of used memory – Memory used by programs should not be defined at the start.

  • Protection and access control – Sharing of memory should be possible, in a controlled way.

  • Long-term storage – Many application programs need to store information for extended periods of time after the computer has been powered down.

This is accomplished with virtual memory and file systems.

  • Virtual memory dissociates the memory seen by a process and the real memory.

  • File systems introduced the concept of files as the mean for long-term storage.

Resource scheduling and management

There is a variety of resources shared among processes.

  • main memory, I/O devices, processors, . . .

The OS must:

  • manage these resources.

  • schedule their use by the various active processes.

The resource allocation and scheduling policy must provide:

  • fairness – give approximately equal and fair access to resources.

  • differential responsiveness – act considering the total set of requirements.

  • efficiency – attempt to maximize throughput, minimize response time, and, in the case of time-sharing systems, accommodate as many users as possible.

    • may not be possible, as conflicts may exist.

Information protection and security

In time-sharing systems, short-term and long-term data may belong to different users.

  • thus, protection and security are requirements.

  • meaning controlling access to computer systems and to the information stored in them.

Points covered by OS:

  • Availability – protect the system against interruption.

  • Confidentiality – ensure users cannot access unauthorized data.

  • Data integrity – protect data from unauthorized modification.

  • Authenticity – verify the identity of users and the validity of messages or data.

Last updated