0% found this document useful (0 votes)
27 views52 pages

01 Overview

This document provides an overview of an introductory computer systems course at Carnegie Mellon University. It discusses the course theme of how systems knowledge can make programmers more effective. It also outlines three "realities" covered in the course: integers and floats are finite representations and do not perfectly model mathematics; understanding assembly language is important for examining low-level execution and performance; and memory management affects bugs, performance, and application behavior.

Uploaded by

nizamdin1002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views52 pages

01 Overview

This document provides an overview of an introductory computer systems course at Carnegie Mellon University. It discusses the course theme of how systems knowledge can make programmers more effective. It also outlines three "realities" covered in the course: integers and floats are finite representations and do not perfectly model mathematics; understanding assembly language is important for examining low-level execution and performance; and memory management affects bugs, performance, and application behavior.

Uploaded by

nizamdin1002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Carnegie Mellon

Course  Overview  
 
15-­‐213/18-­‐213/15-­‐513:  Introduc�on  to  Computer  Systems    
1st  Lecture,  Aug  30,  2016  

Instructors:    
Randy  Bryant  
Mar�n  Carlisle  
Phil  Gibbons  
Brian  Railing  

The  course  that  gives  CMU  its  “Zip”!    

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   1  


Carnegie Mellon

Overview  
¢ Big  Picture  
§ Course  theme  
§ Five  reali�es  
§ How  the  course  fits  into  the  CS/ECE  curriculum  
¢ Academic  integrity  
¢ Logis�cs  and  Policies  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   2  


Carnegie Mellon

The  Big  Picture  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   3  


Carnegie Mellon

Course  Theme:    
(Systems)  Knowledge  is  Power!  
¢ Systems  Knowledge  
§ How  hardware  (processors,  memories,  disk  drives,  network  infrastructure)  
plus  so�ware  (opera�ng  systems,  compilers,  libraries,  network  protocols)  
combine  to  support  the  execu�on  of  applica�on  programs  
§ How  you  as  a  programmer  can  best  use  these  resources  
¢ Useful  outcomes  from  taking  213/513  
§ Become  more  effec�ve  programmers  
Able  to  find  and  eliminate  bugs  efficiently  
§
§ Able  to  understand  and  tune  for  program  performance  
§ Prepare  for  later  “systems”  classes  in  CS  &  ECE  
§ Compilers,  Opera�ng  Systems,  Networks,  Computer  Architecture,  
Embedded  Systems,  Storage  Systems,  etc.  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   4  


Carnegie Mellon

It’s  Important  to  Understand  How  Things  


Work  
¢ Why  do  I  need  to  know  this  stuff?  
§ Abstrac�on  is  good,  but  don’t  forget  reality  
¢ Most  CS  and  CE  courses  emphasize  abstrac�on  
§ Abstract  data  types  
§ Asympto�c  analysis  
¢ These  abstrac�ons  have  limits  
§ Especially  in  the  presence  of  bugs  
§ Need  to  understand  details  of  underlying  implementa�ons  
§ Some�mes  the  abstract  interfaces  don’t  provide  the  level  of  control  or  
performance  you  need  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   5  


Carnegie Mellon

Great  Reality  #1:    


Ints  are  not  Integers,  Floats  are  not  Reals  
¢ Example  1:  Is  x2  ≥  0?  
§ Float’s:  Yes!  

§ Int’s:  
§  40000  *  40000  -­‐-­‐>  1600000000  
§  50000  *  50000  -­‐-­‐>  ?  
¢ Example  2:  Is  (x  +  y)  +  z    =    x  +  (y  +  z)?  
§ Unsigned  &  Signed  Int’s:  Yes!  
§ Float’s:    
§  (1e20  +  -­‐1e20)  +  3.14  -­‐-­‐>  3.14  
§  1e20  +  (-­‐1e20  +  3.14)  -­‐-­‐>  ??  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on  
Source:  xkcd.com/571   6  
Carnegie Mellon

