Download Course Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Plan 9 from Bell Labs wikipedia , lookup

Process management (computing) wikipedia , lookup

Copland (operating system) wikipedia , lookup

Mobile operating system wikipedia , lookup

RSTS/E wikipedia , lookup

Spring (operating system) wikipedia , lookup

Burroughs MCP wikipedia , lookup

Security-focused operating system wikipedia , lookup

Distributed operating system wikipedia , lookup

Unix security wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Transcript
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 [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
4
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
5
Course Syllabus
Grade Scale:
Grading Policy:
Homework
35%
Midterm #1
20%
Midterm #2
20%
Final Exam
25%
CS431 - cotter
100 - 93
A
93 – 90
89 – 87
86 - 83
82 – 80
79 – 77
76 - 73
72 – 70
69 – 67
66 - 63
62 – 60
AB+
B
BC+
C
CD+
D
D-
59 - 0
F
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
CS431 - cotter
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
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-13-6006639
9
Abstract View of System
Components
User 1
task 1
User 2
User 3
task 2
task 3
System and Applications Programs
User n
task n
Operating System
Computer Hardware
CS431 - cotter
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
PC Components
CS431 - cotter
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