CS24: Introduction to Computer Systems Day 1: March 29, 2004

advertisement
CS24:
Introduction to
Computer Systems
Day 1: March 29, 2004
Introduction and Overview
CALTECH CS24 Spring 2004 -- DeHon
Today
•
•
•
•
•
What
Who
Why
What Detail (Overview)
How (Course Details)
CALTECH CS24 Spring 2004 -- DeHon
What
• How the computer works below the
programming language
– (mostly above the physics)
• How processor is organized
– How your computation is actually
performed
• Why is there an Operating System
– And what does it do for you?
CALTECH CS24 Spring 2004 -- DeHon
What
• What lies
between the
– Programming
Language
– Physics
• Abstraction
Stack
CALTECH CS24 Spring 2004 -- DeHon
What
• New class
– First time being taught here
• Only course in CS undergraduate core that
actually deals with computers as physical
machines
• Dynamics / typical case
• How we manage computer systems
– Coordinate shared resources
– Not just one program
• How do we deal with technology
– Technology change
CALTECH CS24 Spring 2004 -- DeHon
Who?
• Two Instructors
– Jason Hickey
• represent high-level view
• What does the Programmer want?
– André DeHon
• Represent the low-level view
• What does the hardware want?
– How does it perform well?
CALTECH CS24 Spring 2004 -- DeHon
Who?
• TAs:
– Michael Wrighton
– Cristian Tapus
CALTECH CS24 Spring 2004 -- DeHon
Why? (low road)
• As programmers: want to understand
your tool.
– How does it work?
– When does it break?
– What are those constants we kept ignoring
in CS20, CS38?
– How do you get the most out of it?
• Why is this a challenge?
CALTECH CS24 Spring 2004 -- DeHon
Why?
• As innovators: want to understand the
prior art
– How does it work?
– What’s wrong with it?
– How can we make it better?
CALTECH CS24 Spring 2004 -- DeHon
Why? (high road)
• What problems does it solve?
– What are the big ideas that makes this
work?
• Is the Instruction Set Architecture (ISA)
abstraction necessary?
• Isolation?
• Virtualization?
•…
CALTECH CS24 Spring 2004 -- DeHon
Why? (Future)
• This will all break down in the next 10-20
years.
– Low-end: Approaching Atomic scale
• Time to pay attention to low-level physics
– Sequential processor at end of scaleable life
– High-end: Scale of modern systems/software
already stressing (breaking?) model
• How do we enable bigger systems?
• In critical roles?
• Reduce human time?
CALTECH CS24 Spring 2004 -- DeHon
Why? (Future)
• This will all break down in the next 10-20
years.
• We’re going to have to rebuild it.
– What were the good/high-level ideas we
need to keep? Can and should be
transferred?
• You:
– May need to help lead the transition
– At least need to understand the big ideas to
survive the transition
CALTECH CS24 Spring 2004 -- DeHon
Why?
• We are not learning this to pay homage to
–
–
–
–
–
–
Bill Gates
Dennis Richie, Ken Thompson
Linus Torvalds
Fred Brooks, Gene Amdahl
John Hennessey, Dave Patterson
Bob Colwell
• Learning this so we can move forward while not
repeating the mistakes of the past
– Keep the good ideas
– Discard the bad ones
– Solve problems they didn’t need to…
CALTECH CS24 Spring 2004 -- DeHon
Back to What
CALTECH CS24 Spring 2004 -- DeHon
Physics
• Ultimately, we can build machines which
compute because the physical world
computes
 SF=0,F=ma, F=-kx, …
 SI=0,V=IR, DV=(I DT)/C,
