Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


Department of Computer Science & Engineering

CS3224

Operating Systems Design and Implementation

Fall 2020


Course Pre-requisites

CS-UY 2214 (Computer Architecture and Organization)

CS-UY 2134 (Data Structures and Algorithms)

Strong Programming in C or C++. (You will have a very hard time, and are at risk of failing the class if you haven’t programmed in C or C++ before)


Course Description

This course is an introduction to operating system design and implementation. We study operating systems because they are examples of mature and elegant solutions to a difficult design problem: how to safely and efficiently share system resources and provide abstractions useful to applications.

For the processor, memory, and disks, we discuss how the operating system allocates each resource and explore the design and implementation of related abstractions.

We also establish techniques for testing and improving system performance and introduce the idea of hardware virtualization. Programming assignments provide hands-on experience with implementing core operating system components in a realistic development environment. We will examine in detail the design and implementation of a UNIX-like operating system, and cover general operating systems concepts, such as processes, threads, memory, virtual memory, device drivers, filesystems, scheduling, concurrency, security and virtualization.


Readings

Textbooks:

● Arpaci-Dusseau, R and Arpaci-Dusseau A. Operating Systems Three Easy PiecesAvailable online for free.

● Russ Cox, Frans Kaashoek, and Robert Morris, xv6: A simple, Unix-like teaching operating systemhttp://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

● Andrew S. Tannenbaum, Modern Operating SystemsAvailable on NYU Classes.


Useful references:

● Linux command line cheat sheet: http://cli.learncodethehardway.org/bash_cheat_sheet.pdf

● Gdb cheat sheet: http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf


Course requirements

● Attendance will not be taken, but it is highly recommended and it will help with your participation.

● Assignments must be received by midnight on the day they are due. Late homework will not be accepted.


Cooperation Policy

You will work individually on every assignment. You may discuss solutions with your classmates but stop short or sharing your code with them.


Academic Honesty

All work submitted in this course must be your own. Cheating and plagiarism will not be tolerated. If you have any questions about a specific case, please ask me.

NYU Poly’s Policy on Academic Misconduct: http://engineering.nyu.edu/academics/code-of-conduct/academic-misconduct


Course schedule (Tentative)

The course schedule is tentative, it’s likely to change as the weeks go on. In the following, OSTEP stands for OSTEP stands for Operating Systems Three Easy Pieces, MOS stands for “Modern Operating Systems”, xv6 stands for “xv6: A simple, Unix-like teaching operating system

Week
Theme
Topic
Reading
  1 – Sept 3
  Introductory Topics
  Course Information. OS Intro.
  OSTEP 1 xv6 0-1
  2 – Sept 8
  OS Overview
  MOS 1 & xv6 0-1
  2 – Sept 10
  PC Hardware & Assembly Language
  MOS 1 & xv6 0-1
  3 – Sept 15
  PC Hardware & Assembly Language
  ** Last day to drop class and not receive W **
  MOS 1 & xv6 0-1
  3 – Sept 17
  The Boot Process
  xv6 Appendix B
  4 – Sept 22

  System Call Interface
  xv6 Appendix B
  4 – Sept 24
  Processes
  OSTEP 4, MOS 2 & xv6 5
  5 – Sept 29
  Process API
  OSTEP 5, MOS 2 & xv6 5
  5 - Oct 1

  Scheduling Algorithms
  OSTEP 7, MOS 2 & xv6 5
  6 – Oct 6

  Memory Management
  MOS 3.3-3.5 & xv6 2
  6 – Oct 8

  Memory Management
  MOS 3.3-3.5 & xv6 2
  7 – Oct 13
  Memory Virtualization
  Virtual Memory
  MOS 3.3-3.5 & xv6 2
  7 – Oct 15
  Virtual Memory
  MOS 3.3-3.5 & xv6 2
  8 – Oct 20
  Virtual Memory
  MOS 3.3-3.5 & xv6 2
  8 – Oct 22
  Midterm Review

  9 – Oct 27
  Midterm (No class)

  9 – Oct 29
  Concurrency
  Threads
  MOS 3.1-3.2 & xv6 2
  10 – Nov 3

  Threads
  MOS 2.3 – 2.5
  10 – Nov 5
  Concurrency
  MOS 2.3 – 2.5.
  OSTEP 26-33
  11 – Nov 10

  Concurrency

  11 – Nov 12

  Concurrency

  12 – Nov 17
  Persistence

  Storage & Filesystems
  MOS 4.1-4.4 & xv6 6
  12 – Nov 19
  Storage & Filesystems
  MOS 4.1-4.4 & xv6 6
  13 – Nov 24
  Device Drivers,
  Interrupts, and I/O
  MOS 5 & xv6 3
  13 – Nov 26
  Thanksgiving (no Class)

  14 – Dec 1

  Hard Disk Drives
  OSTEP 37
  14 – Dec 3
  Advanced Topics
  RAID
  OSTEP 38
  15 – Dec 8
  Security
  MOS 9
  15 – Dec 10
  Virtualization
  MOS 7
  Dec 15 – 21

  Final Exam (Final date is decided schoolwide and
  assigned to each class, so please don’t make travel
  plans before the end of the week.


Grading

Grading will be based on the following weights.

40% Homework (Programming Projects. I will drop lowest grade.)

30% Midterm (Take home programming project & questions)

30% Final Exam (Take home programming project & questions)

7 % Extra Credit


Grading Schema:

A
A-
B+
B
B-
C+
C
C-
D+
D
F
95
90
87
83
80
77
73
70
67
60
0


Other Grading notes:

Please take the following into consideration during and after the semester and save yourself one or many emails.

1) I must grade every student EXACTLY the same way. To this end, I cannot give you special consideration as a result of your academic status (probation or otherwise), scholarships, work status, family situation, visa status, race, color, creed, religious beliefs, past alien abductions, current moon cycle, location of the sun in the sky or anything other than your academic performance. Your grade must be based on your academic performance in my class.

