1 / 26

CS 3214 Computer Systems

CS 3214 Computer Systems. Godmar Back. Lecture 1. About Me. Undergraduate Work at Humboldt and Technical University Berlin PhD University of Utah Postdoctoral Work at Stanford University 8 th Year at Virginia Tech joined August 2004, Tenured Associate Professor since June 2010

sorena
Download Presentation

CS 3214 Computer Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 3214Computer Systems Godmar Back Lecture 1

  2. About Me • Undergraduate Work at Humboldt and Technical University Berlin • PhD University of Utah • Postdoctoral Work at Stanford University • 8th Year at Virginia Tech • joined August 2004, • Tenured Associate Professor since June 2010 • Designed this class; 4rd time teaching it • Research Interests: • Systems, including Virtual Machines, Cloud Computing, Web Technology CS 3214 Fall 2011

  3. Administrivia CS 3214 Fall 2011

  4. Course Facts • Meet Tuesday & Thursday: • Section 1: McB 307: 9:30am-10:45pm • Section 2: Rand 320: 12:30pm-1:45pm • Check website regularly • http://courses.cs.vt.edu/~cs3214 • Use CS Forum http://www.piazza.com • Send email to • cs3214-staff@cs.vt.edu • TAs: • RuslanNikolaev • ParangSaraf • All students enrolled in CS3214 have access to McB 124 (Systems Lab) CS 3214 Fall 2011

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

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

  7. 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 CS 3214 Fall 2011

  8. 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 typically between B and C • 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 CS 3214 Fall 2011

  9. 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 CS 3214 Fall 2011

  10. 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 CS 3214 Fall 2011

  11. 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 CS 3214 Fall 2011

  12. 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 CS 3214 Fall 2011

  13. Prerequisites • Knowledge of computer organization (CS 2506) • Knowledge of algorithms & data structures (CS 2114) • Please submit prerequisite form by Thursday • Knowledge of C CS 3214 Fall 2011

  14. 0: x (4 byte int) 4: y (4 byte int) 8: z (4 byte int) 12: c (1 byte char) 13: 3 byte padding 16: o (4 byte float) 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)? CS 3214 Fall 2011

  15. 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 CS 3214 Fall 2011

  16. Typical System Architecture #include <stdio.h> int main() { printf("Hello World\n"); } #include <stdio.h> int main() { printf("Hello World\n"); } Virtual Machine User Program #include <stdio.h> int main() { printf("Hello World\n"); } #include <stdio.h> int main() { printf("Hello World\n"); } #include <stdio.h> int main() { printf("Hello World\n"); } JIT Garbage Collector Runtime Libraries #include <stdio.h> int main() { printf("Hello World\n"); } Threads user mode Processes Other Libraries (libpthreads, libm, libz, etc. etc. System Call kernel mode Kernel C Library (libc) Hardware: (CPUs/Cores, Memory, Disk, Network, etc.) CS 3214 Fall 2011

  17. 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 2011

  18. 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 2011

  19. 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 (32+64bit) • 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 2011

  20. 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 2011

  21. 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 2011

  22. 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 2011

  23. 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 2011

  24. 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 2011

  25. Topic 7: Virtualization • Understand underlying concepts • Understand resource management CS 3214 Fall 2011

  26. Announcements • Exercise 1 and Project 1 have been posted • Due Aug 30 and Sep 7, resp. • Team Up Now! CS 3214 Fall 2011

More Related