SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell
Systems I
Introduction to Computer Systems
Don Fussell
Spring 2011
Topics:
Theme
Five great realities of computer systems
How this fits within CS curriculum
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 2
Course Theme
Abstraction is good, but don’t forget reality!
Courses to date emphasize abstraction
Abstract data types
Asymptotic analysis
These abstractions have limits
Especially in the presence of bugs
Need to understand underlying implementations
Useful outcomes
Become more effective programmers
Able to find and eliminate bugs efficiently
Able to tune program performance
Prepare for later “systems” classes in CS
Compilers, Operating Systems, Networks, Computer Architecture, etc.
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 3
Great Reality #1
Int’s are not Integers, Float’s are not Reals
Examples
Is x2 ≥ 0?
Float’s: Yes!
Int’s:
40000 * 40000 --> 1600000000
50000 * 50000 --> ??
Is (x + y) + z = x + (y + z)?
Unsigned & Signed Int’s: Yes!
Float’s:
(1e20 + -1e20) + 3.14 --> 3.14
1e20 + (-1e20 + 3.14) --> ??
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 4
Computer Arithmetic
Does not generate random values
Arithmetic operations have important mathematical properties
Cannot assume “usual” properties
Due to finiteness of representations
Integer operations satisfy “ring” properties
Commutativity, associativity, distributivity
Floating point operations satisfy “ordering” properties
Monotonicity, values of signs
Observation
Need to understand which abstractions apply in which contexts
Important issues for compiler writers and serious application
programmers
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 5
Great Reality #2
You’ve got to know assembly
Chances are, you’ll never write program in assembly
Compilers are much better & more patient than you are
Understanding assembly key to machine-level execution
model
Behavior of programs in presence of bugs
High-level language model breaks down
Tuning program performance
Understanding sources of program inefficiency
Implementing system software
Compiler has machine code as target
Operating systems must manage process state
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 6
Assembly Code Example
Time Stamp Counter
Special 64-bit register in Intel-compatible machines
Incremented every clock cycle
Read with rdtsc instruction
Application
Measure time required by procedure
In units of clock cycles
double t;
start_counter();
P();
t = get_counter();
printf("P required %f clock cyclesn", t);
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 7
Code to Read Counter
Write small amount of assembly code using GCC’s asm facility
Inserts assembly code into machine code generated by compiler
static unsigned cyc_hi = 0;
static unsigned cyc_lo = 0;
/* Set *hi and *lo to the high and low order bits
of the cycle counter.
*/
void access_counter(unsigned *hi, unsigned *lo)
{
asm("rdtsc; movl %%edx,%0; movl %%eax,%1"
: "=r" (*hi), "=r" (*lo)
:
: "%edx", "%eax");
}
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 8
Code to Read Counter
/* Record the current value of the cycle counter. */
void start_counter()
{
access_counter(&cyc_hi, &cyc_lo);
}
/* Number of cycles since the last call to start_counter. */
double get_counter()
{
unsigned ncyc_hi, ncyc_lo;
unsigned hi, lo, borrow;
/* Get cycle counter */
access_counter(&ncyc_hi, &ncyc_lo);
/* Do double precision subtraction */
lo = ncyc_lo - cyc_lo;
borrow = lo > ncyc_lo;
hi = ncyc_hi - cyc_hi - borrow;
return (double) hi * (1 << 30) * 4 + lo;
}
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 9
Measuring Time
Trickier than it Might Look
Many sources of variation
Example
Sum integers from 1 to n
n Cycles Cycles/n
100 961 9.61
1,000 8,407 8.41
1,000 8,426 8.43
10,000 82,861 8.29
10,000 82,876 8.29
1,000,000 8,419,907 8.42
1,000,000 8,425,181 8.43
1,000,000,000 8,371,2305,591 8.37
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 10
Great Reality #3
Memory Matters
Memory is not unbounded
It must be allocated and managed
Many applications are memory dominated
Memory referencing bugs especially pernicious
Effects are distant in both time and space
Memory performance is not uniform
Cache and virtual memory effects can greatly affect program
performance
Adapting program to characteristics of memory system can lead to
major speed improvements
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 11
Memory Referencing Bug Example
main ()
{
long int a[2];
double d = 3.14;
a[2] = 1073741824; /* Out of bounds reference */
printf("d = %.15gn", d);
exit(0);
}
Alpha MIPS Linux
-g 5.30498947741318e-315 3.1399998664856 3.14
-O 3.14 3.14 3.14
(Linux version gives correct result, but
implementing as separate function gives
segmentation fault.)
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 12
Memory Referencing Errors
C and C++ do not provide any memory protection
Out of bounds array references
Invalid pointer values
Abuses of malloc/free
Can lead to nasty bugs
Whether or not bug has any effect depends on system and compiler
Action at a distance
Corrupted object logically unrelated to one being accessed
Effect of bug may be first observed long after it is generated
How can I deal with this?
Program in Java, Lisp, or ML
Understand what possible interactions may occur
Use or develop tools to detect referencing errors
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 13
Memory Performance Example
Implementations of Matrix Multiplication
Multiple ways to nest loops
/* ijk */
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
/* jik */
for (j=0; j<n; j++) {
for (i=0; i<n; i++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum
}
}
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 14
0
20
40
60
80
100
120
140
160
matrix size (n)
ijk
ikj
jik
jki
kij
kji
Matmult Performance (Alpha 21164)
Too big for L1 Cache Too big for L2 Cache
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 15
Blocked matmult perf (Alpha 21164)
0
20
40
60
80
100
120
140
160
50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500
matrix size (n)
bijk
bikj
ijk
ikj
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 16
Great Reality #4
There’s more to performance than asymptotic complexity
Constant factors matter too!
Easily see 10:1 performance range depending on how code written
Must optimize at multiple levels: algorithm, data representations,
procedures, and loops
Must understand system to optimize performance
How programs compiled and executed
How to measure program performance and identify bottlenecks
How to improve performance without destroying code modularity
and generality
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 17
Great Reality #5
Computers do more than execute programs
They need to get data in and out
I/O system critical to program reliability and performance
They communicate with each other over networks
Many system-level issues arise in presence of network
Concurrent operations by autonomous processes
Coping with unreliable media
Cross platform compatibility
Complex performance issues
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 18
Course Perspective
Most Systems Courses are Builder-Centric
Computer Architecture
Design pipelined processor in Verilog
Operating Systems
Implement large portions of operating system
Compilers
Write compiler for simple language
Networking
Implement and simulate network protocols
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 19
Course Perspective (Cont.)
Our Course is Programmer-Centric
Purpose is to show how by knowing more about the underlying
system, one can be more effective as a programmer
Enable you to
Write programs that are more reliable and efficient
Incorporate features that require hooks into OS
E.g., concurrency, signal handlers
Not just a course for dedicated hackers
We bring out the hidden hacker in everyone
Cover material in this course that you won’t see elsewhere
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 20
Teaching staff
Instructor - Don Fussell
Office: ACES 2.120
Office Hours: MW 11-12
Email: fussell@cs.utexas.edu
http://www.cs.utexas.edu/~fussell/
TA - Christian Miller
Office: TBD
Office Hours: TBD
Email: ckm@cs.utexas.edu
http://www.cs.utexas.edu/~ckm
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 21
Textbooks
Required
Randal E. Bryant and David R. O’Hallaron,
“Computer Systems: A Programmer’s Perspective”, Prentice Hall
2003.
http://csapp.cs.cmu.edu/
Optional
Brian Kernighan and Dennis Ritchie,
“The C Programming Language, Second Edition”, Prentice Hall,
1988
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 22
Course Components
Lectures
Higher level concepts
Recitations
Applied concepts, important tools and skills for labs, clarification
of lectures, exam coverage
Labs
The heart of the course
1 or 2 weeks
Provide in-depth understanding of an aspect of systems
Programming and measurement
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 23
Getting Help
Web
http://www.cs.utexas.edu/~fussell/courses/cs429h/
Copies of lectures, assignments, etc.
Clarifications to assignments
Newsgroup
TBD
Personal help
Office hours or by appointment with either instructor or TA
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 24
Policies: Assignments
Work groups
You must work alone on all labs
Handins
Assignments due at 11:59pm on specified due date.
Electronic handins only.
Makeup exams and assignments
Not normally done, except by prior arrangement with instructor.
Appealing grades
Within 7 days of due date or exam date.
Assignments: Talk to the TA
Exams: Talk to instructor.
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 25
Cheating
What is cheating?
Sharing code: either by copying, retyping, looking at, or supplying
a copy of a file.
What is NOT cheating?
Helping others use systems or tools.
Helping others with high-level design issues.
Helping others debug their code.
Penalty for cheating:
Removal from course with failing grade.
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 26
Policies: Grading
Exams (50%)
Three in class exams (10% each)
Final (20%)
All exams are open book/open notes.
Labs (50%)
7 labs (7-8% each)
Grading Characteristics
Lab scores tend to be high
Serious handicap if you don’t hand a lab in
We offer generous redemption programs
Tests typically have a wider range of scores
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 27
Facilities
Assignments will use the erstwhile Taylor Ubuntu
lab, now in Trailer Hall
You will need a CS account, if you don’t have one, see the UTCS
webpage for a form and the procedure to apply for a class account.
Getting help with the cluster machines:
See course Web page for info
Please direct questions to your TAs
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 28
Course Topics
Topics
Data representation
Hardware building blocks
From application programs to machine-level programs
Processor design
Pipelining principles
Memory hierarchies
Performance programming
Assignments to include
Learning to program in C (multiple)
Lab: Manipulating bits
Lab: Defusing a binary bomb
Lab: Hacking a buffer bomb
Lab: Program optimization
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 29
Lab Rationale
Each lab should have a well-defined goal such as solving a puzzle or winning
a contest.
Defusing a binary bomb.
Winning a performance contest.
Doing a lab should result in new skills and concepts
Data Lab: computer arithmetic, digital logic.
Bomb Labs: assembly language, using a debugger, understanding the stack
Perf Lab: profiling, measurement, performance debugging.
Etc.
University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 30
Good Luck!