2) I cannot change your grade simply because you ask me to. Your grade is calculated based on your performance from the first day of class to moment you turn in the final exam.

3) I will not give you additional work. Please remember that I must treat all students the same, so if I give you additional work, I would have to give it to the entire class. This is unfair to the students who complete their work on time.

4) Your grade is a measure of your performance in my class. If you receive an “F” it is because you have demonstrated that you do not understand the material in the course; if you receive an “A” it is because you have demonstrated that you fully understand the material covered in the course. Other grades are assigned accordingly.


Moses Center Statement of Disability

If you are student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities (CSD) at 212-998-4980 or [email protected]. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 3rd floor.


NYU School of Engineering Policies and Procedures on Academic Misconduct – complete Student Code of Conduct here

A. Introduction: The School of Engineering encourages academic excellence in an environment that promotes honesty, integrity, and fairness, and students at the School of Engineering are expected to exhibit those qualities in their academic work. It is through the process of submitting their own work and receiving honest feedback on that work that students may progress academically. Any act of academic dishonesty is seen as an attack upon the School and will not be tolerated. Furthermore, those who breach the School’s rules on academic integrity will be sanctioned under this Policy. Students are responsible for familiarizing themselves with the School’s Policy on Academic Misconduct.

B. Definition: Academic dishonesty may include misrepresentation, deception, dishonesty, or any act of falsification committed by a student to influence a grade or other academic evaluation. Academic dishonesty also includes intentionally damaging the academic work of others or assisting other students in acts of dishonesty. Common examples of academically dishonest behavior include, but are not limited to, the following:7

1. Cheating: intentionally using or attempting to use unauthorized notes, books, electronic media, or electronic communications in an exam; talking with fellow students or looking at another person’s work during an exam; submitting work prepared in advance for an in-class examination; having someone take an exam for you or taking an exam for someone else; violating other rules governing the administration of examinations.

2. Fabrication: including but not limited to, falsifying experimental data and/or citations.

3. Plagiarism: intentionally or knowingly representing the words or ideas of another as one’s own in any academic exercise; failure to attribute direct quotations, paraphrases, or borrowed facts or information.

4. Unauthorized collaboration: working together on work meant to be done individually.

5. Duplicating work: presenting for grading the same work for more than one project or in more than one class, unless express and prior permission has been received from the course instructor(s) or research adviser involved.

6. Forgery: altering any academic document, including, but not limited to, academic records, admissions materials, or medical excuses.

NYU School of Engineering Policies and Procedures on Excused Absences – complete policy here

A. Introduction: An absence can be excused if you have missed no more than 10 days of school. If an illness or special circumstance has caused you to miss more than two weeks of school, please refer to the section labeled Medical Leave of Absence.

B. Students may request special accommodations for an absence to be excused in the following cases:

1. Medical reasons

2. Death in immediate family

3. Personal qualified emergencies (documentation must be provided)

4. Religious Expression or Practice