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

Post on 30-Mar-2015

260 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CS431Introduction to

Operating Systems

Modern Operating SystemsBy Andrew Tanenbaum

The Linux Programming InterfaceBy 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

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

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 cotterr@umkc.edu

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

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

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

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

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

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

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

CS431 - cotter 11

Definitions of Operating System

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

• Control Program

• Kernel

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

CS431 - cotter 13

Simple Batch Systems

• First form of “shared” computing

• Few, large machines

• Specialized operator

• Secure

CS431 - cotter 14

Batch System Process

• User != operator

• Programs submitted on cards

• Similar jobs “batched”

• Automatic job sequencing

CS431 - cotter 15

Batch Job Sequence Requirements

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

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

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)

CS431 - cotter 18

Spooling

• Introduces Job Scheduling

• Objective is to further improve efficiency

Reader PrinterCPU

CS431 - cotter 19

Multiprogramming Batched Systems

Operating System

Job 1

Job 2

Job 3

Job 4

CS431 - cotter 20

Multiprogramming Requirements

• I/O routine managed by system

• Memory Management

• CPU Scheduling

• Allocation of peripheral devices

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

CS431 - cotter 22

Personal Computer Systems

• Extends processing to the user

• Dedicated computer systems

• Complete set of I/O devices

• Improves convenience & responsiveness

• Security???

CS431 - cotter 23

PC Components

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

CS431 - cotter 25

Distributed Systems

• Communication between multiple processors

• Processors are loosely coupled

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

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

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

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.

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?

top related