About Me Bhuvan Urgaonkar Operating Systems Assistant Professor, - - PDF document

about me
SMART_READER_LITE
LIVE PREVIEW

About Me Bhuvan Urgaonkar Operating Systems Assistant Professor, - - PDF document

About Me Bhuvan Urgaonkar Operating Systems Assistant Professor, CSE Operating Systems Ph.D., Sept. 2005, Univ. of Mass. Amherst CSE 411 CSE 411 Research areas Operating systems, Distributed systems, Computer networks


slide-1
SLIDE 1

1

Operating Systems Operating Systems CSE 411 CSE 411

Introduction Introduction and Overview and Overview Sept. Sept. 6 2006 - Lecture 1 6 2006 - Lecture 1 Instructor: Instructor: Bhuvan Urgaonkar Bhuvan Urgaonkar

About Me

  • Bhuvan Urgaonkar

– Assistant Professor, CSE

– Ph.D., Sept. 2005, Univ. of Mass. Amherst – Research areas

  • Operating systems, Distributed systems, Computer networks

– Office hours: Thu 5-7 PM, or by appointment – Office: 338D, IST Building – Email: bhuvan @ cse

Welcome!

Administrative Stuff Teaching Assistants

  • Yuan Fang

– Office hours: M 10-11 AM, W 11.30-12.30 PM, 346D – Email: yufang @ cse

  • Arjun R. Nath

– Office hours: Tue 5-7 PM – Email: anath @ cse

slide-2
SLIDE 2

2

Online Resources and Text-book

  • Course Web page:

– http://www.cse.psu.edu/~bhuvan/teaching/fall06/411/411.html

  • All material will be available via ANGEL

– Please seek help from the TAs if needed

  • Textbook

– Operating Systems Concepts, 7th ed. Silberschatz, Galvin, and Gagne

Course Mailing List

  • Via ANGEL

– Use with care

  • I will send a test email, please respond to my

email address if you don’t receive it by Friday

  • Welcome to write to me or the TAs

– Make sure to include “411” in the subject

Grading

  • Quizzes (approx. one per week): 15%

– Made available each Mon, due on Wed (midnight)

  • Written home-works (5): 15%
  • Projects (3): 35%
  • Exams (3): 35%
  • 90+: A, 75-89: (A, B], 65-74: (B, C], …

– Subject to change; will not make it stricter – No relative grading - relax :)

Grading

  • Projects will be done in groups of 2

– One group of size 3 will be allowed if needed – If your partner drops the course …

  • 2 Exams, each on a different subset of the material;

final exam comprehensive

  • Late policy:

– Strict deadlines for quizzes and home-works – Loss @ 20% per extra day for projects – Inform TAs well in advance if there is a real reason for a delay in project submission – Same for conflict exams

slide-3
SLIDE 3

3

Grading

  • Projects

– 50% grade on how functional your project is – The other 50% on your write-up and presentation

  • We will give instructions on what we expect when we make the

projects available

  • Quizzes:

– Online on ANGEL – Multiple-choice, mostly

Computing Resources

  • Solaris or Linux accounts for projects
  • Email me or the TAs if you don’t have an

account or have any doubts/problems

Academic Honesty

  • Do all assignments on your own

– Quizzes, home-works, projects

  • We will use software to compare project

source codes

– Both partners on each team are expected to know everything about each project

Assumed Background

  • First course on algorithms and data structures
  • Comfortable programming in C/C++

– Comfortable with a debugger like gdb

  • Preliminary understanding of computer architecture

– We will cover some basics in this course

  • Talk to me if you have doubts
  • Background poll to be turned in by next Monday
slide-4
SLIDE 4

4

Before We Begin …

  • Some advice

– Speak up in class, ask questions – Attend all classes

  • Hint: Ideas concerning homeworks, exam questions, …

– Do all assignments on your own! – Make good use of office hours – Bring printouts to class and take notes on them – Read text-book soon after class

  • Sections to read will be made available on the Web site alongside

lecture notes

  • Even better: read before class and ask questions

Operating Systems: Introduction & Background

What is an Operating System (OS)?

  • Literal meaning

– Software that helps operate a computer

  • Lack of consensus on the term operate
  • Overloaded term

– Software that runs on a computer when nothing else is running (e.g., right after it boots up => kernel)

  • Very restrictive, what about dynamically loaded device drivers?