Contenu connexe

Similaire à Computer systems

Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxVigneshkumar Ponnusamy
 
Track A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBMTrack A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBMchiportal
 
System programmin practical file
System programmin practical fileSystem programmin practical file
System programmin practical fileAnkit Dixit
 
Introduction
IntroductionIntroduction
IntroductionKamran
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 EstimationLawrence Bernstein
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
List and describe various features of electronic systems.List and .pdf
List and describe various features of electronic systems.List and .pdfList and describe various features of electronic systems.List and .pdf
List and describe various features of electronic systems.List and .pdfinfo824691
 
Core .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsCore .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsRobert MacLean
 
M sc in reliable embedded systems
M sc in reliable embedded systemsM sc in reliable embedded systems
M sc in reliable embedded systemsvtsplgroup
 
Karner resource estimation for objectory projects
Karner   resource estimation for objectory projectsKarner   resource estimation for objectory projects
Karner resource estimation for objectory projectsOcho08
 
Bsc it winter 2013 2nd sem
Bsc it  winter 2013 2nd semBsc it  winter 2013 2nd sem
Bsc it winter 2013 2nd semsmumbahelp
 

Similaire à Computer systems (20)

Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptx
 
Track A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBMTrack A-Compilation guiding and adjusting - IBM
Track A-Compilation guiding and adjusting - IBM
 