Id=Is(e[qv/kt]-1)
CALTECH CS24 Spring 2004 -- DeHon
Devices
• From these phenomena we can build
useful devices
– Store charge  store value
– Switch current based on value
CALTECH CS24 Spring 2004 -- DeHon
Gates
• From these devices we can build gates
CALTECH CS24 Spring 2004 -- DeHon
Boolean Logic
• From gates we can build any particular
boolean function
– E.g. o=(a+/b)(b+c)+/b*/c
Day 2
CALTECH CS24 Spring 2004 -- DeHon
Universal Turing Machine
• From CS21 (CS20), you know we can,
in theory,
– build a machine which will emulate any
other machines
– A Universal Machine…
CALTECH CS24 Spring 2004 -- DeHon
Programmable Logic
• Likewise, we can build collections of
gates which will perform any function
CALTECH CS24 Spring 2004 -- DeHon
Programmable Machine
• …and ultimately, a machine which can
perform (almost) any computable
function
Week 2
CALTECH CS24 Spring 2004 -- DeHon
How Organize Programmable
Machine?
• Theory tells us that we can build such a
machine?
• Engineering asks how we should build
such a machine
CALTECH CS24 Spring 2004 -- DeHon
What’s in here?
CALTECH CS24 Spring 2004 -- DeHon
Raw Machine
• Even this is pretty raw
– add, or, xor, ld, st, br
• How do we make it usable?
• Invent conventions:
– Using memory
– Representing data
– Making procedure calls
CALTECH CS24 Spring 2004 -- DeHon
Runtime Systems
• Over time, we build up a collection of
software necessary to run the machine
– Load program
– Allocate/deallocate memory
– Perform I/O
– Handle asynchronous events
–…
CALTECH CS24 Spring 2004 -- DeHon
It might be nice if…
• Could run more than one program
• All the programs didn’t need to know about
each other
• Could run more than one program at a time
– Didn’t require a physical processor for each
program want to run
• Could use more memory than you have
physical RAM
• Could communicate with other programs
CALTECH CS24 Spring 2004 -- DeHon
It might be nice if…
• One program crashing didn’t crash the
machine
• Could monitor a running (crashed)
program
• Could share the machine amongst
people (programs) that don’t necessarily
know about or trust each other…
CALTECH CS24 Spring 2004 -- DeHon
Operating System
• …we need some way to virtualize and
manage our physical resources
• This is what an Operating System
provides
• Most of our programs run in the context of
an operating system and an instruction set
processor
– API: Application Programming Interface
CALTECH CS24 Spring 2004 -- DeHon
What
• What lies
between the
– Programming
Language
– Physics
• Abstraction
Stack
CALTECH CS24 Spring 2004 -- DeHon
How
CALTECH CS24 Spring 2004 -- DeHon
Course Components
• Text (CS:APP)
• Lectures
• Recitations
– Fri. 4pm here
– Also Fri. 2pm (TBD)
• Homework
– 9 weekly labs
• Midterm, final
CALTECH CS24 Spring 2004 -- DeHon
• Grade:
 70% for best 8 of
9 labs
 10% midterm
 20% final
Resources
• Course Web Page
<http://www.cs.caltech.edu/courses/cs24/>
• Administrative handout
– Give you all of these details
• Mailing Lists
• Forum
• Computer Accounts
CALTECH CS24 Spring 2004 -- DeHon
Pragmatics
• Programming in C and Assembly
– First recitation on C
– Text has asides for “new” C programmers
– …will learn assembly bottom up
– …will help C, since C is so close to
assembly…
• Online submission systems
CALTECH CS24 Spring 2004 -- DeHon
Feedback Sheets
• Please fill one out each class
– anonymous
• New course
– Need to understand what works
– So can improve for future lectures
– So can improve for future years
CALTECH CS24 Spring 2004 -- DeHon
You Action Items
•
•
•
•
Get book
Read chapter 1
Find web page
Read administrative handout
– Signup for mailing list, find forum
• Get computer account
– If don’t already have one
• Read Assignment 1
– Pickup support code
CALTECH CS24 Spring 2004 -- DeHon
Big Ideas
• Valuable not to program physics directly
– (most of the time…)
• Abstraction hierarchy
– From programming language to physics
• Valuable to abstract and share resources
• Need to Understand Hierarchy
– to make the most of machines
– to improve/re-invent
CALTECH CS24 Spring 2004 -- DeHon
Questions
CALTECH CS24 Spring 2004 -- DeHon
Download