Title: CSCI 3753: Operating Systems Spring 2001
1CSCI 3753 Operating SystemsSpring 2001
- Zach Bergen/ Phil Levis
- Department of Computer Science
- University of Colorado
2General Information
- Focus is on operating systems
- Complies with ACM IEEE courses
- Prerequisites CSci 2270 ECEN 2220
- Recitations will have new material in them
- Do your work in the CSEL Lab
- No late homework!
- OK to discuss assignments, but
- Must develop your own code
- Cannot look at others code
- Cannot use code in a book
3General Information (cont)
- Course grade
- There will be about 5-6 programming assignments
- Homework 20
- Programming projects 50
- Midterm (15) -- Tentatively on March 6th
- Final (15)
- Office hours T Th, 200 to 400pm ECCS 101
(check on http//www.cs.colorado.edu/zbergen) - Get all information from web page
http//www.cs.colorado.edu/csci3753
4int roduction
5Why Study OS?
- Understand model of operation
- Easier to see how to use the system
- Enables you to write efficient code
- Learn to design an OS
- Even so, OS is pure overhead of real work
- Application programs have the real value to
person who buys the computer
6System Software
- Independent of applications, but common to all
- Examples
- C library functions
- A window system
- A database management system
- Resource management functions
7Purpose of an OS(What is Resource Management?)
- Process An executing program
- Resource Anything that is needed for a process
to run - Memory
- Space on a disk
- The CPU
- An OS creates resource abstractions
- An OS manages resource sharing
8Hardware
Network
Memory
9Operating System
- Hardware
- disks
- memory
- processors
- network
- monitor
- keyboard
- mouse
- Operating system
- files
- programs
- speed
- communication
- windows, graphics
- input
- locator
10Files
Memory
11Issues
- Naming
- Allocating space on disk (permanent storage)
- organized for fast access
- minimize waste
- Shuffling data between disk and memory
(high-speed temporary storage)
12Programs
Memory
13Layering
14Making Layering Work
- Libraries
- code that anyone, in principle, could write
- if its broken, it affects only its users
- (there could be a lot of them )
- private vs. shared
- static vs. dynamic
- accessed via linking
- often multiple versions coexisting
- Kernel
- code that is part of the system
- if its broken or misused, it affects everyone
- access must be carefully controlled
15MemorySharing (1)
Program 1
Program 2
Program 3
Operating System
Memory
16MemorySharing (2)
Program 1
Program 2
Program 3
17Virtual Memory
Program 1
Virtual Address Space
Memory
Program 2
Program 3
18History of Virtual Memory
- 1961 Atlas computer, University of Manchester,
UK - 1962 Burroughs B5000
- 1972 IBM OS/370
- 1979 3 BSD Unix, UC Berkeley
- 1993 Microsoft Windows NT 3.0
- 2000 Apple Macintosh OS X
19Apple Invents VM
- Welcome to the Brave New World of Crash-Resistant
Computing - Lets start with the notion of protected memory,
and why its so important. One of the ways an
operating system ensures reliability is by
protecting applications through a mechanism
called protected memory (essentially walling off
applications from each other). - Along with the protected memory mechanism, Darwin
provides a super-efficient virtual memory manager
to handle that protected memory space. So you no
longer have to worry about how much memory an
application like Photoshop needs to open large
files. - http//www.apple.com/macosx/inside.html
20Concurrency
21Parallelism
22History of Concurrency
- Multiprogramming
- 1961, 1962 Atlas, B5000
- 1965 OS/360 MFT, MVT
- Timesharing
- 1961 CTSS (developed by BBN for DEC PDP-1)
- mid 60s
- Dartmouth Timesharing System (DTSS)
- TOPS-10 (DEC)
- late 60s
- Multics (MIT, GE, Bell Labs)
- Unix (Bell Labs)
23Another Apple Innovation
- With Preemptive Multitasking, Everything Happens
at Once - In todays fast-paced world, you rarely get to do
one thing at a time. Even in the middle of
transforming, say, a Photoshop file, you may need
to find a crucial piece of information on the web
while you compose an urgent reply to a customer.
What you need is a computer that can handle
several different tasks at once, giving priority
to your primary application, but still crunching
away at other jobs in the background. - Darwin makes this possible by incorporating a
powerful concept called preemptive multitasking.
- ibid.
24Security
- Authentication
- who are you? can you prove it?
- Authorization
- Adam may read that file Matt may not
- Pete may control that program Tom may not
- Ioannis may read and write that file Matt and
Pete may only read it
25Abstract Resources
User Interface
Application
Abstract Resources (API)
Middleware
OS Resources (OS Interface)
OS
Hardware Resources
26Resource Abstraction
load(block, length, device) seek(device,
236) out(device, 9)
27Resource Abstraction
load(block, length, device) seek(device,
236) out(device, 9)
write(char block, int len, int device, int
track, int sector) ... load(block, length,
device) seek(device, 236) out(device, 9)
...
28Resource Abstraction
load(block, length, device) seek(device,
236) out(device, 9)
write(char block, int len, int device, int
track, int sector) ... load(block, length,
device) seek(device, 236) out(device, 9)
...
write(char block, int len, int device,int addr)
29Resource Abstraction
load(block, length, device) seek(device,
236) out(device, 9)
write(char block, int len, int device, int
track, int sector) ... load(block, length,
device) seek(device, 236) out(device, 9)
...
write(char block, int len, int device,int addr)
fprintf(fileID, d, datum)
30Resource Sharing
- Space- vs time-multiplexed sharing
- To control sharing, must be able to isolate
resources - OS usually provides mechanism to isolate, then
selectively allows sharing - How to isolate resources
- How to be sure that sharing is acceptable
- Concurrency
31Multiprogramming
- Technique for sharing the CPU among runnable
processes - Process may be blocked on I/O
- Process may be blocked waiting for other resource
- While one process is blocked, another should be
able to run - Multiprogramming OS accomplishes CPU sharing
automatically - Reduced time to run all processes
32How Multiprogramming Works
Process 1
Process 2
Process 3
Time-multiplexed CPU
Process 4
Space-multiplexed Memory
33OS Strategies
- Batch processing
- Timesharing
- Personal computer workstations
- Process control real-time
- Network
- Distributed
34Batch Processing
- Uses multiprogramming
- Job (file of OS commands) prepared offline
- Batch of jobs given to OS at one time (crontab
file) - OS processes jobs one-after-the-other
- No human-computer interaction
- OS optimizes resource utilization
- Batch processing (as an option) still used today
35Timesharing
- Uses multiprogramming
- Support interactive computing model (Illusion of
multiple consoles) - Different scheduling memory allocation
strategies than batch - Tends to propagate processes
- Considerable attention to resource isolation
(security protection) - Tend to optimize response time
36Personal Computers
- CPU sharing among one persons processes
- Power of computing for personal tasks
- Graphics
- Multimedia
- Trend toward very small OS
- OS focus on resource abstraction
- Rapidly evolved to personal multitasking
systems
37Process Control Real-Time
- Computer is dedicated to a single purpose
- Classic embedded system
- Must respond to external stimuli in fixed time
- Continuous media popularizing real-time
techniques - An area of growing interest
38Networks
- LAN (Local Area Network) evolution
- 3Mbps (1975) -gt 10 Mbps (1980)-gt100 Mbps (1990)
- High speed communication means new way to do
computing - Shared files
- Shared memory
- ???
39Distributed OS
App
App
App
App
App
App
Distributed OS
Multiple Computers connected by a Network
40Evolution of Modern OS
Timesharing
Network OS
Memory Mgmt
PC Wkstation
Client-Server Model
Scheduling
Batch
Protection
Protocols
System software
Real-Time
Human-Computer Interface
Memory Mgmt
Protection
Scheduling
Scheduling
Files
Devices
Modern OS
41Examples of Modern OS
- UNIX variants -- have evolved since 1970
- Windows NT -- has evolved since 1989 (much more
modern than UNIX) - Research OS -- still evolving
- Book uses Java as main example
- This course will use linux and UNIX (Solaris) as
the main example - Supplementary materials will be made available