System programmin practical file
System programmin practical fileSystem programmin practical file
System programmin practical file
 
Introduction
IntroductionIntroduction
Introduction
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 Estimation
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
Windows PowerShell
Windows PowerShellWindows PowerShell
Windows PowerShell
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
List and describe various features of electronic systems.List and .pdf
List and describe various features of electronic systems.List and .pdfList and describe various features of electronic systems.List and .pdf
List and describe various features of electronic systems.List and .pdf
 
Savitch Ch 01
Savitch Ch 01Savitch Ch 01
Savitch Ch 01
 
Core .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsCore .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 Enhancements
 
M sc in reliable embedded systems
M sc in reliable embedded systemsM sc in reliable embedded systems
M sc in reliable embedded systems
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Karner resource estimation for objectory projects
Karner   resource estimation for objectory projectsKarner   resource estimation for objectory projects
Karner resource estimation for objectory projects
 
Bsc it winter 2013 2nd sem
Bsc it  winter 2013 2nd semBsc it  winter 2013 2nd sem
Bsc it winter 2013 2nd sem
 
Linux capacity planning
Linux capacity planningLinux capacity planning
Linux capacity planning
 
ELAVARASAN.pdf
ELAVARASAN.pdfELAVARASAN.pdf
ELAVARASAN.pdf
 
