CS 4410 / CS4411 Operating Systems

39
CS 4410 / CS4411 Operating Systems Prof. Sirer & Prof. George Fall 2014 Cornell University

description

Prof. Sirer & Prof. George Fall 2014 Cornell University. CS 4410 / CS4411 Operating Systems. What’s This Course About?. Ostensibly, it’s about operating systems architecting complex software identifying needs and priorities separating concerns - PowerPoint PPT Presentation

Transcript of CS 4410 / CS4411 Operating Systems

Page 1: CS  4410 / CS4411 Operating Systems

CS 4410 / CS4411Operating Systems

Prof. Sirer & Prof. George

Fall 2014

Cornell University

Page 2: CS  4410 / CS4411 Operating Systems

What’s This Course About?

Ostensibly, it’s about operating systems architecting complex software identifying needs and priorities separating concerns implementing artifacts with desired

properties

It’s really about software design principles It just so happens that OSes illustrate

organizational principles and design patterns

Page 3: CS  4410 / CS4411 Operating Systems

What Kind of a Course Is This?

Constructive, top-down We start from first principles and re-derive

the design of every component of a complex system

Deconstructive, bottom-up We dissect existing systems, learn what

tradeoffs they make, what patterns they use

Page 4: CS  4410 / CS4411 Operating Systems

4

Course Objective

Establish a foundation for building complex programs

Architect systems Identify desirable properties Build large systems Debug complex systems

Understand all layers of the software stack between hardware and applications

Page 5: CS  4410 / CS4411 Operating Systems

What is an Operating System?

An operating system (OS) provides a virtual execution environment on top of hardware that is more convenient than the raw hardware interface “All of the code you did not write” Simpler More reliable More secure More portable More efficient Hardware

Operating

System

Applications

Page 6: CS  4410 / CS4411 Operating Systems

What do OSes do?

Manage physical resources

Provide virtual resources

Implement mechanisms and enforce policies to arbitrate access to resources

Mediate the interaction of mutually distrusting applications

Provide an extensible, general-purpose platform for a variety of applications

Page 7: CS  4410 / CS4411 Operating Systems

What Resources Do OSes Control?

Physical Resources CPU, memory, disks, networks, I/O devices,

Virtual Resources Files, directories, sockets, names, …

Page 8: CS  4410 / CS4411 Operating Systems

Issues in OS DesignStructure: how is an OS organized?

Concurrency: how are parallel activities created and controlled?

Sharing: how are resources shared?

Naming: how are resources named by users?

Protection: how are distrusting parties protected from each other?

Security: how to authenticate, authorize and ensure privacy?

Performance: why is it so slow?

Page 9: CS  4410 / CS4411 Operating Systems

More Issues

Reliability: how do we deal with failures?

Extensibility: how do we add new features?

Communication: how do we exchange information?

Scale: what happens as demands increase?

Persistence: how do we make information outlast the processes that created it?

Accounting: who pays the bills and how do we control resource usage?

Page 10: CS  4410 / CS4411 Operating Systems

Why Learn Operating Systems?

At most 1% of software developers will work on OS code

The material taught in this course is critical not just for building Oses, but for building correct, high-performance applications (clients of Oses), as well as building reusable platforms for others

This course will go far beyond OS design to cover all aspects of computer organization, including concurrency, synchronization, input/output, filesystems, networking, routing, distributed systems and so forth

Engineering pride alone requires full understanding

Page 11: CS  4410 / CS4411 Operating Systems

Fact

There has never been as exciting a time to work on systems hardware and software as now!!!

The world is increasingly dependent on computer systems Connected, networked, interlinked

People just do not know how to build robust systems

Page 12: CS  4410 / CS4411 Operating Systems

BSOD

Page 13: CS  4410 / CS4411 Operating Systems

BSOD

Page 14: CS  4410 / CS4411 Operating Systems

BSOD

Page 15: CS  4410 / CS4411 Operating Systems

Therac-25

A safety-critical system with software interlocks

Beam controlled entirely through a custom OS

Page 16: CS  4410 / CS4411 Operating Systems

Therac-25

Old system used a hardware interlock A lever that could either be in the “zap” or “x-ray”

position

New system was computer controlled

A synchronization failure was triggered when competent nurses used the back arrow to change the data on the screen “too quickly”

Page 17: CS  4410 / CS4411 Operating Systems

Therac-25 Outcome

Beam killed one person directly, burned others, and may have given inadequate treatment to cancer patients

Problem was very difficult to diagnose; initial fix involved removal of the back arrow key from the keyboard

People died because a programmer could not write correct code for a concurrent system

Page 18: CS  4410 / CS4411 Operating Systems

Denver airport

The most modern, most expensive airport in recent history

Cost overrun in excess of $2B

Highly automated luggage handling system was supposed to deliver your luggage to you at arrival

Lack of persistence caused luggage carts to “forget” their contents, sprinkling the luggage on the runway

Page 19: CS  4410 / CS4411 Operating Systems

USS Yorktown

Modern guided missile cruiser off of Norfolk, VA in 1998

Crew member entered 0 for a data value

Cascade of failures led to a failure of the propulsion system

Yorktown was dead in the water for a couple of hours

Page 20: CS  4410 / CS4411 Operating Systems

Bitcoin Banks

There is a new crop of systems for holding data known as NoSQL databases

We cautioned about the errors people were committing with NoSQL systems

The simplest attack against banks, of simultaneous withdrawals, actually works! Attackers stole millions of dollars from Bitcoin banks

