๐ General
๐ ๏ธ Software and Other Resources
- Virtual Machines (software to virtualize entire computer systems)
- For Windows users with an Intel/AMD chip:
- VirtualBox
- WSL (technically not a virtual machine)
- Hyper-V
- For Mac users with an Intel or Apple Silicon chip:
- UTM (recommended)
- VirtualBox
- VMware Fusion
- For Windows users with an Intel/AMD chip:
- Linux: An open-source operating system (Note: If you are on a 64-bit x86 Intel/AMD machine, download the x86_64 version of Linux. If you are on an ARM machine such as Apple Silicon, download the aarch64 version of Linux)
- Fedora Linux (I recommend the latest version of the โWorkstationโ version, and find that Fedora works best when virtualizing with something like VirtualBox or UTM)
- Ubuntu Linux
- Other flavors
- Linux Setup Instructions: In case you want to install a full copy of Linux on your own computer
- How To Run the Textbook Code: Instructions for compiling and running C code
- PicoCluster Tutorial: Instructions for connecting to PicoCluster
๐ Tutorials
C
Linux Command Line
Terminal-Based Text Editor
๐บ Videos
๐ Study Guides
๐งฉ Projects
๐ฅ๏ธ Simulators/Code
๐ Course Schedule
| Week | Date | Topics | Due |
|---|---|---|---|
| 1 | Feb 4th (Tuesday) | Course Introduction, PicoCluster, The Linux OS For next time: Read the syllabus, log in to PicoCluster and familiarize yourself with Linux, and get the textbooks. |
|
| Feb 6th (Thursday) | Installing Linux For next time: Familiarize yourself with Linux. Make sure you have access to Linux (either via PicoCluster, UTM, VirtualBox, WSL, VMware Fusion, etc.) |
||
| 2 | Feb 11th (Tuesday) | Introduction to Operating Systems, The Linux Command Line For next time: Read the first two chapters of OSTEP. Continue familiarizing yourself with Linux, install CyberDuck on your own computer, download the code from the book and move it over to PicoCluster (or whatever virtual machine you are using). |
|
| Feb 13th (Thursday) | Processes For next time: Make sure to have read Chapters 1 and 2 in OSTEP, and now start reading Chapters 3 and 4. Project 4S is now posted. |
|
|
| 3 | Feb 18th (Tuesday) | Process API For next time: Finish reading Chapters 3 and 4, and start reading Chapter 5. Start reading just the beginning of LPG (Linux Pocket Guide). Project 4S is now posted. |
|
| Feb 20th (Thursday) | Direct Execution For next time: Start reading Chapter 6 in OSTEP. Finish reading LPG (Linux: A First View). Project 5S is now posted. |
|
|
| 4 | Feb 25th (Tuesday) | CPU Scheduling For next time: Start reading Chapter 7 in OSTEP. Start reading LPG (The Filesystem, Shell Features) |
|
| Feb 27th (Thursday) | SIGCSE 2025 - NO CLASS |
|
|
| 5 | Mar 4th (Tuesday) | Multi-Level Feedback Queue For next time: Start reading Chapter 8 in OSTEP. Read LPG (Basic File Operations) |
|
| Mar 6th (Thursday) | NO CLASS For next time: Use this time to work on Project 5C. This is a coding project, and you will need to compile real C code on Linux. Remember to use the examples from the chapter as a template. Start reading Chapter 8 in OSTEP. Read LPG (Basic File Operations). |
||
| 6 | Mar 11th (Tuesday) | Review for Exam 1 For next time: Use this time to work on Project 5C. This is a coding project, and you will need to compile real C code on Linux. Remember to use the examples from the chapter as a template. Project 5C is now due Thursday night. Project 7S is now posted. |
|
| Mar 13th (Thursday) | Address Spaces / Memory API For next time: Exam 1 is on Tuesday next week. Read Chapters 13 and 14. |
|
|
| 7 | Mar 18th (Tuesday) | Exam 1 For next time: Make sure to finish Project 7S before break. |
|
| Mar 20th (Thursday) | Address Translation For next time: Finish Project 7S. We will learn more about memory after we return from break. Read Chapter 15 regarding address translation. |
|
|
| 8 | Mar 25th (Tuesday) | SPRING HOLIDAY - NO CLASS | |
| Mar 27th (Thursday) | SPRING HOLIDAY - NO CLASS | ||
| 9 | Apr 1st (Tuesday) | Segmentation For next time: Start working on Project 15S. Read Chapter 16. |
|
| Apr 3rd (Thursday) | Free Space Management For next time: Read Chapter 17. Iโve already posted both of the simulators for these two chapters to help you understand the concepts. Finish Project 15S by Tuesday night. |
|
|
| 10 | Apr 8th (Tuesday) | Paging For next time: Read Chapter 18. Project 15S is due tonight. |
|
| Apr 10th (Thursday) | Swapping For next time: Read Chapter 21 and Chapter 22. Project 17S is Tuesday. We will review for Exam 2 next time, and I have already posted a study guide. |
|
|
| 11 | Apr 15th (Tuesday) | Review for Exam 2 / Concurrency and Threads For next time: The second exam will be next Tuesday. We will continue our introduction into the final section of concurrency on Thursday. |
|
| Apr 17th (Thursday) | Locks For next time: Exam 2 is next time. Please focus your efforts on studying for it. |
|
|
| 12 | Apr 22nd (Tuesday) | Exam 2 For next time: We will continue examining concurrency by looking at locked data structures. |
|
| Apr 24th (Thursday) | Locked Data Structures For next time: We will continue examining concurrency by looking at condition variables. |
|
|
| 13 | Apr 29th (Tuesday) | Condition Variables For next time: Finish Project 26S, and work on Project 28S. |
|
| May 1st (Thursday) | Semaphores For next time: Finish Project 28S, and start working on Project 30C (this will be the last one). |
|
|
| 14 | May 6th (Tuesday) | Persistence For next time: We will review for the final exam next time. The study guide is posted. |
|
| May 8th (Thursday) | Review for Final Exam For next time: The project due date has been moved a day to Friday night to give you an extra day. The final exam is Thursday at 11:30PM. |
|
|
| 15 | May 15th (Thursday) | Final Exam (11:30PM - 2:00PM) |