Lecture 1 -- Introduction

What is an Operating System?

Computer software can be divided into 2 categories:

systems software, which manages the computer's operation, and applications software.

The most fundamental of all systems software is the operating system.

It controls all the computer's resources, and provides the system base for all applications programs.

A computer consists of: CPU, memory, clocks, terminals, disks, networks, mice etc.

Each has its own problems and idiosyncrasies, e.g disk seeking.

The OS shields the user from the hardware, and presents the user with a simplified interface to the machine.

The OS also acts as a resource manager, managing all the machine's resources, optimising them, and protecting them against misuse and abuse.

operating system: (Often abbreviated `OS') The foundation software of a machine, of course; that which schedules tasks, allocates storage, and presents a default interface to the user between applications. The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around its host machines.

Anatomy of an Operating System

A general anatomy of a contemporary OS is:

The Hardware are the physical parts of the computer.

The Operating System controls the hardware, as described above.

The Library/System Calls are useful routines used by programs to do their work. System calls are special in that they request services from the OS.

The system calls define the interface between the programs and the OS.

The Programs do the work for the user. Systems programs do OS-related things: create, delete files, make directories, shells etc.

Types of Operating Systems

A simple monitor provides few services to the user, and leaves the control of the hardware to the user.

A batch system takes user's jobs, segregates them into batches, with similar requirements.

Each batch is given to the computer to run, thus minimising system changes within the batch. User interaction is lacking. Emphasis is on computer utilisation.

A multiprogramming system appears to be running many jobs at the same time, with user interaction. Emphasis is on response time as well as computer utilisation.

A real-time system must respond to input within certain time constraints. Usually little or no user interaction.

We will concentrate on multiprogramming systems, with brief looks at the others.

Operating System Services

These depend a lot on the concepts and paradigms that the OS uses, but often:

CPU management: ensuring high usage Device management: easy user I/O, optimising device usage Memory management: adequate memory to each program, or at least a fair share File service: providing an abstract file concept, and services Security and protection: ensuring no inter-user interference, and no user-system interference, plus a fair share of resources

Warren Toomey wkt@cserve.cs.adfa.oz.au