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