(Revised 2020/03/07; 2020/01 Version)
The course catalog says:
Studies the structure, components, design, implementation, and internal operation of computer systems, focusing mainly on the operating system level. Covers current operating system components and construction techniques system calls, I/O, memory management, and file system structures. Discusses issues arising from concurrency and distribution, such as scheduling of concurrent processes, interprocess communication and synchronization, resource sharing and allocation, and deadlock management and resolution. Includes examples from real operating systems. Exposes students to the system concepts through programming exercises. Requires admission to MS program or completion of all transition courses.
This course will explore operating system implementation through programming assignments. This is a programming heavy course; students are expected to be proficient at programming.
|01||CH 103||2:50pm-4:30 Mo/We|
This page is about the section offered in-person on the Boston campus. There are other sections of the course offered at other campuses and/or online.
|Nat Tuck||NI 132 E||We 1:30-2:30pm; Fr 5:30-6:30pm||ntuck ⚓ ccs.neu.edu|
|Kashif Bagdadi||RY 159||We 4:50-6:50pm||bagdadi.k ⚓ husky.neu.edu|
|Harman Singh||HS 101||Th 3-5pm||singh.harm ⚓ husky.neu.edu|
|Meesam Syed||HS 103||Tu 9-11am||meesam.s ⚓ husky.neu.edu|
This is the projected schedule as of March 7th; it may change.
Assignments will frequently be due at 11:59pm on Thursday.
|Week||Starts||Topics||Possible Due Dates|
|1||Jan 6||Intro; ASM 1||HW01: Linux Dev Environment|
|2||Jan 13||ASM 2; ASM syscalls||HW02: Simple ASM Programs|
|3||Jan 20||[MLK Day] Kernel Intro||-|
|4||Jan 27||procs; fork/dup||HW03: Syscalls|
|5||Feb 3||threads||HW04: xv6 syscall|
|6||Feb 10||mmap; data races||HW05: xv6 shell|
|7||Feb 17||[Pres Day] virtual memory||HW06: parallel sort|
|8||Feb 24||allocators||HW07: xv6 shared memory|
|-||Mar 2||Spring Break||-|
|9||Mar 9||garbage collection||HW08: memory allocator|
|10||Mar 16||concurrency; rust||HW09: garbage collector|
|11||Mar 23||virtual machines; disks||HW10: rust parallel sort|
|12||Mar 30||FAT/ext; FUSE||HW11: makeup|
|13||Apr 6||modern FS; dist pt1||-|
|14||Apr 13||dist pt2; wrap-up||HW12: file system|
Holidays and Breaks:
The textbook for this course is online:
The number to letter mapping will be as follows:
95+ = A, 90+ = A-, 85+ = B+, 80+ = B, 75+ = B-, 70+ = C+, 65+ = C, 60+ = C-, 50+ = D, else = F
There may be a curve or scale applied to any assignment or the final grades, in either direction.
There’s a homework due most weeks. Assignments in this class is difficult and you are expected to get stuck. Start early so you have time to get unstuck.
In order to learn the material in this class you must submit the assignments. If at any point you have three unexcused zero grades for assignments that have been graded you will fail the course.
If you fall behind on the course work for any reason, please come to the professor’s office hours to discuss how you can catch up.
For all assignments except the last challenge, late submissions will be penalized by 1% for each hour late.
For the final assignment, late submissions will not be accepted after the sun comes up and the TAs start grading.
If you register for the course late, you will have three days to complete each assignment until you are caught up with the rest of the class.
Participation on Piazza gives you points if you ask good questions, give good answers, or post interesting notes related to the course topics.
Participation in in class activities earns points for being there and participating.
Homework and project grades will be posted on Inkfish. If you think your work was graded incorrectly, you can challenge your grade through the following process:
First, go to the office hours of the course staff member who graded your work. If you can convince them that they made a concrete error in grading, they will fix it for you.
If the grader doesn’t agree that the grade was wrong, you can formally contest your grade with the professor. This follows a variant of the “coaches challenge” procedure used in the NFL.
Here’s the formal challenge procedure:
Students needing disability accommodations should visit the Disability Resource Center (DRC).
If you have been granted special accomodations either through the DRC or as a student athlete, let me know as soon as possible.
Copying code and submitting it without proper attribution is strictly prohibited in this class. This is plagiarism, which is a serious violation of academic integrity.
Providing solution code to other students is also strictly prohibited.
Lecture notes are not starter code, and should not be copied without attribution. As long as attribution is provided, there is no penalty for using code from the lecture notes.
Collaboration and Attribution
Since it’s not plagiarism if you provide attribution, as a special exception to these rules, any code sharing with attribution will not be treated as a major offense.
There is no penalty for copying small snippets of code (a couple of lines) with attribution as long as this code doesn’t significantly impact the intended challenge of the assignment. This should be in a comment above these lines clearly indicating the source (including author name and URL, if any).
If you copy a large amount of code with attribution, you won’t recieve credit for having completed that portion of the assignment, but there will be no further penalty. The attribution must be obvious and clearly indicate both which code it applies to and where it came from.
Posting Code on the Web
Penalty for Plagarism or Providing Solution Code
Avoid copying code if you can. If you’re looking at an example, understand what it does, type something similar that is appropriate to your program, and provide attribution. If you must copy code, put in the attribution immediately, every time or you will fail the course over what feels like a minor mistake.