Computer  Arithme�c  
¢ Does  not  generate  random  values  
§ Arithme�c  opera�ons  have  important  mathema�cal  proper�es  
¢ Cannot  assume  all  “usual”  mathema�cal  proper�es  
§ Due  to  finiteness  of  representa�ons  
§ Integer  opera�ons  sa�sfy  “ring”  proper�es  
Commuta�vity,  associa�vity,  distribu�vity  
§
§ Floa�ng  point  opera�ons  sa�sfy  “ordering”  proper�es  
§ Monotonicity,  values  of  signs  

¢ Observa�on  
§ Need  to  understand  which  abstrac�ons  apply  in  which  contexts  
§ Important  issues  for  compiler  writers  and  serious  applica�on  programmers  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   7  


Carnegie Mellon

Great  Reality  #2:    


You’ve  Got  to  Know  Assembly  
¢ Chances  are,  you’ll  never  write  programs  in  assembly  
§ Compilers  are  much  be�er  &  more  pa�ent  than  you  are  
¢ But:  Understanding  assembly  is  key  to  machine-­‐level  execu�on  
model  
§ Behavior  of  programs  in  presence  of  bugs  
High-­‐level  language  models  break  down  
§
§ Tuning  program  performance  
§ Understand  op�miza�ons  done  /  not  done  by  the  compiler  
§ Understanding  sources  of  program  inefficiency  
§ Implemen�ng  system  so�ware  
§ Compiler  has  machine  code  as  target  
§ Opera�ng  systems  must  manage  process  state  
§ Crea�ng  /  figh�ng  malware  
§ x86  assembly  is  the  language  of  choice!  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   8  
Carnegie Mellon

Great  Reality  #3:  Memory  Ma�ers  


Random  Access  Memory  Is  an  Unphysical  Abstrac�on  
 
¢ Memory  is  not  unbounded  
§ It  must  be  allocated  and  managed  
§ Many  applica�ons  are  memory  dominated  
¢ Memory  referencing  bugs  especially  pernicious  
§ Effects  are  distant  in  both  �me  and  space  
¢ Memory  performance  is  not  uniform  
§ Cache  and  virtual  memory  effects  can  greatly  affect  program  performance  
§ Adap�ng  program  to  characteris�cs  of  memory  system  can  lead  to  major  
speed  improvements  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   9  


Carnegie Mellon

Memory  Referencing  Bug  Example  


typedef struct {
int a[2];
double d;
} struct_t;

double fun(int i) {
volatile struct_t s;
s.d = 3.14;
s.a[i] = 1073741824; /* Possibly out of bounds */
return s.d;
}

fun(0) --> 3.14


fun(1) --> 3.14
fun(2) --> 3.1399998664856
fun(3) --> 2.00000061035156
fun(4) --> 3.14
fun(6) --> Segmenta�on  fault

§ Result  is  system  specific  


Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   10  
Carnegie Mellon

Memory  Referencing  Bug  Example  


typedef struct { fun(0) --> 3.14
int a[2]; fun(1) --> 3.14
double d; fun(2) --> 3.1399998664856
} struct_t;
fun(3) --> 2.00000061035156
fun(4) --> 3.14
fun(6) --> Segmenta�on  fault

Explana�on:  
Cri�cal  State   6  
?   5  
?   4  
d7 ... d4 3   Loca�on  accessed  by  
fun(i)
d3 ... d0 2  
struct_t

a[1] 1  
a[0] 0  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   11  


Carnegie Mellon

Memory  Referencing  Errors  


¢ C  and  C++  do  not  provide  any  memory  protec�on  
§ 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  
§ Ac�on  at  a  distance  
§ Corrupted  object  logically  unrelated  to  one  being  accessed  
§ Effect  of  bug  may  be  first  observed  long  a�er  it  is  generated  
¢ How  can  I  deal  with  this?  
§ Program  in  Java,  Ruby,  Python,  ML,  …  
§ Understand  what  possible  interac�ons  may  occur  
§ Use  or  develop  tools  to  detect  referencing  errors  (e.g.  Valgrind)  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   12  
Carnegie Mellon

Great  Reality  #4:  There’s  more  to  


