Presentation is loading. Please wait.

Presentation is loading. Please wait.

E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction

Similar presentations


Presentation on theme: "E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction"— Presentation transcript:

1 E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction
Department of Computer Science and Engineering Washington University, St. Louis MO Instructor: Chris Gill Teaching Assistant: James Orr Thanks to David Ferry, who developed and taught the first edition of this course in the spring semester of 2016

2 Three Goals for Students
The goals of this course are for students to develop: Good intuition about OS operation and design principles OS mechanisms: syscalls, interrupts, processes, process scheduling, process synchronization, inter-process communication Skills for monitoring the runtime operation of an OS Tracers: ftrace (trace-cmd and kernelshark), strace User space benchmarking The scientific method (hypothesis, prediction, experiment, analysis, repeat) Hands-on experience modifying and evaluating an OS Source-code intensive course based on Linux You’ll be asked to modify and evaluate the OS kernel in different ways Course project will involve (requires) a substantial modification E81 CSE 522S - Advanced Operating Systems

3 Course Motivation For an increasing number of computer applications, general purpose operating systems are important but perhaps not enough, e.g.: Real-time Systems Embedded Systems Cyber-physical Systems High-speed Networking Migration away from monolithic platform designs, e.g.: Automotive systems Digital control systems Many graduate students are doing research that modifies (or at least heavily depends on) details of the kernel E81 CSE 522S - Advanced Operating Systems

4 Topics (an Overview) Linux is too large for us to cover everything!
This course focuses on OS features that affect process semantics, e.g.: Scheduling Inter-process communication Timing behavior [see the course website for specifics] This course doesn’t (currently) cover: Device drivers File systems Networking Memory management … [and the list goes on] E81 CSE 522S - Advanced Operating Systems

5 Course Environment Our OS of choice is the Linux kernel
Open source, widely deployed Practical for both research and applied use Helps to develop a broadly applicable skill set This course is designed around the Raspberry Pi 3 Avoids modifying the kernel on machines others may need to use “Personal computing” at its best  Reasonably fast, provides interesting multi-core behavior, affordable Each Raspberry Pi 3 has 1.2GHz 64-bit quad-core ARMv8 for $75 (with CanaKit) Useful, and used elsewhere in WUSTL CSE research and education The Raspberry Pi family is based on the ARM processor architecture The OS has lots of processor-dependent code Will try to provide pointers to x86 references as well, as we go E81 CSE 522S - Advanced Operating Systems

6 Course Format Class time will be split between lecture and studios.
There will be two lab assignments in the first 8 weeks of class There will be a course project in the last 6 weeks of class We will have midterm and semester (comprehensive) exams E81 CSE 522S - Advanced Operating Systems

7 Class Readings Course textbook:
Linux Kernel Development, 3rd Ed., by Robert Love, 2010. A great starting resource for kernel hackers Other class readings are relatively current documents about the Linux kernel Plan to look at a lot of source code in your “spare” time Course website provides a number of free/online references Google is your friend Linux is widely documented (but documentation often is not current) Lots of resources exist for individual directories, files, and even functions E81 CSE 522S - Advanced Operating Systems

8 Words of Advice Kernel hacking requires a lot of patience and thought
kernel compile times often exceed an hour! Spend more time thinking before debugging, designing, writing, compiling, etc. Use the DD (Debuggen von Denken) debugger (as Thomas Gleixner once suggested) Anticipate and learn to spot PEBCAK (problem exists between chair and keyboard) errors Don’t underestimate the power of using pencil and paper before you start typing Work efficiently but persistently Huge established codebase to digest – break it down into manageable bites Our goal is for the time spent “hands-on” to be similar to that in other courses Start early, fail (or succeed) quickly, iterate rapidly, progress steadily over time A few initial tips (to avoid problems we’ve seen already) Always plug in the (micro-USB) power connection last (after all other cables) Make sure your keyboard is configured correctly after the system first boots up E81 CSE 522S - Advanced Operating Systems

9 This is a Relatively New Course for Us
Your instructor and TA may know less than you might think! There are too many specifics in the kernel to know everything initially But we’re happy to talk about anything and keep learning on-the-job Hopefully this course: Isn’t too hard or too easy for anyone enrolled in it Builds on basic OS understanding (CSE 422 and C programming are prerequisites) Works for people whose knowledge of Linux ranges from basic to advanced We welcome comments and suggestions about topics and pacing Please come talk to us if you have any questions or comments E81 CSE 522S - Advanced Operating Systems


Download ppt "E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction"

Similar presentations


Ads by Google