Transcript Slides
Operating Systems
CS3013 / CS502
WEEK 1
COURSE INTRODUCTION
INTRODUCTION TO OPERATING SYSTEMS
OPERATING SYSTEM STRUCTURES
Agenda
2
Course Introduction
Introduction to Operating System
Operating System Concepts
Operating System Structures
Course Information
3
Website
http://nile.wpi.edu/~clee01/teaching/cs3013/
6:00-9:50pm class on Mondays
7 weeks for CS3013, 10 weeks for CS502
Office Hours
TBD
Textbook
Silberschatz, Galvin, and Gagne, Operating Systems Concepts,
Seventh Edition, John Wiley and Sons, 2005.
Why an Operating Systems Course?
4
WPI CS requirement
“Core area” for both undergrads and grads
Understanding of inner workings of “systems”
Combines CS concepts
Algorithms, languages, data structures, hardware
System design with tradeoffs
Better use of the computer
Prerequisites
5
C/C++ Programming
Data Structures
Computer Organization
Unix/Linux user experience and access
Homework, Projects and Exams
6
Homework
Designed to get you ready for exam
Review ideas taught in class
Projects
2 for CS3013 and 3 for CS502
Implementation in Unix environment
Exams
2 for CS3013 and 3 for CS502
Closed book, Closed notes
Grading
7
Grading
Homework – 10%
Projects – 30%
Exams – 60%
WPI Academic Honesty Policy
http://www.wpi.edu/Pubs/Policies/Honesty/policy.html
Late Policy – 25% per day
Contact Professor for extenuating circumstances
8
Questions?
Professor Background
9
Choong-Soo Lee
PhD Candidate in Computer Science Department
Interest in Systems Area
Operating Systems
Network Performance
Multimedia Performance
Student Background
10
Basic Information
Name
Class (freshman, sophomore, …)
Major (CS, EE, …)
C Experience
CS Courses Taken
Linux Experience
Operating System(s)
Agenda
11
Course Introduction
Introduction to Operating System
Operating System Concepts
Operating System Structures
Objectives
12
Identify operating systems
Explain the major OS issues
Describe the history of OS
Explain OS concepts
Identify services provided by OS
Describe different types of OS structures
Class Discussion
13
What operating systems do you know?
What is an operating system?
What do you like/dislike about OS(es) you know?
Components of a Computer System
14
Humans
Program Interface
User Programs
OS Interface
Operating System
Hardware Interface/
Privileged Instructions
CPU/Memory/Disk/etc
Functions of Operating System
15
Beautification Principle
Hide the details of the physical machine and provide a more
pleasant virtual machine
Resource Principle
Allocate resources to processes
Major OS Issues
16
Structure
Extensibility
Sharing
Concurrency
Naming
Scale
Security
Persistence
Protection
Communication
Performance
Distribution
Reliability
Accounting
OS History
17
Single program execution
No OS
Assembly or lower level language
Batch (Spooling)
Introduced notion of interrupts
Multiprogramming
Illusion of executing several programs simultaneously
Introduced notion of process
Distributed and Network Operating Systems
Specialized Operating Systems
OS History - Unix and Linux
18
Unix
Descendant of MULTICS
First “C” version in 1973
Posix (1981) defines standard Unix system calls
Linux
Open Source
1991, v.01 by Linus Torvalds for 80386 processor
Proper Unix process support
OS History – Linux
19
1994, v1.0
Enhanced file system
More devices, dynamic kernel modules
1995, v1.2
More hardware support
1996, v2.0
Multiple architectures, multiple processors
Threads, memory management
Today, v2.6
0.64% by Net Applications
5.2 million source lines of code (according to wikipedia)
OS History - Windows
20
1988, v1
Win32 API
1990, v3.1
Server and Workstation versions
1996, v4 (Windows 95)
Win95 Interface
Graphics to Kernel
OS History - Windows
21
2000, v5 (Windows 2000)
Micro-kernel
Multi-user (with terminal services)
4 versions
2005, Windows XP
4 versions: Home, Professional, Media Center, Tablet
2007, Windows Vista
5 versions: Ultimate, Home Premium, Home Basic, Business,
Enterprise
2009?, Windows 7
OS History - Windows
22
Today
91.65% by Net Applications
Aiming at robust, server market
Intel x86 only
Lines of code (according to wikipedia)
Windows NT 4.0 : 11-12 million
Windows 2000 : more than 29 million
Windows XP : 40 million
Windows Vista Beta 2 : 50 million
Objectives
23
Identify operating systems
Explain the major OS issues
Describe the history of OS
Explain OS concepts
Identify services provided by OS
Describe different types of OS structures
Agenda
24
Course Introduction
Introduction to Operating System
Operating System Concepts
Operating System Structures
Operating System Concepts
25
Processes
Memory Management
Input/Output
Files
System Calls
Process
26
Program vs. Process
Program : a set of data and code that manipulate it
Process : a program in execution
States of a Process
Running, Waiting, Ready, etc.
Process “Tree”
Memory Management
27
One chunk of physical memory
Process 1
Shared by all processes
Process 2
32 bit architecture
232 bytes 4GB
???
Process 4
Process 3
Input/Output
28
OS manages resources including other devices
Significant fraction of code
Want to be simple to use
CPU
Memory
Disk
Controller
System Bus
Printer
Controller
Files
29
Store data on disk
Directory “Tree”
Working Directory
root
Protection bits
Abstraction of I/O device
Pipe
classes
jobs
cs1101 cs1101 microsoft
cisco
System Calls
30
Way processes communicate with OS
OS specific
POSIX (1980s)
Portable Operating System Interface
Shells
31
User’s interface to OS
Simple commands
“cd”, “cat”, “top”
Modifiers
‘&’, ‘|’, ‘>’
Agenda
32
Course Introduction
Introduction to Operating System
Operating System Concepts
Operating System Structures
Services Provided by OS
33
User Interface
Program Execution
I/O Operations
File-system Manipulation
Communications
Error Detection
Resource Allocation
Accounting
Protection and Security
User Interface
34
Command Interpreter
Included in the kernel, or
External Program
Shells
bash, csh, tcsh, etc.
Provides some basic functionality
User Interface
35
Graphical User Interface
1970s, Xerox PARC Research Facility
1980s, Popular by Apple Macintosh
Windows 1.0
Unix Desktop Environments
User Interface
36
Graphical User Interface
Simple Systems
37
Started small and grew, no hardware support
Example
MS-DOS, Embedded Systems
Application Programming
Resident System Programming
MS-DOS Drivers
ROM - BIOS Device Drivers
Simple Systems
38
Example
Linux
Applications, User Space
System Libraries
Kernel
Terminal
With Modules
ppp
Device
Memory
cdrom
Layered Systems
39
Abstract layers
Can only talk to lower layers
Layer N
User interface
.
.
.
Layer 1
Layer 0
Hardware
Microkernel
40
Minimal Functions in Microkernel
Provide communication facility between applications
and services
Example
Mach
Tru64 Unix, QNX
User Process
File Server
Memory Server
Kernel
Virtual Machine
41
Abstract the hardware of a single computer into
several different execution environments
Example:
IBM VM/370 VMWare
Process
Process
Process
Operating System
Operating System
Operating System
Virtual Machine
Hardware
Virtual Machine
42
Example
Java Virtual Machine
Java Program
Java OS
Java VM
Process
Operating System
Hardware
Process
Objectives
43
Identify operating systems
Explain the major OS issues
Describe the history of OS
Explain OS concepts
Identify services provided by OS
Describe different types of OS structures