Instructor | Ben Weintraub |
Room | Dodge Hall 119 |
Time | MTWTh 3:20-5pm |
Office Hours | Th 1-3pm (location: TBD) |
Class Forum | Piazza (link coming soon) |
Introduces the basic design of computing systems, computer operating systems, and assembly language using a RISC architecture. Describes caches and virtual memory. Covers the interface between assembly language and high-level languages, including call frames and pointers. Covers the use of system calls and systems programming to show the interaction with the operating system. Covers the basic structures of an operating system, including application interfaces, processes, threads, synchronization, interprocess communication, deadlock, memory management, file systems, and input/output control.
CS 2510 (Fundamentals of Computer Science II) or EECE 2560 (Fundamentals of Engineering Algorithms).
Students should have experience with programming in high-level languages such as Java, Go, JavaScript, or Rust, as well as some knowledge of algorithms, data structures, and software engineering principles.
The class forum is on Piazza. Why Piazza? Because they have a nice web interface, as well as iPhone and Android apps. Piazza is the best place to ask questions about projects, programming, debugging issues, etc. In order to keep things organized, please tag all posts with the appropriate hashtags, e.g. #assigment1, #lab3, etc. I will also use Piazza to broadcast announcements to the class.
Unless you have a private problem, post to Piazza before writing me an email.
Date | Slides/Notes | Reading | Comments |
---|---|---|---|
5/5 | Intro to Computer Systems | The Night Watch | First class |
5/6 | Intro to Computer Systems | ||
5/7 | Assembly | ||
5/8 | Assembly | ||
5/12 | Memory, Stack, Recursion | ||
5/13 | Memory, Stack, Recursion | ||
5/14 | Intro to C | ||
5/15 | Intro to C | ||
5/19 | Processes | ||
5/20 | Processes | ||
5/21 | File I/O | ||
5/22 | File I/O | ||
5/26 | Virtual Memory | ||
5/27 | Virtual Memory | ||
5/28 | Concurrency | ||
5/29 | Concurrency | ||
6/2 | Condition Variables, Semaphores, Shared Memory | ||
6/3 | Condition Variables, Semaphores, Shared Memory | ||
6/4 | OS Kernels, Booting, xv6 | ||
6/5 | OS Kernels, Booting, xv6 | ||
6/9 | File Systems | ||
6/10 | File Systems | ||
6/11 | File Systems | ||
6/12 | File Systems | ||
6/16 | Access Control | ||
6/17 | Exploit Prevention | ||
6/18 |
For this course, we will be using Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. This is a popular text for courses like this one, and it is available for free online. Of course, if you want to support the authors, you can also buy a copy.
Assignment | Due Date | Piazza Tag |
---|---|---|
Assignment 1 | #assignment1 |
Lab | Due Date | Piazza Tag |
---|---|---|
Lab 1 | #lab1 |
There will be no exams.
This class is primarily programming-based. Therefore, you will mostly be judged on the quality and correctness of your code.
Class Activities (around 10) | 15% |
Labs (around 10) | 15% |
Assignments (around 8) | 48% |
Projects (2) | 22% |
In this class, we will use the Coaches Challenge to handle requests for regrading. Each student is allotted two (2) challenges each semester. If you want a project or a test to be regraded, you must come to the professors office hours and make a formal challenge specifying (a) the problem or problems you want to be regraded, and (b) for each of these problems, why you think the problem was misgraded. If it turns out that there has been an error in grading, the grade will be corrected, and you get to keep your challenge. However, if the original grade was correct, then you permanently lose your challenge. Once your two challenges are exhausted, you will not be able to request regrades. You may not challenge the use of slip days, or any points lost due to lateness.
Note that, in the case of projects, all group members must have an available challenge in order to contest a grade. If the challenge is successful, then all group members get to keep their challenge. However, if the challenge is unsuccessful, then all group members permanently lose one challenge.
It’s ok to ask your peers about the concepts, algorithms, or approaches needed to do the assignments. We encourage you to do so; both giving and receiving advice will help you learn. However, what you turn in must be your own, or for projects, your group’s own work. Looking at or copying code or homework solutions from other people or the Web is strictly prohibited. In particular, looking at other solutions (e.g., from other groups or students who previously took the course) is a direct violation. Projects must be entirely the work of the students turning them in, i.e., you and your group members. If you have any questions about using a particular resource, ask the course staff or post a question to the class forum. All students are subject to the Northeastern University’s Academic Integrity Policy. Per Khoury College policy, all cases of suspected plagiarism or other academic dishonesty must be referred to the Office of Student Conduct and Conflict Resolution (OSCCR). This may result is deferred suspension, suspension, or expulsion from the university.
If you have a disability-related need for reasonable academic accommodations in this course and have not yet met with a Disability Specialist, please visit www.northeastern.edu/drc and follow the outlined procedure to request services. If the Disability Resource Center has formally approved you for an academic accommodation in this class, please present the instructor with your “Professor Notification Letter” at your earliest convenience, so that we can address your specific needs as early as possible.
Title IX makes it clear that violence and harassment based on sex and gender are Civil Rights offenses subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, etc. If you or someone you know has been harassed or assaulted, you can find the appropriate resources here.
Thank you to Christo Wilson, Cheng Tan, Ji-Yong Shin, and Ferdinand Vesily, from whom much of this content is derived.