performance  than  asympto�c  complexity  
 
¢ Constant  factors  ma�er  too!  
¢ And  even  exact  op  count  does  not  predict  performance  

§ Easily  see  10:1  performance  range  depending  on  how  code  wri�en  
§ Must  op�mize  at  mul�ple  levels:  algorithm,  data  representa�ons,  
procedures,  and  loops  
¢ Must  understand  system  to  op�mize  performance  
§ How  programs  compiled  and  executed  
§ How  to  measure  program  performance  and  iden�fy  bo�lenecks  
§ How  to  improve  performance  without  destroying  code  modularity  and  
generality  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   13  


Carnegie Mellon

Memory  System  Performance  Example  


void copyij(int src[2048][2048], void copyji(int src[2048][2048],
int dst[2048][2048]) int dst[2048][2048])
{ {
int i,j; int i,j;
for (i = 0; i < 2048; i++) for (j = 0; j < 2048; j++)
for (j = 0; j < 2048; j++) for (i = 0; i < 2048; i++)
dst[i][j] = src[i][j]; dst[i][j] = src[i][j];
} }

4.3ms   81.8ms  
2.0  GHz  Intel  Core  i7  Haswell  
¢ Hierarchical  memory  organiza�on  
¢ Performance  depends  on  access  pa�erns  

§ Including  how  step  through  mul�-­‐dimensional  array  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   14  


Carnegie Mellon

Why  The  Performance  Differs  


copyij

16000

14000
Read throughput (MB/s)

12000

10000

8000

6000

4000

2000
copyji
0
s1 32k
s3 128k
s5 512k
2m
s7
Stride (x8 bytes) 8m
s9 Size (bytes)
32m
s11
128m
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   15  
Carnegie Mellon

Great  Reality  #5:  


Computers  do  more  than  execute  programs  
¢ They  need  to  get  data  in  and  out  
§ I/O  system  cri�cal  to  program  reliability  and  performance  

¢ They  communicate  with  each  other  over  networks  


§ Many  system-­‐level  issues  arise  in  presence  of  network  
§ Concurrent  opera�ons  by  autonomous  processes  
§ Coping  with  unreliable  media  
§ Cross  pla�orm  compa�bility  
§ Complex  performance  issues  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   16  


Carnegie Mellon

Course  Perspec�ve  
¢ Most  Systems  Courses  are  Builder-­‐Centric  
§ Computer  Architecture  
Design  pipelined  processor  in  Verilog  
§
§ Opera�ng  Systems  
§ Implement  sample  por�ons  of  opera�ng  system  
§ Compilers  
§ Write  compiler  for  simple  language  
§ Networking  
§ Implement  and  simulate  network  protocols  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   17  


Carnegie Mellon

Course  Perspec�ve  (Cont.)  


¢ Our  Course  is  Programmer-­‐Centric  
§ By  knowing  more  about  the  underlying  system,  you  can  be  more  effec�ve  
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  
§ Cover  material  in  this  course  that  you  won’t  see  elsewhere  
§ Not  just  a  course  for  dedicated  hackers  
§ We  bring  out  the  hidden  hacker  in  everyone!  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   18  


Carnegie Mellon

Role  within  CS/ECE  Curriculum  


CS  418 CS  412 ECE  545/549  
Parallel   OS  Prac�cum   Capstone  

CS  410 ECE  340   ECE  349 ECE  348


CS  415 CS  441 CS  411 ECE  447
Opera�ng Digital   Embedded Embedded
Databases   Networks   Compilers   Architecture  
Systems   Computa�on   Systems   System  Eng.  

Network   Processes   Machine  


Data  Reps.   Execu�on  Model  
Protocols   Mem.  Mgmt   Code   Arithme�c  
Memory  Model   Memory  System  
CS  440
Distributed     Network  Prog  
systems   Concurrency  
213/513  
Founda�on  of  Computer  Systems  
Underlying  principles  for  hardware,    
so�ware,  and  networking  

CS  122
Impera�ve  
 Programming  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   19  
Carnegie Mellon

