Website: https://www.cs.cmu.edu/~410/ Dave Eckhardt: [email protected] Babu Pillai: [email protected] TA: [email protected] Zoom: Here Syllabus: Here Old Exam: Here 15-410 AFS space Documentation: Here Guide on Answering Questions: Here
Before Questions (with only PDF/html/ascii text files acceptable), look into:
Assigned textbook readings
General lecture material
Lecture material on a particular project
Written handout for a particular project
Pebbles kernel specification
Technical reference material (Linux "manual pages", Intel hardware documentation, etc.)
Please do not send us files via electronic mail. Really! If you want us to look at some of your files, you should put them into a private AFS directory, make sure we can read it, and send us the filename. If you use course-issued AFS space, this is easy, since 410 staff can automatically read that. If you use some other AFS space, you will need to do something like this:
% fs sa . de0u:410staff rl
% fs sa .. de0u:410staff l
% fs sa ../.. de0u:410staff l
Eventually you will be told "permission denied" and then you are probably done.
Projects
“Stack crawler” - readiness check [1-person project]
Bare-machine video game [1-person project]
Thread library
OS kernel: Unix-inspired OS kernel, in C with some x86 assembly language
Kernel extension
Project environment
Intel Simics™ system simulator
Your projects can also run on real PC hardware
Homework: 2 Reading: Pick something fun, write report Mid-term, Final exam: closed-book
Travel: no interview travel
Learning Outcome:
synthesize externally-provided specifications and manufacturer-provided technical documentation into a considered design,
compare and contrast the properties of memory regions according to the Unix process model,
compare and contrast the properties and roles of x86-32 registers,
explain the interactions of input/output operations and per-thread scheduling states,
implement address spaces in terms of both high-level data structures and hardware registers and tables, including TLB management,
explain why and how multiple threads are used in a single address space,
analyze and write lock-based multi-threaded code and lock objects, including detecting and documenting race conditions and deadlock,
explain the relationship between interrupts and other forms of concurrency,
use multiple tools and approaches to debug concurrency-related code failures,
write robust code that responds appropriately to resource exhaustion,
write clear, appropriately documented code,
define and illustrate key computer security concepts such as protection domains, capabilities, access control lists, and least-privilege execution,
define, illustrate, and apply, in a basic fashion, key computer security technologies such as secure hashes, symmetric cipers, and asymmetric ciphers,
describe and illustrate key elements of higher-level operating systems features such as file systems, interprocess communication, real-time scheduling, disk arrays, and log-based storage,
study an OS-related topic via a medium-sized non-textbook technical reading assignment and report in writing on what was learned.
Academic Honesty: whiteboard policy + must be in physical space
you may electronically share details about past individual projects with your partner while working on a project designated as a partner project (e.g., you and your P3 partner may merge your P1 driver code). you may communicate electronically via an audio/video-conferencing tool, such as Zoom, as long as such conferences are not recorded, do not involve more than three participants at a time, and do not result in permanent records (saved white-board contents, screen shots of white-board contents, chat logs, etc.). Will use tools to check above you must not make publicly available, or distribute to others, code you write to solve problems posed by course assignments. You must not export lecture materials, project handouts, project starter code, etc., to public web sites
Documentation: 5% of each programming assignment.
Grade Appeals: 7 CMU business day
Depending on availability, some assignments may be reviewed by alumni who formerly served as members of the course staff. These alumni work, or have worked, in OS roles at a variety of companies, such as Apple, VMware, Meta, Microsoft, and sometimes trading companies and various startups. These individuals, by virtue of their extensive industry experience, are in a position to provide substantial insight, and may develop into industry networking contacts. Each alumni reviewer agrees to adhere to student privacy requirements and other conduct requirements. Grade assignment, of course, remains the responsibility of the instructor(s). Also, as a matter of academic practice, some assignment review and some grading may involve SCS Ph.D. students and/or faculty members who are not instructors of record for the current semester. If you wish for all of your work to be reviewed by a current member of the course staff (or another faculty member), please contact the instructor(s).
5% Zeroth Programming Project 5% First Programming Project 15% Second Programming Project 25% Third Programming Project 5% Fourth Programming Project 15% Midterm Exam 20% Final Exam 10% Homeworks (~3) and book report
Regardless of assignment weights, your weighted project average and weighted exam average must each be a passing grade in order to pass the course.
AI:
can't be used to generate any parts of code or design
can write documentation
can ask questions to review reading
can use grammar checker
can't generate text from outline or summary
Suggestions for configuring AI tools in specific environments: ie. disable copilot
Late Days: total of 3 (minimum for team project), can use up to 3 in one project
late-day registration form: Here
by 00:30 (thirty minutes after the deadline) if possible.
Assuming your message is received, the next morning somebody will unlock your hand-in directory so you can again save your work.
Each time you file for a late day, make sure you have submitted your best work so far into your hand-in directory.
Table of Content