cs431 introduction to operating systems modern operating systems by andrew tanenbaum the linux...
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 [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
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?