Academic  Integrity  
Please  pay  close  a�en�on,  especially  
if  this  is  your  first  semester  at  CMU  
 

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   20  


Carnegie Mellon

Chea�ng/Plagiarism:  Descrip�on  
¢ Unauthorized  use  of  informa�on  
§ Borrowing  code:  by  copying,  retyping,  looking  at  a  file  
§ Describing:  verbal  descrip�on  of  code  from  one  person  to  another.  
§ Searching  the  Web  for  solu�ons  
§ Copying  code  from  a  previous  course  or  online  solu�on  
§ Reusing  your  code  from  a  previous  semester  (here  or  elsewhere)  
§ If  specific  to  213/513,  and  you  received  credit  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   21  


Carnegie Mellon

Chea�ng/Plagiarism:  Descrip�on  (cont.)  


¢ Unauthorized  supplying  of  informa�on  
§ Providing  copy:  Giving  a  copy  of  a  file  to  someone  
§ Providing  access:  
Pu�ng  material  in  unprotected  directory  
§
§ Pu�ng  material  in  unprotected  code  repository  (e.g.,  Github)  
§ Applies  to  this  term  and  the  future  
§ There  is  no  statute  of  limita�ons  for  academic  integrity  viola�ons  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   22  


Carnegie Mellon

Chea�ng/Plagiarism:  Descrip�on  
¢ What  is  NOT  chea�ng?  
§ Explaining  how  to  use  systems  or  tools  
§ Helping  others  with  high-­‐level  design  issues  
§ Using  code  supplied  by  us  
§ Using  code  from  the  CS:APP  web  site  

¢ See  the  course  syllabus  for  details.  


§ Ignorance  is  not  an  excuse  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   23  


Carnegie Mellon

Chea�ng:  Consequences  
¢ Penalty  for  chea�ng:  
§ Best  case:  -­‐100%  for  assignment  
§ You  would  be  be�er  off  to  turn  in  nothing  
§ Worst  case:  Removal  from  course  with  failing  grade  
§ This  is  the  default  
§ Permanent  mark  on  your  record  
§ Loss  of  respect  by  you,  the  instructors  and  your  colleagues  
§ If  you  do  cheat  –  come  clean  asap!  

¢ Detec�on  of  chea�ng:  


§ We  have  sophis�cated  tools  for  detec�ng  code  plagiarism  
§ In  Fall  2015,  20  students  were  caught  chea�ng  and  failed  the  course.    
§Some  were  expelled  from  the  University  
§ In  January  2016,  11  students  were  penalized  for  chea�ng  viola�ons  that  occurred  as  far  
back  as  Spring  2014.  

¢ Don’t  do  it!  


§ Manage  your  �me  carefully  
§ Ask  the  staff  for  help  when  you  get  stuck  
 
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   24  
Carnegie Mellon

Some  Concrete  Examples:  


¢ This  is  Chea�ng:  
§ Searching  the  internet  with  the  phrase  15-­‐213,  15213,  213,  18213,  
malloclab,  etc.  
§ That’s  right,  just  entering  it  in  a  search  engine  
§ Looking  at  someone’s  code  on  the  computer  next  to  yours  
§ Giving  your  code  to  someone  else,  now  or  in  the  future  
§ Pos�ng  your  code  in  a  publicly  accessible  place  on  the  Internet,  now  or  in  
the  future  
§ Hacking  the  course  infrastructure  
¢ This  is  OK  (and  encouraged):  
§ Googling  a  man  page  for  fputs  
§ Asking  a  friend  for  help  with  gdb    
§ Asking  a  TA  or  course  instructor  for  help,  showing  them  your  code,  …  
§ Looking  in  the  textbook  for  a  code  example  
§ Talking  about  a  (high-­‐level)  approach  to  the  lab  with  a  classmate  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   25  
Carnegie Mellon

How  it  Feels:  Student  and  Instructor  


