Operating Systems

COSC 360

πŸ“‹ General

πŸ› οΈ Software and Other Resources

  • Virtual Machines (software to virtualize entire computer systems)
  • 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
  • Cyberduck: For moving files to/from servers like Picocluster
  • 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 3rd (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 5th (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 10th (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). Start reading Linux Pocket Guide (Chapter 1).

Feb 12th (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.

  • Read OSTEP Chapters 1 and 2
3 Feb 17th (Tuesday)

Process API

For next time: Finish reading Chapters 3 and 4, and start reading Chapter 5. Continue reading Chapter 1 of LPG. Project 4S is now posted.

  • Read OSTEP Chapters 3 and 4
Feb 19th (Thursday)

Direct Execution

For next time: Read Chapter 6 in OSTEP. Finish reading LPG (Chapter 1). Project 5S is now posted.

  • Project 4S
  • Read OSTEP Chapter 5
4 Feb 24th (Tuesday)

CPU Scheduling

For next time: Start reading Chapter 7 in OSTEP. Finish Project 5S.

  • Read LPG Chapter 1
  • Read OSTEP Chapter 6
Feb 26th (Thursday)

Multi-Level Feedback Queue

For next time: Start reading Chapter 8 in OSTEP. Project 5C is now assigned. Project 5C 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 5S
  • Read OSTEP Chapter 7
5 Mar 3rd (Tuesday)

Address Spaces / Memory API

For next time: Exam 1 is on March 12th. Read Chapters 13 and 14.

  • Read OSTEP Chapter 8
Mar 5th (Thursday)

Review for Exam 1

For next time: Continue working on Project 5C. Review for the upcoming exam.

  • Read OSTEP Chapters 13 and 14
6 Mar 10th (Tuesday)

Address Translation

For next time: Project 5C by tonight. Project 7S is now posted. Read Chapter 15 regarding address translation. Exam 1 is on Thursday.

  • Project 5C
Mar 12th (Thursday) Exam 1
7 Mar 17th (Tuesday)

Segmentation

For next time: Finish Project 7S. Start working on Project 15S. Read Chapter 16.

  • Read OSTEP Chapter 15
Mar 19th (Thursday)

Free Space Management

For next time: Read Chapter 17. Finish Project 7S by tomorrow night.

  • Project 7S (due Friday night)
  • Read OSTEP Chapter 16
8 Mar 24th (Tuesday) SPRING HOLIDAY - NO CLASS
Mar 26th (Thursday) SPRING HOLIDAY - NO CLASS
9 Mar 31st (Tuesday)

Paging

For next time: Read Chapter 18. Project 15S is due tomorrow night. Project 17S is now posted.

  • Project 15S (due April 1st)
  • Read OSTEP Chapter 17
Apr 2nd (Thursday)

Swapping

For next time: Read Chapter 19. Project 17S is due next time. We will review for Exam 2 next time.

  • Read OSTEP Chapter 18
10 Apr 7th (Tuesday)

Review for Exam 2 / Concurrency and Threads

For next time:

  • Project 17S
Apr 9th (Thursday)

Locks

For next time:

  • Read OSTEP Chapters 21 and 22
11 Apr 14th (Tuesday) Exam 2
Apr 16th (Thursday)

Locked Data Structures

For next time: We will continue examining concurrency by looking at condition variables.

  • Read OSTEP Chapters 26, 27, and 28
12 Apr 21st (Tuesday)

Condition Variables

For next time: We will continue examining concurrency by looking at semaphores.

  • Read OSTEP Chapter 29
Apr 23rd (Thursday) Semaphores
  • Project 26S
13 Apr 28th (Tuesday) Persistence
Apr 30th (Thursday)
  • Project 28S
14 May 5th (Tuesday)
May 7th (Thursday)
15 May 13th (Wednesday) Final Exam (3:00PM - 5:30PM)