– Windows = Any other OS + Windows Media Player + …

  • Very inclusive, why not everything else in the world?

What is an OS

  • There is no single truth here

– Our OS somewhere between these extremes

  • Definition using negation

– Applications

  • Moving the burden to defining an application :)

– OS = all software minus applications

  • Helps the applications use the computer
  • Helps manage the resources of the computer
slide-5
SLIDE 5

5

Why do we need an OS?

  • Why not provide this functionality in

hardware?

– Why this separate piece of software?

A Little Bit of History

The Dark Ages (1940s - 60s)

Hardware: expensive; humans: cheap

  • Evolution of functionality

– Single user – Batch processing – Overlap of I/O and computation – Multi-programming

  • 1. Single User
  • One user at a time on console
  • Computer executes one function at a time

– No overlap: computation & I/O

  • User must be at console to debug

Multiple users => inefficient use of machine

slide-6
SLIDE 6

6

  • 2. Batch Processing
  • Execute multiple “jobs” in batch:

– Load program – Run – Print results, dump machine state – Repeat

  • Users submit jobs (on cards or tape)
  • Human schedules jobs
  • A program loads & runs jobs

– The Operating System

More efficient use of machine, complicates debugging

  • 3. Overlap I/O and Computation
  • Before: machine waits for I/O to complete
  • New approach:

– Allow CPU to execute while waiting – Add buffering

  • Data fills “buffer” and then output

– and interrupt handling

  • I/O events trigger a signal (“interrupt”)

More efficient use of machine, but still one job at a time

  • 4. Multiprogramming
  • Allow several programs to run at same time

– Run one job until I/O – Run another job, etc.

  • OS manages interaction between programs:

– Which jobs to start – Protects program’s memory from others – Decides which to resume when CPU available

So what does an OS do?

  • Two kinds of functionality

– Management of computer resources

  • Sharing CPU between tasks
  • Memory management

– Certain services to users

  • Load programs, run them
slide-7
SLIDE 7

7

OS Complexity

  • Increased functionality & complexity
  • First OS failures

– Multics (GE & MIT): announced 1963, released 1969 – OS/360 released with 1000 known bugs

  • Need to treat OS design scientifically
  • Managing complexity becomes key to…

The Renaissance (1970s)

Hardware: cheap; humans: expensive

  • Users share system via terminals
  • The UNIX era

– Multics:

  • army of programmers, six years

– UNIX:

  • three guys, two years
  • “Shell”: composable commands
  • But: response time & thrashing

– Need for improved resource management

The Industrial Revolution (1980s)

Hardware very cheap; humans expensive

  • Widespread use of PCs

– IBM PC: 1981, Macintosh: 1984

  • Simple OS (DOS, MacOS)

– No multiprogramming, concurrency, memory protection, virtual memory, … – Later: networking, file-sharing, remote printing… – GUI added to OS

The Modern Era (1990s-now)

Hardware cheap; processing demands increasing

  • “Real” operating systems on PCs

– NT (1991); Mac OS X; Linux

  • Different modalities:

– Parallel: Multiple processors, one machine – Distributed: Multiple networked processors – Real-time: Strict or loose deadlines – Sensor networks: Many small computers

slide-8
SLIDE 8

8

OSes Today

  • Active research area

– Top CS conferences, several distinguished researchers/groups – Intersects with theory/algos., software engg., architecture, distrib. comp.

  • Major market presence

– Microsoft, Apple, HP, …

  • New environments, new devices

– Web, P2P systems, Internet apps, sensor networks, mobile devices, multimedia, …

  • New challenges

– Distributed systems, heterogeneous devices, ubiquitous computing, utility computing, mobile computing, autonomic computing

Outline of this Course Course Outline

  • Resource Management (and some services an OS provides to

programmers)

– CPU management – Memory management – I/O management (emphasis: Disk)

  • Cross-cutting design considerations and techniques

– Quality-of-service/fairness, monitoring, accounting, caching, software design methodology, security and isolation

  • Advanced topics

– Distributed systems – Data centers, multi-media systems, real-time systems, virtual machines

  • Next time:

– Background on Computer Architecture

  • Do the following this week:

– Reply to me/TAs if you don’t receive a “welcome” email via ANGEL by Friday – Take the poll on ANGEL (just 4-5 questions, no grades) – Form project groups (2 per group) and send us email – Talk to the TAs if problem with ANGEL account or with CSE Solaris/Linux accounts