One bank lost a million and folded Another lost $500K, took losses

Page 21: CS  4410 / CS4411 Operating Systems

Other Systems

FAA air traffic control system

IRS data management system

IBM “Microkernel”

Pentagon data security

Many others, too numerous to list

Page 22: CS  4410 / CS4411 Operating Systems

Summary

We do not have the necessary technologies and know-how to build robust computer systems

There is huge demand for people who deeply understand and can build robust systems

Page 23: CS  4410 / CS4411 Operating Systems

Philosophy

Not your grandfathe’s OS course

We believe that the following topics are critical for every software engineer Building concurrent systems Architecting networked components Building transactional systems

Not widely shared, the course is unique

Page 24: CS  4410 / CS4411 Operating Systems

Logistics

Lectures Tuesday, Thursday 2:55-4:10pm, Ives 305

Instructor Prof. Sirer, egs at systems.cs.cornell.edu Prof. George, mdgeorge at cs.cornell.edu Office Hours

Prof. Sirer: Tuesday 4:10-5:10pm Prof. George: Thursday 4:10-5:10pm

TAs

Page 25: CS  4410 / CS4411 Operating Systems

Communication

Course Web Page Office hours, assignments, lectures, and

other supplemental materials will be on the web site

Email cs4410staff at systems.cs.cornell.edu The email alias goes to us and the TAs, not to

the whole class

Page 26: CS  4410 / CS4411 Operating Systems

Administrative

Course has three components Lectures and Readings Exams Projects and MiniProjects

Textbook Anderson and Dahlin XXX

You are expected to keep up with all three

Page 27: CS  4410 / CS4411 Operating Systems

GradingCS4410 Breakdown ~40% MiniProjects ~12% Prelim 1 ~18% Prelim 2 ~25% Final ~5% Flexgrade (participation, attitude,

effort)

CS4411 Breakdown ~90% Projects ~10% Flexgrade

Grading will not be done on a curve It is our goal to be able to give everyone an

A+ Help us achieve this

Page 28: CS  4410 / CS4411 Operating Systems

Projects in CS4411

Projects will be done in two-person teams You may indicate a desired partner If they also indicate you, we will pair you up If you don’t have a preferred partner, we’ll

pair you up with someone suitable

Working in groups Start early, time management is key Manage the team effort Part of what you are supposed to learn is how

to manage to get work done in a small team

Page 29: CS  4410 / CS4411 Operating Systems

MiniProjects in 4410

There will be approximately 4-6 miniprojects

MiniProjects will be done individually

Working individually Start early, time management is key

Page 30: CS  4410 / CS4411 Operating Systems

Academic Integrity and Honor Code

All submitted work must be your own All homeworks must be your own independent work OK to study together Cannot share solutions, ever

Project groups submit joint work All group assignments must represent solely the work

of the two people in that group Cannot be in possession of someone else’s solution

Violations will be prosecuted to the fullest extent

Closed-book exams, no calculators

Page 31: CS  4410 / CS4411 Operating Systems

Our Expectations

Code of Silence Absolute quiet during lectures

If you have a question, please speak up Chances are 100% that someone else has the same question

No electronics, Luddite zone Scientific studies show that such classrooms

are far more effective

Page 32: CS  4410 / CS4411 Operating Systems

Enrollment SNAFU

There is great demand for CS courses in general, this course in particular

The department has decided that the only way to manage the demand is to award the limited slots according to need

I was not consulted during the capping process I did not implement the caps Having said that, I don’t know of any other way to

manage the demand

There was an error where the caps were set wrong, as result, some people who enrolled in April had to be unenrolled

The instructors had nothing to do with this!

Page 33: CS  4410 / CS4411 Operating Systems

Enrollments

If you are enrolled now, congrats! If you decide to drop the course, please do so

promptly so others can step in!

If you’re not yet enrolled yet, you need to place your name on a department-managed waitlist

The department, not the instructors, will triage the waitlist and send enrollment PINs

Page 34: CS  4410 / CS4411 Operating Systems

Prerequisite

CS3410 or equivalent required. Or permission of instructor.

Required means required.

If you did not take CS3410 or equivalent, you must contact course staff, explain your situation and request permission.

Page 35: CS  4410 / CS4411 Operating Systems

Draft SyllabusIntroductionArchitectural Support for Operating SystemsProcesses and ThreadsSchedulingSynchronization, Mutual Exclusion, Spin Locks, Semaphores, Condition VariablesDeadlocks, Detection and AvoidanceMemory ManagementNetworking, LANs, WANs, Ethernet, ARP, IP, UDP, TCPDisks and RAIDFilesystems, UFS, LFSSecurity

Page 36: CS  4410 / CS4411 Operating Systems

Draft Project Plan for CS4411

Threads and ConcurrencySchedulingBasic Datagram NetworkingReliable Streaming ProtocolsRoutingFilesystems

Page 37: CS  4410 / CS4411 Operating Systems

About Prof. Sirer

Interests: OSes, distributed systems,self-organizing andpeer-to-peer systems

Bitcoin, flaws within, fixes to

Sailing, wind, sea, woodworking (aka body modification)

Page 38: CS  4410 / CS4411 Operating Systems

About Prof. George

Cornell grad student through2013, lecturer since 2013

Took 4410 a decade ago!

Interested in designing andbuilding systems and reasoningabout code.

Just taught 4410 over the summer

Page 39: CS  4410 / CS4411 Operating Systems

Questions?

And demographics…