cs431 introduction to operating systems modern operating systems by andrew tanenbaum the linux...

29
CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

Upload: lacey-loader

Post on 30-Mar-2015

259 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431Introduction to

Operating Systems

Modern Operating SystemsBy Andrew Tanenbaum

The Linux Programming InterfaceBy Kerrisk

Page 2: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 2

CS431 Introduction to Operating Systems

Course Objectives

• To study and apply concepts relating to operating systems, such as concurrency and control of asynchronous processes, deadlocks, memory management, processor and disk scheduling, parallel processing, and file system organization

Page 3: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 3

Course Outcomes• Demonstrate an understanding of:

– the differences between processes and threads. – the different process or thread synchronization

methods and the tradeoffs between them.– the different memory management techniques used

in Operating Systems. – the different I/O management techniques used in

Operating Systems. – the tradeoffs in design and implementation

concepts used in the development of Operating Systems

Page 4: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

cs431-cotter 4

Course SyllabusCourse Syllabus

Course Meeting Time

Tuesday and Thursday 2:00 to 3:15 pm

Location Bloch 014

Instructor: Bob Cotter

e-mail [email protected]

Web page: http://sce.umkc.edu/~cotterr

Office Hours:

Tuesday and Thursday 4:00 to 5:00 pm

Location FH450P or by appointment

Prerequisites: CS291, CS352

Page 5: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

cs431-cotter 5

Course Syllabus

Text Book

Modern Operating Systems – 3rd Edition

Andrew Tanenbaum, Prentice Hall, 2008

The Linux Programming Interface

A Linux and UNIX System Programming Handbook

Kerrisk - No Starch Press, 2010

Running Linux – 5th Edition

Dalheimer & Welsh, O’Reilly Published 2006

Page 6: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 6

Course Syllabus

Grading Policy:

Homework 35%

Midterm #1 20%

Midterm #2 20%

Final Exam 25%

Grade Scale:

100 - 93 A

93 – 90 A-

89 – 87 B+

86 - 83 B

82 – 80 B-

79 – 77 C+

76 - 73 C

72 – 70 C-

69 – 67 D+

66 - 63 D

62 – 60 D-

59 - 0 F

Page 7: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 7

Course Schedule (tentative)Introduction - Ch 1

– 1 weekLinux Intro – Ch 10

– 1 weekProcesses - Ch 2

– 1 weekScheduling - Ch 2, 10

– 1 weekProcess Sync - Ch 2, 10

– 1-2 weeksDeadlocks - Ch 6

– 1 weekMemory Mgmt - Ch 3

– 1 week

Virtual Memory - Ch 3– ½ week

File System – Ch 4– 1 week

I/O Systems - Ch 5– 1 week

Multi-Processor Sys – Ch 8– 1 week

Security - Ch 9– 1 week

Linux Review – Ch 10– 1 week

Exams (2) – 1 week

Page 8: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 8

What is an Operating System?

• A program that acts as an intermediary between a user of a computer and the computer hardware

• Goals:– Execute programs– Make the Computer System Convenient

• Use the system efficiently

Page 9: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 9

What Is An Operating System

A modern computer consists of:

• One or more processors• Main memory• Disks• Printers• Various input/output devices

Managing all these components requires a layer of software – the operating system

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Page 10: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 10

Abstract View of System Components

User 1 User 2 User 3 User n

task 1 task 2 task 3 task n

System and Applications Programs

Operating System

Computer Hardware

Page 11: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 11

Definitions of Operating System

• Resource Manager– Allow multiple programs to run– Manage and protect memory, I/O, etc.

• Control Program

• Kernel

Page 12: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 12

History of Operating Systems

Generations:

• (1945–55) Vacuum Tubes• (1955–65) Transistors and Batch Systems• (1965–1980) ICs and Multiprogramming• (1980–Present) Personal Computers

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Page 13: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 13

Simple Batch Systems

• First form of “shared” computing

• Few, large machines

• Specialized operator

• Secure

Page 14: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 14

Batch System Process

• User != operator

• Programs submitted on cards

• Similar jobs “batched”

• Automatic job sequencing

Page 15: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 15

Batch Job Sequence Requirements

(Problem - no overlap in I/O & CPU)

Page 16: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 16

Off-Line Operation

• Advantages: CPU not bound by card reader• Could use multiple card readers, line printers

Card Reader

Printer

Satelliteprocessor

MainComputer

Page 17: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 17

Spooling

• Use disk to store input and output

• Simultaneous Peripheral Operation on-line

• Significantly improves efficiency

• Creates a job pool (I/O vs CPU)

Page 18: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 18

Spooling

• Introduces Job Scheduling

• Objective is to further improve efficiency

Reader PrinterCPU

Page 19: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 19

Multiprogramming Batched Systems

Operating System

Job 1

Job 2

Job 3

Job 4

Page 20: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 20

Multiprogramming Requirements

• I/O routine managed by system

• Memory Management

• CPU Scheduling

• Allocation of peripheral devices

Page 21: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 21

Time-sharing Systems

• Next logical extension

• User jobs managed by Job Scheduler

• User connected as a system peripheral device

• User gets access to file system for data and code

Page 22: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 22

Personal Computer Systems

• Extends processing to the user

• Dedicated computer systems

• Complete set of I/O devices

• Improves convenience & responsiveness

• Security???

Page 23: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 23

PC Components

Page 24: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 24

Parallel Systems

• Multi-processor systems

• CPUs share resources

• Increases throughput (more CPU power vs. I/O)

• Improves Reliability…

• Symmetric vs. Asymmetric multiprocessing

Page 25: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 25

Distributed Systems

• Communication between multiple processors

• Processors are loosely coupled

• Advantages– Resource Sharing– Computation Speedup (load sharing)– Reliability– Communication

Page 26: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 26

Real-Time Systems

• Used to manage dedicated applications

• Process Controls

• Telecommunications

• Operating constraints well defined & fixed

• Hard vs. Soft real-time systems

Page 27: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 27

The Operating System Zoo

• Mainframe operating systems• Server operating systems• Multiprocessor operating systems• Personal computer operating systems• Handheld operating systems• Embedded operating systems• Sensor node operating systems• Real-time operating systems• Smart card operating systems

Page 28: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

CS431 - cotter 28

Summary

• Operating Systems evolved to:– Make computers easier to use– Improve the utilization of computing resources

• Design and function of OS has evolved as the cost of resources goes down

• OS is generally the most complex “program” running in a computing system.

Page 29: CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk

cs431-cotter 29

Questions

• What is spooling? What problem was it designed to address?

• What are examples of computing systems that don’t need all of the components shown on slide 23? What are other common major elements that aren’t shown on this slide?

• What is the major difference between a hard real-time system and a soft real-time system? What is an example of each?