advanced operating systems introduction and overview

35
Advanced Operating Systems Introduction and Overview

Upload: charlene-daniel

Post on 18-Jan-2018

217 views

Category:

Documents


0 download

DESCRIPTION

Course Objectives (cont’d) Practical aspects from a computer scientist’s perspective. These include: 1. A case study throughout the course of a real commercial operating system kernel. We will present Linux kernel for this purpose. We will also make comparisons to other operating systems e.g. Windows where applicable. 2. Hands on training as a programmer on using operating system services in relatively complex programs. I will assign 4 to 5 programming assignments for this purpose.

TRANSCRIPT

Page 1: Advanced Operating Systems Introduction and Overview

Advanced Operating Systems

Introduction and Overview

Page 2: Advanced Operating Systems Introduction and Overview

Course objectives• In depth treatment of topics from design

perspective. • Consider why things are done in a certain way

instead of just how they are done. • Consider design alternatives.• Be able to tell the difference between a good

design and a bad design. • Also consider engineering tradeoffs involved in

the design process.

Page 3: Advanced Operating Systems Introduction and Overview

Course Objectives (cont’d)• Practical aspects from a computer scientist’s

perspective. These include: 1. A case study throughout the course of a

real commercial operating system kernel. We will present Linux kernel for this purpose. We will also make comparisons to other operating systems e.g. Windows where applicable.

2. Hands on training as a programmer on using operating system services in relatively complex programs. I will assign 4 to 5 programming assignments for this purpose.

Page 4: Advanced Operating Systems Introduction and Overview

Course Objectives (cont’d)

• Research perspectiveWe will also look at some contemporary and

classical research on operating system topics in the research literature. For this purpose, I will assign a few readings from the literature on operating systems.

Page 5: Advanced Operating Systems Introduction and Overview

Course Pre-requisites• C/C++ programming. This is an essential pre-

requisite since without this, you won’t be able to do the assignments.

• An undergraduate first course on data structures. This should include implementation of elementary data structures e.g. lists, stack, queues, trees etc. in a high level language like C or C++ etc.

• A first course on operating systems would be helpful but not strictly required since we will cover the basics of each topic before diving into the deeper stuff.

Page 6: Advanced Operating Systems Introduction and Overview

What is an operating system?

Top-down view• Provides an extended or virtual machine abstraction to

user programs Easier to program than the underlying hardware. All services are invoked and accomplished through system calls.

Bottom-up view• Acts as a resource manager of a complex system • Resources consist of processors, memories, timers,

disks, mice, keyboard, network interfaces, printers etc.• OS manages allocation of these resources to user

programs in an orderly and controlled manner

Page 7: Advanced Operating Systems Introduction and Overview

Resource multiplexing

• OS multiplexes resources in two ways: In time, In space Time multiplexing involves different programs taking

turns in using the resource. Example: CPU scheduling, printer sharing.

Space multiplexing involves different program getting part of the resource possibly at the same time. Example: memory is divided into several running programs.

Page 8: Advanced Operating Systems Introduction and Overview
Page 9: Advanced Operating Systems Introduction and Overview
Page 10: Advanced Operating Systems Introduction and Overview
Page 11: Advanced Operating Systems Introduction and Overview

Type of Operating Systems• Main frame operating systems Huge amounts of I/O activity. 1000s of disks not unusual Provide batch, transaction and time sharing services. Batch processing is routine non-interactive jobs. e.g. claims

processing, sales reporting etc. Transaction processing systems handle large number of

small requests e.g. check processing in banks, air line reservations

etc. Time-sharing systems allow multiple remote users to run jobs

at the same time e.g. querying a database. OS Optimized for these tasks. Example is OS/390• Server operating systems Run on very large PCs, workstations or even main-frames.

They serve multiple users over a network simultaneously and allow them to share hardware and software. Examples are web servers, database transaction servers etc. Examples of OS in this class are Win2K, XP and flavors of UNIX.

Page 12: Advanced Operating Systems Introduction and Overview

• Multiprocessor operating systems OS is basically a variation to server operating

systems with special provisions for connectivity and communication management between different CPUs.

• PC operating systems OS provides a nice interface to a single user.

Typically used for word processing, spread sheets, Internet access etc.

Page 13: Advanced Operating Systems Introduction and Overview

• Real-time operating systems Characterized by time as the key parameter. Real-

time response to internal and external events is more important than any other design goal. Classified into two sub-categories: Hard and Soft real-time

Example applications include Industrial process control, robotics and assembly lines, air traffic control, network routers and telecommunication switches, multi-media systems etc.

• Embedded operating systems Embedded in small devices e.g. palm-top computers

e.g. PDA, TV sets, micro-wave ovens, mobile phones. They have characteristics of real-time systems (mainly soft real-time) but also have restraints on power consumption, memory usage etc. Examples include PalmOS and Windows CE. Height of this type is smart-card systems.

Page 14: Advanced Operating Systems Introduction and Overview
Page 15: Advanced Operating Systems Introduction and Overview
Page 16: Advanced Operating Systems Introduction and Overview
Page 17: Advanced Operating Systems Introduction and Overview
Page 18: Advanced Operating Systems Introduction and Overview
Page 19: Advanced Operating Systems Introduction and Overview
Page 20: Advanced Operating Systems Introduction and Overview
Page 21: Advanced Operating Systems Introduction and Overview
Page 22: Advanced Operating Systems Introduction and Overview
Page 23: Advanced Operating Systems Introduction and Overview
Page 24: Advanced Operating Systems Introduction and Overview
Page 25: Advanced Operating Systems Introduction and Overview

NetworkingAn OS typically has a built-incommunication infra-structure thatimplements:a. A network protocol software stack

b. A route lookup module to map a given destination address to a next hop.

c. A name lookup service to map a given name to a destination machine.

Page 26: Advanced Operating Systems Introduction and Overview
Page 27: Advanced Operating Systems Introduction and Overview
Page 28: Advanced Operating Systems Introduction and Overview
Page 29: Advanced Operating Systems Introduction and Overview
Page 30: Advanced Operating Systems Introduction and Overview
Page 31: Advanced Operating Systems Introduction and Overview
Page 32: Advanced Operating Systems Introduction and Overview
Page 33: Advanced Operating Systems Introduction and Overview

• Minimum functionality in the kernel. Most of the OS functionality in user level servers. Examples of servers are file servers, terminal servers, memory servers etc.

• Each part becomes more manageable. Crashing of one service doesn’t bring the system down.

• Distribution of the system becomes transparent.• Kernel provides basic primitives e.g. transport of

messages, loading programs into memory, device handling.

• Policy decisions are made in the user space while mechanisms are implemented in micro-kernel.

Page 34: Advanced Operating Systems Introduction and Overview

• Micro-kernel lends itself well to OO design principles. Components based design possible.

• Disadvantage: Performance• Solutions: • Reduce micro-kernel size• Increase micro-kernel size

Page 35: Advanced Operating Systems Introduction and Overview

Virtual Machine Monitors• Export a virtual machine to user programs thatresembles hardware. • A virtual machine consists of all hardware features

e.g. user/kernel modes, I/O, interrupts and pretty much everything a real machine has.

• A virtual machine may run any OS. Examples: JVM, VmWare, User-Mode Linux (UML). Advantage: portabilityDisadvantage: slow speed