CS 213 Introduction to Computer Systems Randal E Bryant and David R O Hallaron School of Computer Science School of Computer Science and Dept of Electrical and Computer Engineering Carnegie Mellon University Fall 2000 1 Organization Instructors Randal E Bryant WeH 4220 x8 8821 Randy Bryant cs cmu edu Wed 10 00 11 00am David R O Hallaron WeH 8125 x8 8199 droh cs cmu edu Tue 10 30 11 30am TAs Jason Crawford Wean Cluster Blake Scholl Wean Cluster jac2 andrew cmu edu Wed 3 30 4 30 bscholl andrew cmu edu Wed 4 30 5 30 Bianca Schroeder WeH 5123 x8 5728 bianca cs cmu edu Tue 1 30 2 30 Class Assistant Rosemary Battenfelder WeH 4218 x8 3853 rosemary cs cmu edu Lecture Tue Thu 9 00 10 20 Wean Hall 7500 1 Tiankai Tu WeH 5119 x8 3043 tutk cs cmu edu Tue 4 00 5 00 Recitations A Mon 10 30 11 20 B Mon 11 30 12 20 C Mon 12 30 1 20 D Mon 1 30 2 20 E Mon 2 30 3 20 OSC Old Student Center 200 OSC Old Student Center 200 OSC Old Student Center 200 OSC Old Student Center 200 OSC Old Student Center 200 Scholl Tu Crawford Schroeder Schroeder Web page www cs cmu edu afs cs academic class 15213 f00 www Newsgroup cmu cs class cs213 2 Objectives Our aim in CS 213 is to help you become a better programmer by teaching you the basic concepts underlying all computer systems We want you to learn what really happens when your programs run so that when things go wrong as they always do you will have the intellectual tools to solve the problem Why do you need to understand computer systems if you do all of your programming in high level languages In most of computer science we re pushed to make abstractions and stay within their frameworks But any abstraction ignores effects that can become critical As an analogy Newtonian mechanics ignores relativistic effects The Newtonian abstraction is completely appropriate for bodies moving at less than 0 1c but higher speeds require working at a greater level of detail Oversimplifying matters somewhat our 21 sequence works as follows 211 is based on a simplified model of program execution 212 builds further layers of abstraction 213 introduces greater detail about system behavior and operation This greater detail is needed for optimizing program performance for working within the finite memory and word size constraints of computers and for systems level programming The following realities are some of the major areas where the abstractions we teach in 211 212 break down 1 Int s are not integers Float s are not reals Our finite representations of numbers have significant limitations and because of these limitations we sometimes have to think in terms of bit level representations 2 You ve got to know assembly language Even if you never write programs in assembly The behavior of a program cannot be understood sometimes purely based on the abstraction of a high level language Further understanding the effects of bugs requires familiarity with the machine level model 3 Memory matters Computer memory is not unbounded It must be allocated and managed Memory referencing errors are especially pernicious An erroneous updating of one object can cause a change in some logically unrelated object Also the combination of caching and virtual memory provides the functionality of a uniform unbounded address space but not the performance 4 There is more to performance than asymptotic complexity Constant factors also matter There are systematic ways to evaluate and improve program performance 2 5 Computers do more than execute instructions They also need to get data in and out and they interact with other systems over networks By the end of the course you will understand these realities in some detail As a result you will be prepared to take any of the upper level systems classes at Carnegie Mellon Even more important you will have learned skills and knowledge that will help you throughout your career 3 Textbook CS 213 is a unique course for which no complete textbook exists In fact your instructors are currently trying their best to write a textbook based on this course You ll be getting previews in the form of class notes We ll hand out the notes to you as we write them up We d really appreciate your comments and criticisms In addition we require you to have a reference book on the C programming language Brian W Kernighan and Dennis M Ritchie The C Programming Language Second Edition Prentice Hall 1988 This the classic K R book the standard against which all reference manuals are compared Although it only provides partial coverage of the course material it is an essential part of every computer scientist s library 4 Course Organization Your participation in the course will involve five forms of activity 1 Attending the lectures 2 Participating in the recitations 3 Homework and laboratory assignments 4 Reading the text and supplementary handouts 5 Exams Attendance will not be taken at the lectures or recitation sections You will be considered responsible for all material presented at the lectures and recitations Lectures will cover higher level concepts Recitations will be more applied covering important how to s especially in using tools that will help you do the labs In addition the recitations will help clarify lecture topics and describe exam coverage There will be two types of assignments in this class Lab assignments will be multi week efforts in groups of up to 2 providing in depth understanding of some aspect of computer systems Labs will involve some 3 combination of C and assembly programming and some will involve performance measurements Labs will always be handed out in class on Thursday and due a couple of weeks later on a Wednesday Homework assignments will be 1 week efforts that you work on individually that involve solving a series of smaller problems The solution to many of these will involve writing small C programs Homeworks are designed to be drills to help you get practice for exam problems Homeworks will always be handed out at class on Tuesday and due the following Monday 5 Getting help For urgent communication with the teaching staff it is best to send electronic mail preferred or to phone If you want to talk to a staff member in person remember that our posted office hours are merely times when we guarantee that we will be in our offices You are always welcome to visit us outside of office hours if you need help or want to talk about the course However we ask that you follow a few simple guidelines Prof Bryant and Prof O Hallaron normally work with their office doors
View Full Document