¢ Fred  is  desperate.    He  can’t  get  his  code  to  work  and  the  deadline  is  drawing  
near.    In  panic  and  frustra�on,  he  searches  the  web  and  finds  a  solu�on  
posted  by  a  student  at  U.  Oklahoma  on  Github.    He  carefully  strips  out  the  
comments  and  inserts  his  own.    He  changes  the  names  of  the  variables  and  
func�ons.    Phew!    Got  it  done!  
¢ The  course  staff  run  checking  tools  that  compare  all  submi�ed  solu�ons  to  
the  solu�ons  from  this  and  other  semesters,  along  with  ones  that  are  on  the  
Web.  
§ Remember:  We  are  as  good  at  web  searching  as  you  are  
¢ Meanwhile,  Fred  has  had  an  uneasy  feeling:  Will  I  get  away  with  it?    Why  
does  my  conscience  bother  me?  
¢ Fred  gets  email  from  an  instructor:  “Please  see  me  tomorrow  at  9:30  am.”  
§ Fred  does  not  sleep  well  that  night  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   26  


Carnegie Mellon

How  it  Feels:  Student  and  Instructor  


¢ The  instructor  feels  frustrated.    His  job  is  to  help  students  learn,  not  to  be  
police.    Every  hour  he  spends  looking  at  code  for  chea�ng  is  �me  that  he  
cannot  spend  providing  help  to  students.    But,  these  cases  can’t  be  
overlooked  
¢ At  the  mee�ng:  
§ Instructor:  “Explain  why  your  code  looks  so  much  like  the  code  on  Github.”  
§ Fred:  “Gee,  I  don’t  know.    I  guess  all  solu�ons  look  pre�y  much  alike.”  
§ Instructor:  “I  don’t  believe  you.    I  am  going  to  file  an  academic  integrity  viola�on.”  
§ Fred  will  have  the  right  to  appeal,  but  the  instructor  does  not  need  him  to  admit  
his  guilt  in  order  to  penalize  him.  
¢ Consequences  
§ Fred  may  (most  likely)  will  be  given  a  failing  grade  for  the  course  
§ Fred  will  be  reported  to  the  university  
§ A  second  AIV  will  lead  to  a  disciplinary  hearing  
§ Fred  will  go  through  the  rest  of  his  life  carrying  a  burden  of  shame  
§ The  instructor  will  experience  a  combina�on  of  betrayal  and  distress  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   27  
Carnegie Mellon

A  Scenario:  Chea�ng  or  Not?  


Alice  is  working  on  malloc  lab  and  is  just  plain  stuck.    Her  code  is  seg  
faul�ng  and  she  doesn't  know  why.    It  is  only  2  days  un�l  malloc  lab  
is  due  and  she  has  3  other  assignments  due  this  same  week.    She  is  in  
the  cluster.  
Bob  is  si�ng  next  to  her.    He  is  pre�y  much  done.  
Si�ng  next  to  Bob  is  Charlie.    He  is  also  stuck.  
¢ 1.  Charlie  gets  up  for  a  break  and  Bob  makes  a  printout  of  his  own  

code  and  leaves  it  on  Charlie’s  chair.  


§ Who  cheated:  Charlie?              Bob?  
¢ 2.  Charlie  finds  the  copy  of  Bob’s  malloc  code,  looks  it  over,  and  
then  copies  one  func�on,  but  changes  the  names  of  all  the  
variables.  
§ Who  cheated:  Charlie?              Bob?  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   28  


Carnegie Mellon

Another  Scenario  
Alice  is  working  on  malloc  lab  and  is  just  plain  stuck.    Her  code  is  seg  faul�ng  and  
she  doesn't  know  why.    It  is  only  2  days  un�l  malloc  lab  is  due  and  she  has  3  other  
assignments  due  this  same  week.    She  is  in  the  cluster.  
Bob  is  si�ng  next  to  her.    He  is  pre�y  much  done.  
Si�ng  next  to  Bob  is  Charlie.    He  is  also  stuck.  
¢ 1.  Bob  offers  to  help  Alice  and  they  go  over  her  code  together.  
§ Who  cheated:  Bob?              Alice?  
¢ 2.  Bob  gets  up  to  go  to  the  bathroom  and  Charlie  looks  over  at  his  
screen  to  see  how  Bob  implemented  his  free  list.  
§ Who  cheated:  Charlie?              Bob?  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   29  


