Introduction to Computer Systems, Fall 2001

Instructor:Peter A. Dinda (Office Hours: Mondays 2-4pm)
Teaching Assistant:Dong Lu (Office Hours: Fridays 3-5pm)
Undergrad Graders:TBD
Time:Fall 2001, WF 10:30-12
Location:CS Classroom, 1890 Maple
Course number:CS 395
Enrollment Limit:40

Communication

  • Private IRC Server (more info)
  • Newsgroups (cs.c95-ics.announce and cs.c95-ics.discussion) The newsgroups are available on news.cs.northwestern.edu and news.acns.northwestern.edu
  • Mailing List (c95-ics@cs.northwestern.edu)
  • Important Handouts

  • Syllabus (pdf)
  • Book
  • Paper copies will be handed out on the first day of class
  • Physics To Logic (pdf)
  • The TLAB Cluster (pdf)
  • Unix Systems Programming In A Nutshell (pdf)
  • Sockets In A Nutshell (pdf)
  • Concurency (pdf)
  • Distributed and Parallel Systems (pdf)
  • Where To Go From Here (pdf)
  • Programming Assignments

  • Data Lab (pdf), out: 9/26, in: 10/12
  • Bomb Lab (pdf), out: 10/12, in: 10/31
  • Exploit Lab (pdf), out: 11/7, in: 11/16
  • Malloc Lab (pdf), out: 11/16, in: 12/7 You might find this survey article on dynamic memory management helpful.
    Performance Table
  • Homework Assignments

  • HW 1: Integer and Floating Point Number Representations (pdf) Solution (pdf)
  • HW 2: De-compiling Intel Assembly Code (pdf) Solution (text file)
  • HW 3: Memory and Cache (pdf) Note: do problem 3 for direct-mapped, 4-way set associative, and fully associative
  • HW 4: Virtual Memory and I/O (pdf)
  • Lecture-related pointers

  • Lecture notes (all) (pdf) NOTE: These notes are really for my own use and may not be all that coherent to anyone else
  • Measure your own memory mountains using ECT memperf
  • Lecture Slides I am not using slides all that much. Nonetheless, the lectures for which I have used slides are below.
  • October 12 pdf ppt
  • October 17 pdf ppt
  • October 19 pdf ppt
  • October 24 pdf ppt
  • November 16 pdf ppt
  • November 21 pdf ppt
  • CMU Version of the Course (Fall 2000) including lecture slides Note: my lectures are somewhat different in order and content. Nonetheless, you may find these slides useful as another viewpoint
  • Java applets showing how gates are built from CMOS transistors
  • Java simulators of gates, adders, flip-flops
  • Resources

  • Make Introduction (pdf)
  • Gdb commands (pdf)
  • Gdb manual (html)
  • The ELF Format (pdf)
  • Comparison with GAS format and Intel's assembler format (text)
  • The Intel Architecture Software Developer's Manual
  • Volume I: Basic Architecture (pdf)
  • Volume II: Instruction Set Reference (pdf)
  • Volume III: System Programming (pdf)
  • Intel Architecture Optimization: Reference Manual (pdf)
  • Overview of the Linux Kernel (pdf)
  • Cygwin Unix Emulation Environment for Windows
  • Wilson, P., et al, Dynamic Storage Allocation: A Survey and Critical Review, International Workshop on Memory Managment, September, 1995. (pdf)

  • Peter Dinda
    Last modified: Mon Jul 17 14:09:47 CDT 2006