1 / 21

CS 3214 Computer Systems

CS 3214 Computer Systems. Godmar Back. Course Introduction. About Me. Undergraduate Work at Humboldt and Technical University Berlin PhD University of Utah Postdoctoral Work at Stanford University 11 th Year at Virginia Tech joined August 2004,

medinam
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 Course Introduction

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

  3. Administrivia CS 3214 Fall 2014

  4. Course Facts • Meet Monday & Wednesday • Section 1: WLH 320: 4:00pm-5:15pm • Check website regularly • http://courses.cs.vt.edu/~cs3214 • Use CS Forum http://www.piazza.com • Send email to cs3214-staff@cs.vt.edu • All students enrolled in CS3214 have access to McB 124 (Systems Lab) CS 3214 Fall 2014

  5. Force/Add • If you are not enrolled, do this now: • Have students log into https://www.cs.vt.edu/F14Force-AddsThe password for your 3214 section is 3214gvb# CS 3214 Fall 2014

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

  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 2014

  8. Grading • Tentative breakdown (subject to change): • 12.5% Midterm • 22.5% Final • 42.5% Projects (1 & 4 will weigh more heavily than 2 & 3) • 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 can cap your grade • Define minimum requirements that must be met for each project • Not meeting requirements for 1, 2, 3, or 4 projects lowers your maximum grade to B+, C+, D+, F respectively • You may still fail CS 3214 Fall 2014

  9. Group Projects • Projects are group projects • Projects 1 and 4 MUST be done by a group • Projects 2 and 3 MAY be done by a group • 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 • May partner across class sections • Exercises are done individually CS 3214 Fall 2014

  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 2014

  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 2014

  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 2014

  13. Prerequisites • Knowledge of computer organization (CS 2506) • Knowledge of algorithms & data structures (CS 2114) • Generally follow the department’s guidelines CS 3214 Fall 2014

  14. 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 2014

  15. 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 2014

  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 2014

  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 CS 3214 Fall 2014

  18. Topic 1: Processes • Learn the underlying abstractions of processes and multi-process applications • Gain experience with Unix system calls related to processes • Subtopics: • Process creation and management • Signals and signal handling • Interprocess communication • Project 1 • Write your own shell CS 3214 Fall 2014

  19. Topic 2: Threads • Understand trends in computer architecture and its implications for application design • Explore concurrency and race conditions • Learn commonly used synchronization techniques in C (and Java) • Learn how to manage concurrency • Understand deadlock: causes and preventions • Project 2 • Managing a pool of threads • Future synchronization CS 3214 Fall 2014

  20. Topic 3: Memory • Understanding the construction and management of a process’s memory image • The linking and loading processes • User-level memory management • Explicit vs. automated • User-level APIs for shared memory • Concepts underlying virtual memory and caching • Understand programmer impact • Memory tools • Project 3 • User-level malloc() CS 3214 Fall 2014

  21. Topic 4: Internet • Understand basics of Internet addressing and communication • Understand use of socket API and underlying abstractions, • Understand protocol layering and basic protocol design with a focus on HTTP • Understand how to write multi-threaded and event-based server programs • Fundamentals of Virtual Machine Monitors • Exercise 5 • Set up your own hosted VM in Amazon cloud (AWS) • Project 4 • A multi-threaded HTTP server CS 3214 Fall 2014

More Related