Modern Operating Systems
By Andrew Tanenbaum
The Linux Programming Interface
By Kerrisk
Introduction to Operating Systems
• 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
• 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 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
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
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
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
• 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
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
• 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
• First form of “shared” computing
• Few, large machines
• Specialized operator
• Secure
CS431 - cotter 13
• User != operator
• Programs submitted on cards
• Similar jobs “batched”
• Automatic job sequencing
CS431 - cotter 14
(Problem - no overlap in I/O & CPU)
CS431 - cotter 15
• Advantages: CPU not bound by card reader
• Could use multiple card readers, line printers
Card Reader
Satellite processor
Printer
Main
Computer
CS431 - cotter 16
• 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
• Introduces Job Scheduling
• Objective is to further improve efficiency
Reader
CS431 - cotter
CPU
Printer
18
Operating
System
Job 1
Job 2
Job 3
Job 4
CS431 - cotter 19
• I/O routine managed by system
• Memory Management
• CPU Scheduling
• Allocation of peripheral devices
CS431 - cotter 20
• 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
• Extends processing to the user
• Dedicated computer systems
• Complete set of I/O devices
• Improves convenience & responsiveness
• Security???
CS431 - cotter 22
CS431 - cotter
23
• Multi-processor systems
• CPUs share resources
• Increases throughput (more CPU power vs. I/O)
• Improves Reliability…
• Symmetric vs. Asymmetric multiprocessing
CS431 - cotter 24
• Communication between multiple processors
• Processors are loosely coupled
• Advantages
– Resource Sharing
– Computation Speedup (load sharing)
– Reliability
– Communication
CS431 - cotter 25
• Used to manage dedicated applications
• Process Controls
• Telecommunications
• Operating constraints well defined & fixed
• Hard vs. Soft real-time systems
CS431 - cotter 26
• 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
• 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
• 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