CS431

Introduction to

Operating Systems

Modern Operating Systems

By Andrew Tanenbaum

The Linux Programming Interface

By Kerrisk

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 2

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 3

Course 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

4

Course Syllabus

Text Book

Modern Operating Systems – 3 rd Edition

Andrew Tanenbaum, Prentice Hall, 2008

The Linux Programming Interface

A Linux and UNIX System Programming Handbook

Kerrisk - No Starch Press, 2010

Running Linux – 5 th Edition

Dalheimer & Welsh, O’Reilly Published 2006 cs431-cotter 5

Course Syllabus

Grading Policy:

Homework

Midterm #1

Midterm #2

35%

20%

20%

Final Exam 25%

Grade Scale:

100 - 93

93 – 90

89 – 87

86 - 83

82

– 80

79 – 77

A

A-

B+

B

B-

C+

76 - 73 C

72 – 70 C-

69 – 67 D+

66 - 63 D

62 – 60 D-

59 - 0 F

CS431 - cotter 6

Course Schedule (tentative)

Introduction - Ch 1

– 1 week

Linux Intro – Ch 10

– 1 week

Processes - Ch 2

– 1 week

Scheduling - Ch 2, 10

– 1 week

Process Sync - Ch 2, 10

– 1-2 weeks

Deadlocks - Ch 6

– 1 week

Memory 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 7

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 8

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

CS431 - cotter

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

9

Abstract View of System

Components

User 1

User 2 User 3 User n

CS431 - cotter task 1 task 2 task 3

System and Applications Programs

Operating System task n

Computer Hardware

10

Definitions of Operating System

• Resource Manager

– Allow multiple programs to run

– Manage and protect memory, I/O, etc.

• Control Program

• Kernel

CS431 - cotter 11

History of Operating Systems

Generations:

• (1945 –55) Vacuum Tubes

• (1955 –65) Transistors and Batch Systems

• (1965 –1980) ICs and Multiprogramming

• (1980 –Present) Personal Computers

CS431 - cotter

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

12

Simple Batch Systems

• First form of “shared” computing

• Few, large machines

• Specialized operator

• Secure

CS431 - cotter 13

Batch System Process

• User != operator

• Programs submitted on cards

• Similar jobs “batched”

• Automatic job sequencing

CS431 - cotter 14

Batch Job Sequence

Requirements

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

CS431 - cotter 15

Off-Line Operation

• Advantages: CPU not bound by card reader

• Could use multiple card readers, line printers

Card Reader

Satellite processor

Printer

Main

Computer

CS431 - cotter 16

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 17

Spooling

• Introduces Job Scheduling

• Objective is to further improve efficiency

Reader

CS431 - cotter

CPU

Printer

18

Multiprogramming Batched

Systems

Operating

System

Job 1

Job 2

Job 3

Job 4

CS431 - cotter 19

Multiprogramming

Requirements

• I/O routine managed by system

• Memory Management

• CPU Scheduling

• Allocation of peripheral devices

CS431 - cotter 20

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 21

Personal Computer Systems

• Extends processing to the user

• Dedicated computer systems

• Complete set of I/O devices

• Improves convenience & responsiveness

• Security???

CS431 - cotter 22

CS431 - cotter

PC Components

23

Parallel Systems

• Multi-processor systems

• CPUs share resources

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

• Improves Reliability…

• Symmetric vs. Asymmetric multiprocessing

CS431 - cotter 24

Distributed Systems

• Communication between multiple processors

• Processors are loosely coupled

• Advantages

– Resource Sharing

– Computation Speedup (load sharing)

– Reliability

– Communication

CS431 - cotter 25

Real-Time Systems

• Used to manage dedicated applications

• Process Controls

• Telecommunications

• Operating constraints well defined & fixed

• Hard vs. Soft real-time systems

CS431 - cotter 26

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 27

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 28

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?

cs431-cotter 29