NSC 205 :  11AM – 12.05PM (MWF)

Bell 138 NSC 205 (Recitations) : 12.05PM – 12.30PM (MWF)

THEORY (60%)

  • Mid-terms – 25% (Introduction, Operating System Structures, Processes, Threads, Process Synchronization, CPU Scheduling, Deadlocks)

  • Finals – 25% (Main Memory, Virtual Memory, Mass-Storage Structure, File-System Implementation, I/O Systems)

  • HW + Quizzes – 10% (5 quizzes will be conducted randomly at any time during the course of the semester. 5 homeworks are meant for discussion with team/Piazza and submission.)



  • Pintos Checkpoint 1 [Thread Support] – 20% (15% source code + 5% design doc) Objective: Extend functionality of Pintos OS to gain clear understanding of thread synchronization. Cross-ref: Chap 4 in textbook.

  • Pintos Checkpoint 2 [User Programs] – 20% (15% source code + 5% design doc) Objective: Understand and implement system calls to make user programs interact with Pintos Kernel. Cross-ref: Chap 5, 6, 7, 8, 9 in textbook.

  • Grads and undergrads would be graded on two separate curves.

  • A VM for Pintos is provided containing bare-bone implementation over which checkpoints 1 and 2 should be implemented. The VM is already shared in the link below.

  • Pintos requires you to be familiar with the C programming language. A good place to practice your C skills is at https://www.codechef.com/

  • The first day of class is May 29th and the end-date is Aug 17th.

  • Please note the academic integritry policy at:  http://academicintegrity.buffalo.edu/policies

Please sign-up for Piazza to follow all discussions of project and classes of CSE 4/521

1. This homework is designed to analyze the reading comprehension ability of a student in browsing through and understanding the PintOS source code.
2. Team submission is advocated in-order to promote better communication of technical concepts among team members, develop a sense-of-oneness, help understand each other’s ability, and be responsible for each other in a group setting.


Submission deadline: Wednesday- June 20, 2018 (Inclass)


Day-Date Topic Slides Recitation/Supplemental Material Video Link
W-May 30 Intro-1 [pdf; 451KB] https://youtu.be/HUWio2IpAew
F-Jun 1 Intro-2 [pdf; 272KB] Installing VirtualBox[blog] https://youtu.be/dsJNccT1WIE
M-Jun 4 OS Structure [pdf; 1017KB] Pintos Setup https://youtu.be/Pul2ksCqbLI
W-Jun 6 Processes [pdf; 610KB] https://youtu.be/_o9rcVKbqQ4
F-Jun 8 Threads [pdf; 571KB] https://youtu.be/EDItPbbILZY
M-Jun 11 Process Sync-1 [pdf; 262KB] https://youtu.be/ZnjsX661US4
W-Jun 13 Process Sync-2 [pdf; 166KB] https://youtu.be/uD7PPfjmO8I
F-Jun 15 CPU Scheduling-1[pdf;447KB] PintOS source code extension [YouTube] https://youtu.be/mucJjMhJswg
M-Jun 18 CPU Scheduling-2[pdf;662KB] https://youtu.be/420KX4ICrco
W-Jun 20 CPU Scheduling-3[pdf;291KB] https://youtu.be/4fjfJ5Edq7A
F-Jun 22 Deadlocks[pdf;302KB] https://youtu.be/swGlMthKmhM
M-Jun 25
W-Jun 27
F-Jun 29
M-Jul 2
W-Jul 4 Independence Day (no class)
F-Jul 6
M-Jul 9
W-Jul 11
F-Jul 13
M-Jul 16
W-Jul 18
F-Jul 20
M-Jul 23
W-Jul 25
F-Jul 27
M-Jul 30
W-Aug 1
F-Aug 3
M-Aug 6
W-Aug 8
F-Aug 10
M-Aug 13
W-Aug 15
F-Aug 17
M-Aug 20
W-Aug 22
F-Aug 24
M-Aug 27