Introduction to Computer SystemsIntroduction to Computer SystemsTopics:Topics: Staff, text, and policies Lecture topics and assignments Lab rationale and infrastructureCS 213 F ’03class01b.ppt15-213“The Class That Gives CMU Its Zip!”David O’HallaronAugust 26, 2003– 2 –15-213, F’03Teaching staffTeaching staff Instructors Prof. David O’Hallaron Prof. Andreas Nowatzyk TA’s Quarup Barreirinhaus Stavros Harizopoulos Matt Rosencrantz Nitin Sharma Joseph Trdinich Timothy Wong Course Admin Barb Grandillo (WeH 4218)Come talk to us anytime!(Or phone or send email)– 3 –15-213, F’03TextbooksTextbooksRandal E. Bryant and David R. Randal E. Bryant and David R. O’HallaronO’Hallaron, , “Computer Systems: A Programmer’s Perspective”, Prentice Hall 2003. csapp.cs.cmu.eduBrian Brian KernighanKernighanand Dennis Ritchie, and Dennis Ritchie, “The C Programming Language, Second Edition”, Prentice Hall, 1988– 4 –15-213, F’03Course ComponentsCourse ComponentsLecturesLectures Higher level conceptsRecitationsRecitations Applied concepts, important tools and skills for labs, clarification of lectures, exam coverageLabsLabs The heart of the course 1 or 2 weeks Provide in-depth understanding of an aspect of systems Programming and measurement– 5 –15-213, F’03Getting HelpGetting HelpWebWeb www.cs.cmu.edu/afs/cs/academic/class/15213-f02/www Copies of lectures, assignments, exams, solutions Clarifications to assignmentsNewsgroupNewsgroup cmu.cs.class.cs213 Clarifications to assignments, general discussion Personal helpPersonal help Professors: door open means come on in (no appt necessary) TAs: please mail or zephyr first.– 6 –15-213, F’03Policies: AssignmentsPolicies: AssignmentsWork groupsWork groups You must work alone on all labs HandinsHandins Assignments due at 11:59pm on specified due date. Typically 11:59pm Thursday evening (to avoid 212 conflicts) Electronic handins only.Makeup exams and assignmentsMakeup exams and assignments OK, but must make PRIOR arrangements with either Prof. O’Hallaron or Nowatzyk.Appealing gradesAppealing grades Within 7 days of due date or exam date. Assignments: Talk to the lead person on the assignment Exams: Talk to either Prof. O’Hallaron or Nowatzyk.– 7 –15-213, F’03CheatingCheatingWhat is cheating?What is cheating? Sharing code: either by copying, retyping, looking at, or supplying a copy of a file.What is NOT cheating?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:Penalty for cheating: Removal from course with failing grade.– 8 –15-213, F’03Policies: GradingPolicies: GradingExams (40%)Exams (40%) Two in class exams (10% each) Final (20%) All exams are open book/open notes.Labs (60%)Labs (60%) 7 labs (8-12% each)Grading CharacteristicsGrading 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– 9 –15-213, F’03FacilitiesFacilitiesAssignments will use the Intel Computer Assignments will use the Intel Computer Systems Cluster (Systems Cluster (aka aka “the fish machines”)“the fish machines”) 25 Pentium III Xeon servers donated by Intel for CS 213 550 MHz with 256 MB memory. Rack mounted in the 3rd floor Wean Hall machine room. We’ll be setting up your accounts this week.Getting help with the cluster machines:Getting help with the cluster machines: See course Web page for info Please direct questions to your TAs– 10 –15-213, F’03Programs and Data (8)Programs and Data (8)TopicsTopics Bits operations, arithmetic, assembly language programs, representation of C control and data structures Includes aspects of architecture and compilers AssignmentsAssignments L1 (datalab): Manipulating bits L2 (bomblab): Defusing a binary bomb L3 (buflab): Hacking a buffer bomb– 11 –15-213, F’03Performance (2)Performance (2)TopicsTopics High level processor models, code optimization (control and data), measuring time on a computer Includes aspects of architecture, compilers, and OSAssignmentsAssignments L4 (perlab): Optimizing code performance– 12 –15-213, F’03The Memory Hierarchy (2)The Memory Hierarchy (2)TopicsTopics Memory technology, memory hierarchy, caches, disks, locality Includes aspects of architecture and OS.AssignmentsAssignments L4 (perflab): Optimizing code performance– 13 –15-213, F’03Linking and Exceptional Control Flow (3)Linking and Exceptional Control Flow (3)TopicsTopics Object files, static and dynamic linking, libraries, loading Hardware exceptions, processes, process control, Unix signals, nonlocal jumps Includes aspects of compilers, OS, and architectureAssignmentsAssignments L5 (tshlab): Writing your own shell with job control– 14 –15-213, F’03Virtual Memory (4)Virtual Memory (4)TopicsTopics Virtual memory, address translation, dynamic storage allocation Includes aspects of architecture and OSAssignmentsAssignments L6 (malloclab): Writing your own malloc package– 15 –15-213, F’03I/O, Networking, and Concurrency (6)I/O, Networking, and Concurrency (6)TopicsTopics High level and low-level I/O, network programming, Internet services, Web servers concurrency, concurrent server design, threads, I/O multiplexing with select. Includes aspects of networking, OS, and architecture.AssignmentsAssignments L7 (proxylab): Writing your own Web proxy– 16 –15-213, F’03Lab Rationale Lab Rationale Each lab should have a wellEach lab should have a well--defined goal such as defined goal such as solving a puzzle or winning a contest. solving a puzzle or winning a contest. Doing a lab should result in new skills and conceptsDoing a lab should result in new skills and concepts Data Lab: number representations, logic, bit manipulation. Bomb Lab: assembly, using debugger, understanding stack Perf Lab: profiling, measurement, performance debugging. Shell Lab: understanding Unix process control and signals Malloc Lab: understanding pointers and nasty memory bugs. Proxy Lab: network programming, server designWe try to use competition in a fun and healthy way.We try to use competition
View Full Document