Cd lab manual
Cd lab manualCd lab manual
Cd lab manual
 
T2
T2T2
T2
 

Plus de Zainab&Sons

Proteins lecture 3
Proteins lecture 3Proteins lecture 3
Proteins lecture 3Zainab&Sons
 
Strutural organisation of proteins
Strutural organisation of proteinsStrutural organisation of proteins
Strutural organisation of proteinsZainab&Sons
 
Chemistry of lipids
Chemistry of lipidsChemistry of lipids
Chemistry of lipidsZainab&Sons
 
Lipids digestion
Lipids digestionLipids digestion
Lipids digestionZainab&Sons
 
Chemistry of lipids ii
Chemistry of lipids iiChemistry of lipids ii
Chemistry of lipids iiZainab&Sons
 
Lipid catabolism (fatty acid oxidation)
Lipid catabolism (fatty acid oxidation)Lipid catabolism (fatty acid oxidation)
Lipid catabolism (fatty acid oxidation)Zainab&Sons
 
Glycogen metabolism
Glycogen metabolismGlycogen metabolism
Glycogen metabolismZainab&Sons
 
Citric acid cycle (2)
Citric acid cycle (2)Citric acid cycle (2)
Citric acid cycle (2)Zainab&Sons
 
Cholesterol biosynthesis
Cholesterol biosynthesisCholesterol biosynthesis
Cholesterol biosynthesisZainab&Sons
 
Carb lec 2 &amp; 3 slides
Carb lec 2 &amp; 3 slidesCarb lec 2 &amp; 3 slides
Carb lec 2 &amp; 3 slidesZainab&Sons
 
Transcription translation
Transcription translationTranscription translation
Transcription translationZainab&Sons
 

Plus de Zainab&Sons (20)

Proteins lecture 3
Proteins lecture 3Proteins lecture 3
Proteins lecture 3
 
Strutural organisation of proteins
Strutural organisation of proteinsStrutural organisation of proteins
Strutural organisation of proteins
 
Lipoproteins
LipoproteinsLipoproteins
Lipoproteins
 
Lipids
LipidsLipids
Lipids
 
Chemistry of lipids
Chemistry of lipidsChemistry of lipids
Chemistry of lipids
 
Lipids digestion
Lipids digestionLipids digestion
Lipids digestion
 
Chemistry of lipids ii
Chemistry of lipids iiChemistry of lipids ii
Chemistry of lipids ii
 
Hormones
HormonesHormones
Hormones
 
Enzymes
EnzymesEnzymes
Enzymes
 
Urea cycle
Urea cycleUrea cycle
Urea cycle
 