Carnegie Mellon

Another  Scenario  (cont.)  


¢ 3.  Alice  is  having  trouble  with  GDB.    She  asks  Bob  how  to  set  a  
breakpoint,  and  he  shows  her.  
§ Who  cheated:  Bob?              Alice?  
¢ 4.  Charlie  goes  to  a  TA  and  asks  for  help  
§ Who  cheated:  Charlie?                

¢ If  you  are  uncertain  which  of  these  cons�tutes  chea�ng,  and  which  
do  not,  please  read  the  syllabus  carefully.    If  you’re  s�ll  uncertain,  
ask  one  of  the  staff  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   30  


Carnegie Mellon

Logis�cs  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   31  


Carnegie Mellon
Carnegie Mellon

Instructors  
Randy Bryant
Phil Gibbons

15-213/18-213

Lectures

Brian Railing
Martin Carlisle

15-513

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   32  


Carnegie Mellon
Carnegie Mellon

15-­‐213/18-­‐213  and  15-­‐513  


¢ 15-­‐213/18-­‐213    
§ Only  undergraduates  
§ Live  lectures  
§ Recita�ons  
¢ 15-­‐513  
§ Only  Masters  students  
§ Lectures  by  video  (on  the  website  and  panopto)  
¢ Everything  else  is  the  same  for  all  the  courses  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   33  


Carnegie Mellon

Textbooks  
¢ Randal  E.  Bryant  and  David  R.  O’Hallaron,    
§ Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on  (CS:APP3e),  
Pearson,  2016  
§ h�p://csapp.cs.cmu.edu  
§ This  book  really  ma�ers  for  the  course!  
§ How  to  solve  labs  
§ Prac�ce  problems  typical  of  exam  problems  

¢ Brian  Kernighan  and  Dennis  Ritchie,    


§ The  C  Programming  Language,  Second  Edi�on,  Pren�ce  Hall,  1988  
§ S�ll  the  best  book  about  C,  from  the  originators  
§ Even  though  it  does  not  cover  more  recent  extensions  of  C  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   34  


Carnegie Mellon

Course  Components  
¢ Lectures  
§ Higher  level  concepts  
¢ Labs  (7)  
§ The  heart  of  the  course  
§ 1-­‐2+  weeks  each  
§ Provide  in-­‐depth  understanding  of  an  aspect  of  systems  
§ Programming  and  measurement  
¢ Exams  (midterm  +  final)  
§ Test  your  understanding  of  concepts  &  mathema�cal  principles  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   35  


Carnegie
CarnegieMellon
Mellon

Ge�ng  Help    
¢ Class  Web  page:  h�p://www.cs.cmu.edu/~213  
§ Complete  schedule  of  lectures,  exams,  and  assignments  
§ Copies  of  lectures,  assignments,  exams,  solu�ons  
§ FAQ  
¢ Piazza  
§ Best  place  for  ques�ons  about  assignments  
§ By  default,  your  posts  will  be  private  
§ We  will  fill  the  FAQ  and  Piazza  with  answers  to  common  ques�ons  
¢ Blackboard  
§ We  won’t  be  using  Blackboard  for  the  course  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   36  


Carnegie
CarnegieMellon
Mellon

Ge�ng  Help    
¢ Staff  mailing  list:  15-­‐213-­‐staff@cs.cmu.edu  
§ Use  this  for  logis�cal  issues  
Problems  with  accounts,  etc.  
§
§ Send  email  to  individual  instructors  only  to  schedule  appointments  

¢ Office  hours  (star�ng  Tue  Sep  6):  


§ SMTWR,  5:30-­‐7:30pm,  WeH  5207  
 
¢ 1:1  Appointments  
§ You  can  schedule  1:1  appointments  with  any  of  the  teaching  staff  
 

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   37  


Carnegie Mellon

Policies:  Labs  And  Exams  


