CS 471 Planned Schedule, Spring 2022

1 Programming Assignments (Projects) and Homeworks

Programming Assignments:

  • All programming assignments will be posted and announced as early as we have them prepared, generally with at least two weeks to complete.
  • These dates are subject to change as needed during the semester.
    • Programming Assignment 1: Jan 28 - Feb 11 (due by 11:59pm)
    • Programming Assignment 2 (Part 1): Feb 22 - Mar 11 (due by 11:59pm)
    • Programming Assignment 2 (Part 2): Feb 22 - Mar 28 (due by 11:59pm)
    • Programming Assignment 3: Apr 1 - May 6 (due by 11:59pm)
Homeworks:
  • There will be approximately seven homeworks, which will be assigned through Blackboard, but will be done on Gradescope.
    • You may work with up to one partner from your lecture section.
      • (This does not have to be the same as your Project partner)
  • You will have about a week to work on each homework assignment.
    • In general, all homeworks will be due at 11:59pm on Saturday Nights.
    • Each Homework will only take an hour or two to do, but I'm giving 6 days for your own scheduling and planning.
  • The planned Homework Dates are in the Calendar Below

2 Exam Schedule

Tests are bigger milestones, and their dates are announced ahead of time.
Only severe scheduling anomalies would force a delay in test dates.

  • Midterms (Section 001 / Section 004):
    1. March 9th (Wednesday) / March 10th (Thursday)
      • OS Structures, Processes/Threads, Synchronization
    2. April 20th (Wednesday) / April 21st (Thursday)
      • Scheduling and Memory Management
    • More information will be provided as the date closes in.
    • The exams will be done In-Person during our normal Lectures.

  • Final Exam: See Exam Schedule for the Date and Times.

3 Topics and Readings

Below is a tentative schedule, which is subject to change as needed.

  • This is the Planned Schedule of Topics. 
    • Individual lectures may vary, but this this the plan.
    • Each week indicates the plan for each of the two lectures for that week.
  • Dates may change as needed based on the pace of each class.
  • Note: March 14 - March 18th is a Holiday (Spring Break)

Note: The Video Topics are NOT lecture recordings.  (This is a fully in-person class)

  • They're supplemental topic-based videos that cover the same material as the slides.
  • In Class, we'll be focusing on guided discussions, live programming, and working with the algorithms and concepts.
    • We'll talk about these during the first lecture.
Week
Topic
Lecture Topics
Planned Video Topics
Homework
Week 1
(Jan 24 - 28)
Intro to OS
OS Structures
Course Introduction
History and Overview of OS
L0: Videos 1-5
L1: Videos 1-3
None
Week 2
(Jan 31 - Feb 4)

Processes
OS Interrupts, Syscalls, and Design
Processes, States, and Creation
L1: Videos 3-5
L2: Videos 1-3
HW1
(Jan 31 - Feb 5)
Week 3
(Feb 7 - 11)


Process Graphs, Unix I/O, and IPC
Signals and Signal Handling
L2: Videos 4-6
L2: Videos 7-10
None
Week 4
(Feb 14 - 18)

Synchronization
Threads and Threading Models
Race Conditions, Critical Section, Hardware
L2: Videos 11-14
L3: Videos 1-3
HW2
(Feb 14 - 19)
Week 5
(Feb 21 - 25)


Mutex Locks and Semaphores
Classical Problems and and Monitors
L3: Videos 4-5
L3: Videos 6-9
None
Week 6
(Feb 28 - Mar 4)

Scheduling
Problem Solving with Monitors, Multi-Core
Scheduling Metrics and Non-Preemptive Algorithms
L3: Videos 10-13
L4: Videos 1-3
HW3
(Feb 28 - Mar 5)
Week 7
(Mar 7 - 11)

------------>
Non-Preemptive and Preemptive Algorithms, MLFQ,
Midterm 1 (Beginning - Synchronization)
L4: Videos 3-5

None
Week 8
(Mar 14 - 18)

Spring Break
No Classes

None
Week 9
(Mar 21 - 25)


Thread Scheduling and Real-Time Scheduling
Utilization, EDF, and Multi-Core
L4: Videos 6-8
L4: Videos 8-11
None
Week 10
(Mar 28 - Apr 1)
Memory

Overview, Contiguous, and Fragmentation
Segmentation and Paging
L5: Videos 1-3
L5: Videos 4-5
HW4
(Mar 28 - Apr 2)
Week 11
(Apr 4 - 8)


Paging, Page Tables, TLBs, and Address Derivation
Page Table Schemes and Paged Segmentation
L5: Videos 6-7
L5: Videos 7-8
None
Week 12
(Apr 11 - 15)
Virtual Memory

Page Faults and Effective Access Times
Page Replacement Algorithms
L6: Videos 1-3
L6: Videos 4-6
HW5
(Apr 11 - 16)
Week 13
(Apr 18 - 22)

------------>
Thrashing and Working Sets
Midterm 2 (Scheduling and Memory)
L6: Videos 7-8

None
Week 14
(Apr 25 - 29)
File Systems

Overview, Protection, and Layers
Data Storage Models, RAID, SSDs
L7: Videos 1-4
L7: Videos 5-8
HW6
(Apr 25 - 30)
Week 15
(May 2 - 6)
OS Security

Overview of OS Security, Binary Exploitation
Malware, Covert Comms, Cryptography
L8: Videos 1-4
L8: Videos 5-8
HW7
(May 2 - 7)