Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 3214 Computer Systems Godmar Back Lecture 1. CS 3214 Fall 2010 About Me Undergraduate Work at Humboldt and Technical University Berlin PhD University.

Similar presentations


Presentation on theme: "CS 3214 Computer Systems Godmar Back Lecture 1. CS 3214 Fall 2010 About Me Undergraduate Work at Humboldt and Technical University Berlin PhD University."— Presentation transcript:

1 CS 3214 Computer Systems Godmar Back Lecture 1

2 CS 3214 Fall 2010 About Me Undergraduate Work at Humboldt and Technical University Berlin PhD University of Utah Postdoctoral Work at Stanford University 7 th Year at Virginia Tech –joined August 2004, –Tenured Associate Professor since June 2010 –3 rd time teaching this class Research Interests: –Systems

3 ADMINISTRIVIA CS 3214 Fall 2010

4 Course Facts Meet Tuesday & Thursday 11:00am-12:15pm (GBJ 102) Check website regularly –http://courses.cs.vt.edu/~cs3214http://courses.cs.vt.edu/~cs3214 Use CS Forum http://forum.cs.vt.edu/ Send email to –cs3214-staff@cs.vt.educs3214-staff@cs.vt.edu TAs: –Scott Schneider –Puranjoy Bhattacharjee (50%) –Xiaomo Liu (50%) –Patrick Boyd (UTA) All students enrolled in CS3214 have access to McB 124 (Systems Lab)

5 CS 3214 Fall 2010 Email Etiquette Please enter your name in webmail so it appears in From: line Be coherent when you email

6 CS 3214 Fall 2010 Reading Material Required Textbook –Bryant and O’Hallaron (2 nd Edition), 2011 –Will post reading assignments

7 CS 3214 Fall 2010 Class Format Lectures Exams –1 Midterm –1 Final (Comprehensive) Exams are only offered at the announced time. Missed exams result in zero score. Programming Projects Exercises Please read the syllabus for late policy

8 CS 3214 Fall 2010 Grading Tentative breakdown (subject to change): –12.5% Midterm –22.5% Final –42.5% Projects –22.5% Exercises Not grading on standard scale; grade will be based on a curve of students attempting this course: –Median will divide B- and B –Grading on a curve means every assignment is important, doing “just enough” is a strategy bound to result in a low grade –Calibrated not just by students in this cohort, but also past offerings Additional stipulations to pass the class (aka “Auto-Fail Rules”) –Minimum Requirements must be met for each project –Necessary, not sufficient conditions

9 CS 3214 Fall 2010 Group Projects Projects are group projects Working in a group more closely resembles what you do outside of academia –Can design together, code together Group members must contribute equally 2 students per group Can change group, but only between projects Exercises are done individually

10 CS 3214 Fall 2010 Forum Rules (aka Lex skottie) Not allowed: –Posting of any code that is part of your solution to the forum (*) –Posting the answers to design document or exercise questions –Posting detailed descriptions of your group’s design –Uncivil behavior (*) Exception: “1-line-rule” –Can post 1 line iff it causes a compile-time error You are encouraged to post: –Backtraces, debugging output, debugger messages –Illustrating example for a technique –Questions & explanations relating to concept –Questions & answers relating to projects in general –Pointers to external resources you have found If in doubt, ask before posting!

11 CS 3214 Fall 2010 Honor Code Will be strictly enforced in this class –Will not give warning or engage in discussions before filing honor code cases where I believe they are warranted Do not cheat –Observe collaboration policy outlined in syllabus Will use MOSS for software cheating detection –Do not borrow code from other offerings –Follow collaboration policy Read all policies posted on the website –“I was not aware…” is no excuse If in doubt, ask! Cheating = Copying From Someone Else + Misrepresenting Work As Your Own

12 CS 3214 Fall 2010 Acknowledgements To avoid plagiarism, document (“acknowledge”) your sources Will draw in lectures from –Textbook –And other texts, in particular Silberschatz et al’s book (“Dinosaur book”); Stalling’s book and Tannenbaum’s Modern Operating Systems –Course material created for other courses –And other sources as appropriate

13 CS 3214 Fall 2010 Prerequisites Knowledge of computer organization (CS 2506) Knowledge of algorithms & data structures (CS 2114) Please submit prerequisite form Some knowledge of C

14 CS 3214 Fall 2010 Talking about C… #define offsetof(TYPE, MEMBER) \ ((size_t) &((TYPE *) 0)->MEMBER) struct point { int x; int y; int z; char c; float o; }; Q.: What is offsetof(struct point, y)? offsetof(struct point, o)? #define offsetof(TYPE, MEMBER) \ ((size_t) &((TYPE *) 0)->MEMBER) struct point { int x; int y; int z; char c; float o; }; Q.: What is offsetof(struct point, y)? offsetof(struct point, o)? 0: x (4 byte int) 8: z (4 byte int) 12: c (1 byte char) 4: y (4 byte int) 16: o (4 byte float) 13: 3 byte padding

15 CS 3214 Fall 2010 Role of this Course Dual role: –Core requirement What should every student know about systems? –Preparation for senior-level OS/networking course in Spring Capstone course for students choosing the Systems & Networking track: design an OS Perspective taken is that of a programmer using a system, not of a designer building one

16 Outcomes Be productive in using an OS – focus on Unix here Understand execution and optimization Understand overall architecture and concepts Understand interaction between apps and OS Understand concepts underlying threading, scheduling, virtual memory, networking, and virtualization CS 3214 Fall 2010

17 Topic 0: Unix Throughout: we will be using Linux You are expected to already bring, or quickly pick up, the necessary skills –Will not set class time aside for this, but am happy to discuss questions on the forum Exercise 1 may help CS 3214 Fall 2010

18 Topic 1: Programs and Data Understand how programs are built, how they execute –Role of the compiler, assembler, and linker Learn to read and understand x86 code Learn how to use a debugger Understand security implications Assume knowledge of bytes & bits as provided in CS250X Projects: –“Binary Bomb” –“Buffer Bomb” CS 3214 Fall 2010

19 Topic 2: Performance Learn –how to optimize code –how not to optimize code –how to measure performance –the impact of memory hierarchies CS 3214 Fall 2010

20 Topic 3: Processes and Threads Learn the underlying abstractions Learn how to use them Subtopics: –System calls and exceptions –Thread and process APIs –Interprocess Communication Project: –Write your own shell CS 3214 Fall 2010

21 Topic 4: Concurrency & Synchronization Learn about race conditions Learn commonly used synchronization techniques in C and Java Learn how to manage concurrency Understand deadlock and how to prevent it CS 3214 Fall 2010

22 Topic 5: Memory Understand user-level memory management –Explicit vs. automated –User-level APIs for shared memory Understand concepts underlying Virtual Memory Understand impact on programmer –Memory tools Project: –User-level malloc() CS 3214 Fall 2010

23 Topic 6: I/O and Networking Understand I/O facilities and layers Understand use of socket API and underlying abstractions, and basic protocol design with a focus on HTTP Understand how to write multi-threaded and event-based programs Project: –A multi-threaded HTTP server CS 3214 Fall 2010

24 Topic 7: Virtualization Understand underlying concepts Understand resource management Exercise: –Set up your own hosted VM in Amazon cloud (AWS) CS 3214 Fall 2010


Download ppt "CS 3214 Computer Systems Godmar Back Lecture 1. CS 3214 Fall 2010 About Me Undergraduate Work at Humboldt and Technical University Berlin PhD University."

Similar presentations


Ads by Google