¢ Work  groups  
§ You  must  work  alone  on  all  lab  assignments  
¢ Handins  
§ Labs  due  at  11:59pm  
§ Electronic  handins  using  Autolab  (no  excep�ons!)  
¢ Exams  
§ Exams  will  be  online  in  network-­‐isolated  clusters  
§ Held  over  mul�ple  days.  Self-­‐scheduled;  just  sign  up!  
¢ Appealing  grades  
§ Via  detailed  private  post  to  Piazza  within  7  days  of  comple�on  of  grading  
§ Follow  formal  procedure  described  in  syllabus  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   38  


Carnegie Mellon

Facili�es  
¢ Labs  will  use  the  Intel  Computer  Systems  Cluster  
§ The  “shark  machines”  
§ linux> ssh shark.ics.cs.cmu.edu

§ 21  servers  donated  by  Intel  for  213/513  


10  student  machines  (for  student  logins)  
§
§ 1  head  node  (for  instructor  logins)  
§ 10  grading  machines  (for  autograding)  
§ Each  server:  Intel  Core  i7:  8  Nehalem  cores,  32  GB  DRAM,  RHEL  6.1  
§ Rack-­‐mounted  in  Gates  machine  room  
§ Login  using  your  Andrew  ID  and  password  
¢ Ge�ng  help  with  the  cluster  machines:  
§ Please  direct  ques�ons  to  staff  mailing  list  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   39  


Carnegie Mellon

Timeliness  
¢ Grace  days  
§ 5  grace  days  for  the  semester  
§ Limit  of  0,  1,  or  2  grace  days  per  lab  used  automa�cally  
§ Covers  scheduling  crunch,  out-­‐of-­‐town  trips,  illnesses,  minor  setbacks  
¢ Lateness  penal�es  
§ Once  grace  day(s)  used  up,  get  penalized  15%  per  day  
§ No  handins  later  than  3  days  a�er  due  date  
¢ Catastrophic  events  
§ Major  illness,  death  in  family,  …  
§ Formulate  a  plan  (with  your  academic  advisor)  to  get  back  on  track  
¢ Advice  
§ Once  you  start  running  late,  it’s  really  hard  to  catch  up  
§ Try  to  save  your  grace  days  un�l  the  last  few  labs  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   40  


Carnegie Mellon

Other  Rules  of  the  Lecture  Hall  


¢ Laptops:  permi�ed  

¢ Electronic  communica�ons:  forbidden  


§ No  email,  instant  messaging,  cell  phone  calls,  etc  

¢ Presence  in  lectures  (213):  voluntary,  recommended  

¢ No  recordings  of  ANY  KIND  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   41  


Carnegie Mellon

Policies:  Grading  
¢ Exams  (50%):  midterm  (20%),  final  (30%)  
     
¢ Labs  (50%):  weighted  according  to  effort  

 
¢ Final  grades  based  on  a  straight  scale  (90/80/70/60)  with  a  small  

amount  of  curving  


§ Only  upward  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   42  


Carnegie Mellon

Programs  and  Data  


¢ Topics  
§ Bit  opera�ons,  arithme�c,  assembly  language  programs  
§ Representa�on  of  C  control  and  data  structures  
§ Includes  aspects  of  architecture  and  compilers    

¢ Assignments  
§ L1  (datalab):  Manipula�ng  bits  
§ L2  (bomblab):  Defusing  a  binary  bomb  
§ L3  (a�acklab):  The  basics  of  code  injec�on  a�acks  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   43  


Carnegie Mellon

The  Memory  Hierarchy  


¢ Topics  
§ Memory  technology,  memory  hierarchy,  caches,  disks,  locality  
§ Includes  aspects  of  architecture  and  OS  

¢ Assignments  
§ L4  (cachelab):  Building  a  cache  simulator  and  op�mizing  for  locality.  
§ Learn  how  to  exploit  locality  in  your  programs.    

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   44  


Carnegie Mellon

Excep�onal    Control  Flow  


