Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are...

43
Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction • What is the aim of the subject? • Why are OSes important? • What is an OS? • A bit of history • Some basic OS concepts • How does an OS work? • OS Structures
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are...

Page 1: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-1

Chapter 1: Introduction

• What is the aim of the subject?

• Why are OSes important?

• What is an OS?

• A bit of history

• Some basic OS concepts

• How does an OS work?

• OS Structures

Page 2: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-2

The Aim of the Subject

WILL NOT TEACH YOU HOW TO USE AN OPERATING SYSTEM.

• It will examine• the way in which an OS works• the algorithms and data structures inside an OS• the problems, solutions and trade offs in designing

an OS

TO ACHIEVE AN UNDERSTANDING OF HOW AN OPERATING SYSTEM WORKS.

Page 3: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-3

Computer System Components

• Application Software : Bank automation system, airline reservations, payroll etc.

• System Software : OS, data base, compilers, editors etc.

Page 4: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-4

What is SYSTEM SOFTWARE?

• System software provides the environment and the tools to create the application software (sort of virtual machine)

• It is also the interface between the hardware and the applications

Page 5: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-5

Why is the OS Important?

• The operating system is the foundation upon which all computing work is performed.

• Knowledge of the internals of an OS is essential to achieve efficiency in– building software applications

– deciding upon a computing platform

Page 6: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-6

What is an Operating System?

• A big, complex program (sometimes many)

• It has two main purposes in life– An interface between the user and the hardware

(provides a virtual machine)– Provide efficient, safe management of computing

resources

Page 7: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-7

Life without an OS

• Every programmer would– have to know the hardware

– be able to access the hardware

• Every program– would contain code to do the same thing

– probably do something wrong

Page 8: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-8

Where does the OS Fit?

HardwareCPU & MemoryI/O Devices

Operating System

System Calls

Users and User Programs

Page 9: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-9

History :First Generation (1945-1955)

• Vacuum tubes

• No operating system

• Programming is done by wiring a plug board

• Applications are mostly numerical calculations (trajectory computations, computation of tables such as sine, cosine etc.)

Page 10: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-10

History:Second Generation (1955-1965)

• Transistors

• Commercially produced computers

• Very expensive and very slow computers compared with your old PC at home

• Batch operation (collect jobs, run in one go, print all outputs)

Page 11: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-11

• Spooling (Simultaneous Peripheral Operation On-line)

• off-line spooling

• on-line spooling

• Off-line spooling : replace slow I/O devices with I/O dedicated computers so that the main system sees these machines as its I/O devices

Page 12: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-12

Early Batch Systems

• bring cards to 1401• read cards to tape• put tape on 7094 which does computing• put tape on 1401 which prints output

Page 13: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-13

A Deck of Cards (Program)

Page 14: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-14

• Applications are mostly scientific and engineering calculations (eg., solution of partial differential equations)

• High level languages such as FORTRAN and COBOL

Page 15: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-15

History:Third Generation (1965-1980)

• Integrated circuits (small scale) packed as chips

• I/O processors (channels) which can work in parallel with CPU - Multiprogramming

Page 16: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-16

Multiprogramming system - three jobs in memory

Page 17: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-17

• On-line spooling (using channels)

• Time-sharing (TTY terminals and VDU’s)

• Multics OS - original UNIX Minicomputers - Cheaper than mainframes but with limited hardware (eg. DEC PDPx)

Page 18: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-18

History:Fourth Generation (1980-1990)

• Large scale integration

• Personal computers

• CP/M, MS DOS, Unix operating systems

• Networks

Page 19: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-19

Now!

• Client/Server computation

• Clients : PCs, workstations running under Windows and UNIX operating systems

• Servers : systems that run under UNIX and Windows NT

• Internet and intranet networking (WWW)

Page 20: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-20

Important Points• OS provides

– a simpler, more powerful interface– higher level services

• OS services only accessed via system calls

• Users and programs can’t directly access the hardware

Set of System Calls (APIs) is what programs think the operating system is.

Page 21: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-21

Some OS Concepts

•Kernel– The main OS program. Contains code for

most services. Always in primary memory