Lipid catabolism (fatty acid oxidation)
Lipid catabolism (fatty acid oxidation)Lipid catabolism (fatty acid oxidation)
Lipid catabolism (fatty acid oxidation)
 
Glycogenolysis
GlycogenolysisGlycogenolysis
Glycogenolysis
 
Glycogen metabolism
Glycogen metabolismGlycogen metabolism
Glycogen metabolism
 
Gluconeogenesis
GluconeogenesisGluconeogenesis
Gluconeogenesis
 
Citric acid cycle (2)
Citric acid cycle (2)Citric acid cycle (2)
Citric acid cycle (2)
 
Cholesterol biosynthesis
Cholesterol biosynthesisCholesterol biosynthesis
Cholesterol biosynthesis
 
Carbohydrate
CarbohydrateCarbohydrate
Carbohydrate
 
Carb lec 2 &amp; 3 slides
Carb lec 2 &amp; 3 slidesCarb lec 2 &amp; 3 slides
Carb lec 2 &amp; 3 slides
 
Transcription translation
Transcription translationTranscription translation
Transcription translation
 
Nucleic acids
Nucleic acidsNucleic acids
Nucleic acids
 

Dernier

Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdfssuserdda66b
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 

Dernier (20)

Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

Computer systems

  • 1. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell Systems I Introduction to Computer Systems Don Fussell Spring 2011 Topics: Theme Five great realities of computer systems How this fits within CS curriculum
  • 2. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 2 Course Theme Abstraction is good, but don’t forget reality! Courses to date emphasize abstraction Abstract data types Asymptotic analysis These abstractions have limits Especially in the presence of bugs Need to understand underlying implementations Useful outcomes Become more effective programmers Able to find and eliminate bugs efficiently Able to tune program performance Prepare for later “systems” classes in CS Compilers, Operating Systems, Networks, Computer Architecture, etc.
  • 3. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 3 Great Reality #1 Int’s are not Integers, Float’s are not Reals Examples Is x2 ≥ 0? Float’s: Yes! Int’s: 40000 * 40000 --> 1600000000 50000 * 50000 --> ?? Is (x + y) + z = x + (y + z)? Unsigned & Signed Int’s: Yes! Float’s: (1e20 + -1e20) + 3.14 --> 3.14 1e20 + (-1e20 + 3.14) --> ??
  • 4. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 4 Computer Arithmetic Does not generate random values Arithmetic operations have important mathematical properties Cannot assume “usual” properties Due to finiteness of representations Integer operations satisfy “ring” properties Commutativity, associativity, distributivity Floating point operations satisfy “ordering” properties Monotonicity, values of signs Observation Need to understand which abstractions apply in which contexts Important issues for compiler writers and serious application programmers
  • 5. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 5 Great Reality #2 You’ve got to know assembly Chances are, you’ll never write program in assembly Compilers are much better & more patient than you are Understanding assembly key to machine-level execution model Behavior of programs in presence of bugs High-level language model breaks down Tuning program performance Understanding sources of program inefficiency Implementing system software Compiler has machine code as target Operating systems must manage process state
  • 6. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 6 Assembly Code Example Time Stamp Counter Special 64-bit register in Intel-compatible machines Incremented every clock cycle Read with rdtsc instruction Application Measure time required by procedure In units of clock cycles double t; start_counter(); P(); t = get_counter(); printf("P required %f clock cyclesn", t);
  • 7. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 7 Code to Read Counter Write small amount of assembly code using GCC’s asm facility Inserts assembly code into machine code generated by compiler static unsigned cyc_hi = 0; static unsigned cyc_lo = 0; /* Set *hi and *lo to the high and low order bits of the cycle counter. */ void access_counter(unsigned *hi, unsigned *lo) { asm("rdtsc; movl %%edx,%0; movl %%eax,%1" : "=r" (*hi), "=r" (*lo) : : "%edx", "%eax"); }
  • 8. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 8 Code to Read Counter /* Record the current value of the cycle counter. */ void start_counter() { access_counter(&cyc_hi, &cyc_lo); } /* Number of cycles since the last call to start_counter. */ double get_counter() { unsigned ncyc_hi, ncyc_lo; unsigned hi, lo, borrow; /* Get cycle counter */ access_counter(&ncyc_hi, &ncyc_lo); /* Do double precision subtraction */ lo = ncyc_lo - cyc_lo; borrow = lo > ncyc_lo; hi = ncyc_hi - cyc_hi - borrow; return (double) hi * (1 << 30) * 4 + lo; }
  • 9. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 9 Measuring Time Trickier than it Might Look Many sources of variation Example Sum integers from 1 to n n Cycles Cycles/n 100 961 9.61 1,000 8,407 8.41 1,000 8,426 8.43 10,000 82,861 8.29 10,000 82,876 8.29 1,000,000 8,419,907 8.42 1,000,000 8,425,181 8.43 1,000,000,000 8,371,2305,591 8.37
  • 10. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 10 Great Reality #3 Memory Matters Memory is not unbounded It must be allocated and managed Many applications are memory dominated Memory referencing bugs especially pernicious Effects are distant in both time and space Memory performance is not uniform Cache and virtual memory effects can greatly affect program performance Adapting program to characteristics of memory system can lead to major speed improvements
  • 11. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 11 Memory Referencing Bug Example main () { long int a[2]; double d = 3.14; a[2] = 1073741824; /* Out of bounds reference */ printf("d = %.15gn", d); exit(0); } Alpha MIPS Linux -g 5.30498947741318e-315 3.1399998664856 3.14 -O 3.14 3.14 3.14 (Linux version gives correct result, but implementing as separate function gives segmentation fault.)
  • 12. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 12 Memory Referencing Errors C and C++ do not provide any memory protection Out of bounds array references Invalid pointer values Abuses of malloc/free Can lead to nasty bugs Whether or not bug has any effect depends on system and compiler Action at a distance Corrupted object logically unrelated to one being accessed Effect of bug may be first observed long after it is generated How can I deal with this? Program in Java, Lisp, or ML Understand what possible interactions may occur Use or develop tools to detect referencing errors
  • 13. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 13 Memory Performance Example Implementations of Matrix Multiplication Multiple ways to nest loops /* ijk */ for (i=0; i<n; i++) { for (j=0; j<n; j++) { sum = 0.0; for (k=0; k<n; k++) sum += a[i][k] * b[k][j]; c[i][j] = sum; } } /* jik */ for (j=0; j<n; j++) { for (i=0; i<n; i++) { sum = 0.0; for (k=0; k<n; k++) sum += a[i][k] * b[k][j]; c[i][j] = sum } }
  • 14. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 14 0 20 40 60 80 100 120 140 160 matrix size (n) ijk ikj jik jki kij kji Matmult Performance (Alpha 21164) Too big for L1 Cache Too big for L2 Cache
  • 15. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 15 Blocked matmult perf (Alpha 21164) 0 20 40 60 80 100 120 140 160 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 matrix size (n) bijk bikj ijk ikj
  • 16. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 16 Great Reality #4 There’s more to performance than asymptotic complexity Constant factors matter too! Easily see 10:1 performance range depending on how code written Must optimize at multiple levels: algorithm, data representations, procedures, and loops Must understand system to optimize performance How programs compiled and executed How to measure program performance and identify bottlenecks How to improve performance without destroying code modularity and generality
  • 17. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 17 Great Reality #5 Computers do more than execute programs They need to get data in and out I/O system critical to program reliability and performance They communicate with each other over networks Many system-level issues arise in presence of network Concurrent operations by autonomous processes Coping with unreliable media Cross platform compatibility Complex performance issues
  • 18. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 18 Course Perspective Most Systems Courses are Builder-Centric Computer Architecture Design pipelined processor in Verilog Operating Systems Implement large portions of operating system Compilers Write compiler for simple language Networking Implement and simulate network protocols
  • 19. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 19 Course Perspective (Cont.) Our Course is Programmer-Centric Purpose is to show how by knowing more about the underlying system, one can be more effective as a programmer Enable you to Write programs that are more reliable and efficient Incorporate features that require hooks into OS E.g., concurrency, signal handlers Not just a course for dedicated hackers We bring out the hidden hacker in everyone Cover material in this course that you won’t see elsewhere
  • 20. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 20 Teaching staff Instructor - Don Fussell Office: ACES 2.120 Office Hours: MW 11-12 Email: fussell@cs.utexas.edu http://www.cs.utexas.edu/~fussell/ TA - Christian Miller Office: TBD Office Hours: TBD Email: ckm@cs.utexas.edu http://www.cs.utexas.edu/~ckm
  • 21. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 21 Textbooks Required Randal E. Bryant and David R. O’Hallaron, “Computer Systems: A Programmer’s Perspective”, Prentice Hall 2003. http://csapp.cs.cmu.edu/ Optional Brian Kernighan and Dennis Ritchie, “The C Programming Language, Second Edition”, Prentice Hall, 1988
  • 22. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 22 Course Components Lectures Higher level concepts Recitations Applied concepts, important tools and skills for labs, clarification of lectures, exam coverage Labs The heart of the course 1 or 2 weeks Provide in-depth understanding of an aspect of systems Programming and measurement
  • 23. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 23 Getting Help Web http://www.cs.utexas.edu/~fussell/courses/cs429h/ Copies of lectures, assignments, etc. Clarifications to assignments Newsgroup TBD Personal help Office hours or by appointment with either instructor or TA
  • 24. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 24 Policies: Assignments Work groups You must work alone on all labs Handins Assignments due at 11:59pm on specified due date. Electronic handins only. Makeup exams and assignments Not normally done, except by prior arrangement with instructor. Appealing grades Within 7 days of due date or exam date. Assignments: Talk to the TA Exams: Talk to instructor.
  • 25. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 25 Cheating What is cheating? Sharing code: either by copying, retyping, looking at, or supplying a copy of a file. What is NOT cheating? Helping others use systems or tools. Helping others with high-level design issues. Helping others debug their code. Penalty for cheating: Removal from course with failing grade.
  • 26. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 26 Policies: Grading Exams (50%) Three in class exams (10% each) Final (20%) All exams are open book/open notes. Labs (50%) 7 labs (7-8% each) Grading Characteristics Lab scores tend to be high Serious handicap if you don’t hand a lab in We offer generous redemption programs Tests typically have a wider range of scores
  • 27. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 27 Facilities Assignments will use the erstwhile Taylor Ubuntu lab, now in Trailer Hall You will need a CS account, if you don’t have one, see the UTCS webpage for a form and the procedure to apply for a class account. Getting help with the cluster machines: See course Web page for info Please direct questions to your TAs
  • 28. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 28 Course Topics Topics Data representation Hardware building blocks From application programs to machine-level programs Processor design Pipelining principles Memory hierarchies Performance programming Assignments to include Learning to program in C (multiple) Lab: Manipulating bits Lab: Defusing a binary bomb Lab: Hacking a buffer bomb Lab: Program optimization
  • 29. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 29 Lab Rationale Each lab should have a well-defined goal such as solving a puzzle or winning a contest. Defusing a binary bomb. Winning a performance contest. Doing a lab should result in new skills and concepts Data Lab: computer arithmetic, digital logic. Bomb Labs: assembly language, using a debugger, understanding the stack Perf Lab: profiling, measurement, performance debugging. Etc.
  • 30. University of Texas at Austin CS429H - Introduction to Computer Systems Fall 2011 Don Fussell 30 Good Luck!