¢ Topics  
§ Hardware  excep�ons,  processes,  process  control,  Unix  signals,  
nonlocal  jumps  
§ Includes  aspects  of  compilers,  OS,  and  architecture  

¢ Assignments  
§ L5  (tshlab):  Wri�ng  your  own  Unix  shell.  
§ A  first  introduc�on  to  concurrency  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   45  


Carnegie Mellon

 Virtual  Memory  
¢ Topics  
§ Virtual  memory,  address  transla�on,  dynamic  storage  alloca�on  
§ Includes  aspects  of  architecture  and  OS  

¢ Assignments  
§ L6  (malloclab):  Wri�ng  your  own  malloc  package  
§ Get  a  real  feel  for  systems-­‐level  programming  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   46  


Carnegie Mellon

 Networking,  and  Concurrency  


¢ Topics  
§ High  level  and  low-­‐level  I/O,  network  programming  
§ Internet  services,  Web  servers  
§ concurrency,  concurrent  server  design,  threads  
§ I/O  mul�plexing  with  select  
§ Includes  aspects  of  networking,  OS,  and  architecture  

¢ Assignments  
§ L7  (proxylab):  Wri�ng  your  own  Web  proxy  
§ Learn  network  programming  and  more  about  concurrency  and  
synchroniza�on.    

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   47  


Carnegie Mellon

Lab  Ra�onale    
¢ Each  lab  has  a  well-­‐defined  goal  such  as  solving  a  puzzle  or  
winning  a  contest  

¢ Doing  the  lab  should  result  in  new  skills  and  concepts  

¢ We  try  to  use  compe��on  in  a  fun  and  healthy  way  


§ Set  a  reasonable  threshold  for  full  credit  
§ Post  intermediate  results  (anonymized)  on  Autolab  scoreboard  for  glory!  

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   48  


Carnegie Mellon

 Autolab  (h�ps://autolab.andrew.cmu.edu)  
¢ Labs  are  provided  by  the  CMU  Autolab  system  
§ Project  page:  h�p://autolab.andrew.cmu.edu    
§ Developed  by  CMU  faculty  and  students  
§ Key  ideas:  Autograding  and  Scoreboards  
Autograding:  Providing  you  with  instant  feedback.  
§
§ Scoreboards:  Real-­‐�me,  rank-­‐ordered,  and    anonymous  summary.  
§ Used  by  over  3,000    students  each  semester  
¢ With  Autolab  you  can  use  your  Web  browser  to:  
§ Download  the  lab  materials  
§ Handin  your  code  for  autograding  by  the  Autolab  server  
§ View  the  class  scoreboard  
§ View  the  complete  history  of  your  code  handins,  autograded  results,  
instructor’s  evalua�ons,  and  gradebook.  
§ View  the  TA  annota�ons  of  your  code  for  Style  points.  
Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   49  
Carnegie Mellon

 Autolab  accounts  
¢ Students  enrolled  1:00pm  on  Mon,  Aug  29  have  Autolab  
accounts  
¢ You  must  be  enrolled  to  get  an  account  
§ Autolab  is  not  �ed  in  to  the  Hub’s  rosters  
§ If  you  add  in,  contact  15-­‐213-­‐staff@cs.cmu.edu  for  an  account  
§ We  will  update  the  autolab  accounts  once  a  day,  so  check  back  in  24  
hours.  

¢ For  those  who  are  wai�ng  to  add  in,  the  first  lab  (datalab)  will  be  
available  on  the  Schedule  page  of  the  course  Web  site.    

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   50  


Carnegie Mellon

 Waitlist  ques�ons  
¢ 15-­‐213:  Catherine  Fichtner  ([email protected])  
¢ 18-­‐213:  Zara  Collier  ([email protected])  

¢ 15-­‐513:  Catherine  Fichtner  ([email protected])  

¢ Please  don’t  contact  the  instructors  with  waitlist  ques�ons.  


 

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   51  


Carnegie Mellon

Welcome  
and  Enjoy!    

Bryant  and  O’Hallaron,  Computer  Systems:  A  Programmer’s  Perspec�ve,  Third  Edi�on   52  

You might also like