•Device Drivers– Programs that provide a simple, consistent

interface to I/O devices– Typically part of the kernel

Page 22: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-22

Some OS Concepts•Program

– A static file of machine code on a disk

•Process– A program in execution.– The collection of OS data structures and

resources owned by a program while it is running.

Page 23: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-23

Producing an Executable

Source Code Object File

Compile

Libraries and other Object files

Link

Executable

Page 24: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-24

#include <sys/types.h>#include <dirent.h>#include "ourhdr.h"

int main(int argc, char *argv[]){

DIR *dp;struct dirent *dirp;

if (argc != 2) err_quit("a single argument (the directory name) is required");if ( (dp = opendir(argv[1])) == NULL) err_sys("can't open %s", argv[1]);

while ( (dirp = readdir(dp)) != NULL) printf("%s\n", dirp->d_name);

closedir(dp); exit(0);

}

Functions supplied by systemlibraries.These functions will contain atrap instruction.

A Simple Program to print a directory

Page 25: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-25

RAM

User Program #1

User Program #2

trap 002

Kernel

1

2

3

System/Kernel Mode

User Mode

1. Program performs trap2. OS determines service number3. Service is located and executed.4. Control returns to user program.

4

Based on a diagram from “Modern Operating Systems” byAndrew Tanenbaum.

Page 26: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-26

Steps in Making a System Call

There are 11 steps in making the system call :

read (fd, buffer, nbytes)

Page 27: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-27

Some System Calls For Process Management

Page 28: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-28

Some System Calls For File Management

Page 29: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-29

Some System Calls For Directory Management

Page 30: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-30

Some System Calls For Miscellaneous Tasks

Page 31: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-31

A System Call Example• A stripped down shell:

while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from

terminal */ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid( -1, &status, 0); /* wait for child to exit */} else { /* Child code */ execve (command, parameters, 0); /* execute command */ }}

Page 32: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-32

OS Structures

• Monolithic systems

• Hierarchy of layers

• Virtual machines

• Micro-kernel (client/server) model

Page 33: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-33

Monolithic System

• OS has no structure but is a collection of procedures with well defined calling interfaces

• Program - OS interface is via supervisor calls (SVC)

Interrupt Handler

Service routine

SVC

Program

Page 34: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-34

Simple structuring model for a monolithic system

Page 35: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-35

Monolithic System (Cont.)

• OS code is a binded object program and its source code may be logically divided into

• OS main program

• System call service routines

• Utility procedures which help service routines

Page 36: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-36

Layered System

• Structure of “THE” OS (a batch OS)

Page 37: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-37

Layered System (Cont.)0. Process switching, multi programming,

CPU scheduling1. Memory and swap space (disk)

management (“segment controller”)2. Message interpretation, job control (JCL)

functions3. I/O management (virtual peripherals)4. User programs5. Operator

Page 38: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-38

Layered System (Cont.)

• Synchronisation between layers : Hardware and software (semaphores) interrupts

• Each layer provides some sort of a “virtual machine”

Page 39: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-39

Virtual Machines

Physical HardwareVirtual Machine

OS1 OS2 OS3 OS4

User Programs

• VM provides “n” duplicates of physical hardware using software. So different Oses can work in the same machine at the same time

Page 40: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-40

What is wrong so far?

• OS is one large program that provides all the required services.

• Anytime you add a new device you must– get a device driver for the device

– recompile the kernel with the new device driver

– reboot the machine so the new kernel will be used

Page 41: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-41

Micro-Kernel (Client/Server) Model• OS is a minimal core known as Kernel.

Page 42: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-42

• The kernel contains the minimum of function– memory management

– basic CPU management

– inter-process communication (messages)

– I/O support

• Other functionality provided by user level processes

Page 43: Ceng 334 - Operating Systems 1-1 Chapter 1: Introduction What is the aim of the subject? Why are OSes important? What is an OS? A bit of history Some basic.

Ceng 334 - Operating Systems 1-43

Characteristics of Kernel

• Makes use of message passing• Easy to replace server processes• Easier to write and port OS• Design is perfect for distributed systems

• Less performance