





















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The first lecture of the course Introduction to Computer Systems at Carnegie Mellon University. The course aims to teach students how to be more effective programmers by understanding the underlying system. The lecture covers the course overview, course perspective, and five realities of computer systems. The lecture also emphasizes the importance of understanding the details of underlying implementations and memory referencing bugs. examples of memory referencing bugs and memory system performance.
Typology: Lecture notes
1 / 29
This page cannot be seen from the preview
Don't miss anything!






















Spring^2009 st^1 Lecture,^
thAug. 25 Instructors: Roger^ Dannenberg
and^ Greg^ Ganger
Architecture Design^ pipelined^ processor
in^ Verilog
Systems Implement^ large^ portions
of^ operating
system
Systems Implement^ small‐scale
embedded^
systems
and^ simulate
network^ protocols
to^ show^ how
by^ knowing
more^ about
the^ underlying
system,^ one
can^ be^ more
effective^ as
a^ programmer
to Write programs^ that
are^ more^ reliable
and^ efficient
^ Incorporate
features^ that
require^ hooks
into^ OS
signal^ handlers
course^ for^ dedicated
hackers ^ We^ bring^
out^ the^ hidden
hacker^ in^ everyone
in^ this^ course
that^ you^ won’t
see^ elsewhere
&^ Signed^ Int’s:
Yes!
+^ ‐1e20)^ +^ 3.
^ 1e20^ +^ (‐
1e20^ +^ 3.14)
operations^
have^ important
mathematical
properties
of^ representations
satisfy^ “ring” properties ^ Commutativity,
associativity,
distributivity
operations^
satisfy^ “ordering” properties ^ Monotonicity,
values^ of^ signs
to^ understand
which^ abstractions
apply^ in^ which
contexts
issues^ for^ compiler
writers^ and
serious^ application
programmers
and^ managed
are^ memory
dominated
distant^ in^ both
time^ and^ space
virtual^ memory
effects^ can^
greatly^ affect
program
to^ characteristics
of^ memory
system^ can
lead^ to
major^ speed
improvements
double fun(int i){ volatile double d[1] = {3.14};volatile long int a[2];a[i] = 1073741824; / Possibly out of bounds /return d[0];} fun(0)^ –>
3. fun(1)^ –>
3. fun(2)^ –>
3. fun(3)^ –>
2. fun(4)^ –>
3.14, then segmentation fault
array^ references
values
malloc/free
has^ any^ effect
depends^ on
system^ and
compiler
a^ distance Corrupted^ object
logically^ unrelated
to^ one^ being
accessed
^ Effect^ of^ bug
may^ be^ first
observed^ long
after^ it^ is^ generated
in^ Java^ or^ ML
what^ possible
interactions
may^ occur
tools^ to^ detect
referencing
errors
10:1^ performance
range^ depending
on^ how^ code
written
at^ multiple^
levels:^ algorithm,
data^ representations,
procedures,
and^ loops
compiled^ and
executed
program^ performance
and^ identify
bottlenecks
performance
without^ destroying
code^ modularity
and^ generality
critical^ to^ program
reliability^ and
performance
‐level^ issues
arise^ in^ presence
of^ network
^ Concurrent
operations^
by^ autonomous
processes
^ Coping^ with
unreliable^ media ^ Cross^ platform
compatibility ^ Complex^ performance
issues
Systems:^ A^
Programmer’s
Perspective”,
Prentice^ Hall
really^ matters
for^ the^ course! ^ How^ to^ solve
labs ^ Practice^ problems
typical^ of^ exam
problems
Language,^ Second
Edition”,^ Prentice
Hall,^1988
level^ concepts
concepts,^ important
tools^ and^ skills
for^ labs,^ clarification
of
lectures,^ exam
coverage
of^ the^ course
‐depth^ understanding
of^ an^ aspect
of^ systems
and^ measurement
of^ concepts
&^ mathematical
principles