CSE 522S Advanced Operating Systems Course Introduction

Slides:



Advertisements
Similar presentations
Introduction Characteristics of USB System Model What needs to be done Platform Issues Conceptual Issues Timeline USB Monitoring Final Presentation 10.
Advertisements

Systems Programming Course Gustavo Rodriguez-Rivera.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Study Tips for COP 4531 Ashok Srinivasan Computer Science, Florida State University Aim: To suggest learning techniques that will help you do well in this.
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis
Course Overview Sarah Diesburg  Bobby Roy COP 5641 / CIS 4930.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
Editing & Compiling: UNIX vs. IDE and an Intro to Architecture.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Abdul Rahim Ahmad.
Nachos Overview 2011 级 OS 课程设计 2013 秋. to get your hands dirty Read and analyze Build observe.
Course Overview Mark Stanovich COP 5641 / CIS 4930.
Essential Programming Skills CSE 340 – Principles of Programming Languages Spring 2016 Adam Doupé Arizona State University
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
CSE 332: C++ expressions Expressions: Operators and Operands Operators obey arity, associativity, and precedence int result = 2 * 3 + 5; // assigns 11.
Linux Boot Process on the Raspberry Pi 2 1 David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis,
Introduction to Information Systems SSD1: Introduction to Information Systems Unit 1. The World Wide Web Unit 2. Introduction to Java and Object- Oriented.
Computer System Laboratory
Android Mobile Application Development
Computer System Laboratory
Linux Details: Device Drivers
Computer System Laboratory
E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction
CNT 4704 Computer Communication Networking (not “analysis”)
Course on Embedded Systems Introduction
Essential Programming Skills
How & When The Kernel Runs
Implementation of Embedded OS
Midterm Review Chris Gill CSE 422S - Operating Systems Organization
Midterm Review David Ferry, Chris Gill
Development-Introduction
Computer System Laboratory
Department of Computer Science and Engineering
Kernel Tracing David Ferry, Chris Gill
Processes David Ferry, Chris Gill
Overview of the Lab 2 Assignment: Linux Scheduler Profiling
Semester Review Chris Gill CSE 422S - Operating Systems Organization
CMPE419 Mobile Application Development
CSCI/CMPE 3334 Systems Programming
Section 1: Introduction to Simics
Andy Wang Operating Systems COP 4610 / CGS 5765
Lecture 1: Parallel Architecture Intro
Andy Wang Operating Systems COP 4610 / CGS 5765
Kernel Structure and Infrastructure
Intro to CIT 594
Andy Wang Operating Systems COP 4610 / CGS 5765
Linux Details: Device Drivers
Testing and Debugging Concurrent Code
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
Andy Wang Operating Systems COP 4610 / CGS 5765
Kernel Structure and Infrastructure
How & When The Kernel Runs
Scheduling of Regular Tasks in Linux
Time Sources and Timing
Chris Gill CSE 522S – Advanced Operating Systems
Kernel Tracing David Ferry, Chris Gill, Brian Kocoloski
Introduction to Single Board Computer
Department of Computer Science and Engineering
Andy Wang Operating Systems COP 4610 / CGS 5765
Interrupts and Interrupt Handling
CMPT 102 Introduction to Scientific Computer Programming
Processes David Ferry, Chris Gill, Brian Kocoloski
CMPE419 Mobile Application Development
Virtual Memory and Paging
Shared Memory David Ferry, Chris Gill
Scheduling of Regular Tasks in Linux
Presentation transcript:

CSE 522S Advanced Operating Systems Course Introduction Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO cdgill@wustl.edu Thanks to David Ferry, who initially developed and taught the first version of this material in the spring semester of 2016, and to the students who took the course with me that fall, whose suggestions have been leveraged to improve it

Three Goals for Students Build intuition about OS operation and design principles Additional mechanisms: signals, pipes/fifos, sockets, shared memory, etc. Enrich skills for monitoring the runtime operation of an OS New features of monitoring tools, e.g., event queries for kernelshark The scientific method (hypothesis, prediction, experiment, analysis, repeat) Gain further experience enforcing/evaluating OS behavior E.g., real-time behavior E.g., forensics for memory, file system, processes/threads, timing As in CSE 422, the studios will help you gain experience and expertise to use in the lab assignments CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Course Environment As in CSE 422, 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 Can quickly re-deploy a new version of the kernel if the one running locks up “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 < $100 (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 (in separate directories) Will occasionally mention x86 differences, where relevant CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Class Readings Course textbooks (lots of good advice to help you succeed): Linux System Programming, 2nd Ed., by Robert Love, 2013 Linux Kernel Development, 3rd Ed., by Robert Love, 2010 (also a text book for CSE 422) Google is your friend Linux is widely documented (but documentation often is not current) Lots of other resources exist for Linux mechanisms and features We will also provide links to key resources on the course web site CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Words of Advice Kernel hacking requires a lot of patience and thought Spend time thinking before debugging, designing, writing, compiling, etc. Use the DD (Debuggen von Denken) debugger (Thomas Gleixner suggested) Anticipate PEBCAK (problem exists between chair and keyboard) errors Don’t underestimate the power of 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 our intro courses Start early, fail (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 keyboard etc. is configured correctly when system first boots up CSE 522S – Advanced Operating Systems