Overview of Operating Systems
Download
Report
Transcript Overview of Operating Systems
Overview of Operating Systems
Introduction to Operating Systems: Module 0
Course Introduction
Course
Overview
Objectives
Topics
Prerequisite
Course
knowledge
Material
Texbooks
eBooks
Course
homepage http://cs.uwm.edu/~cs537/
Helpful
links
Syllabus
D2L
Assignments,
quizzes
Objectives
Understand the principles of OS
concentration on systems which are
design
• general-purpose
• multi-user
• single processor
See
how OS design can impact program performance
Understand concurrency, and learn of the problems (such
as race conditions) and tools used to solve them (such as
semaphores)
Learn major features of the POSIX API
as implemented by Solaris
Core course topics
Computer
architecture & OS foundations
Process management
Concurrency
Synchronization
Memory
management
CPU scheduling
File systems
Prerequisite knowledge
The
C++ programming language
Assembly language for some machine
Some familiarity with UNIX
Basic graph theory
Understanding of basic probability
Conditional
probability
Expected value
What is an operating system?
Functions
of an Operating System
Control
resource allocation
Provide a user an environment for doing work
Traditional
Layers,
Design Approaches
modules, microkernel, monolithic
Traditional Types
General
Purpose
Multiprocessor
Distributed
Real-time
of Operating Systems
Functions of an OS: Resource Management
Time
management - temporal properties
CPU
Space
and disk transfer scheduling
management
main
and secondary storage allocation
Synchronization
IPC,
and deadlock handling
race condition, coordination
Accounting
resource
and status information
usage tracking
Functions of an OS: User Environment
Transforms bare hardware machine into higher
level abstractions
Execution environment
process
The
file
implementation
processor does not know about processes
manipulation
Blocks
interrupt
Serial
I/O
and sectors file names and directories
handling
device event button click
actions
Delayed
block write scheduled Save a file
What can understanding the OS do for me?
The
machine code executed while your program is running
is determined by the C++ statements in your program, the
compiler and libraries, and the operating system
C++ program
Library
C++
Compiler
Library
Operating System
Library
Library
CPU