CSC 343 - Operating Systems, Spring 2021, TuTh 12-1:20 or 1:30-2:50.
Classes are all via Zoom at class time. Zoom student docs are here.
To watch a recording you *may* first need to go here https://kutztown.zoom.us/ and Sign In using KU login.


12:00 class    FINAL EXAM TIME
Tuesday, May 4, 8 a.m. – 10 a.m. I will go over last Assignment, no exam.
01:30 class    FINAL EXAM TIME
Thursday, May 6, 11 a.m. – 1 p.m. I will go over last Assignment, no exam.
My office hours will not change during finals, same as usual.

Dr. Dale E. Parson
, http://faculty.kutztown.edu/parson
Class-time Zoom link for CSC343 OR See D2L Course CSC343 -> Content -> Overview for the link.
IF you don’t want to be recorded or are a minor, use PRIVATE ZOOM CHAT to me for questions.
Please fill out & email Dr. Parson this permission to record slip. I will use it to take attendance in week 1.
The course is 100% via Zoom at class time. I will record & post class videos, but want you there at class time. Thanks.
 
Dr. Dale E. Parson, parson@kutztown.edu, Office hours: https://kutztown.zoom.us/j/94322223872
Office Hours Monday 2-4, Wednesday 1-3, Thursday 10-11 or by appt.

First day handout (syllabus that is specific to this semester).

KU Campus Mask policy: Resident students must wear a mask anytime they are outside of their personal room and within a building or with anyone else but their roommate. Commuter students must wear a mask anytime they are on campus within a building or with anyone. The course is 100% via Zoom at class time. I will record & post class videos, but want you there at class time.

PA: The Secretary's Order requires individuals to wear a face covering, in both indoor public places and in the outdoors when they are not able to consistently maintain social distancing from individuals who are not members of their household, such as on a busy sidewalk, waiting in line to enter a place, or near others at any place people are congregating. Whether inside in a public place or outside, and when wearing a face covering or not, everyone should socially distance at least 6 feet apart from others who are not part of your household.

Handouts

Windows users can download the WinSCP file transfer client in the Computer Science sub-menu below here.

Here is initial documentation on the State Machine language (STM) that we will use for projects.
    STM.doc.txt documents the STM's library functions and events.
    (Edit 8/26/14: Added :/usr/bin to the PATH in the above document. Added export TERM="xterm".
     We will ssh mcgonagall to run our projects. Do not run them on acad!)
Here is a conference paper on the Fall 2013 use of STM in the course.
We will use one or more of these models under ~parson/OpSys/ on acad / mcgongall to introduce the state machines.
    Make sure to attend and watch the Zoom videos.
    [:-) ~/OpSys] ls -ld hi* demo* prisonerd2020*
    -rw-r--r--. 1 parson domain users 17983 Aug 23 10:42 demo1fall2020.zip
    -rw-r--r--. 1 parson domain users 26781 Sep  1 23:24 hitakeslo2020.solution.zip
    -rw-r--r--. 1 parson domain users 26895 Aug 21 16:09 prisonerd2020.zip

UNIX "man -s3" library functions and "man -s2" system calls and the user mode / kernel mode diagram.


Textbook slides (KU password protected)

    Chapter 1 -- Introduction
    Chapter 2 -- Operating System Structures
    Chapter 3 -- Processes
    Chapter 4 -- Threads
    Chapter 5 -- Process Synchronization
       
A mutex without a condition variable versus a mutex with a condition variable.       
        ~parson/OpSys/PipesPrisoners2018.problem.zip and PipesPrisoners2018.solution.zip,
            Player*.java files show synchronization solutions using atomics, locks, and semaphores.
        Here are Java doc pages for java.util.concurrent, java.util.concurrent.atomic, and java.util.concurrent.locks.
    Chapter 6 -- CPU Scheduling
   
The handout on the STM sample(...) function will be useful in upcoming assignments.
    State machines for first-come first-served, shortest job first, and round robin CPU schedulers
    Chapter 7 -- Deadlocks
    Chapter 8 -- Main Memory
    Chapter 9 -- Virtual Memory
    Chapter 10 -- Mass Storage Systems
    Chapter 11 -- File System Interface
    Chapter 12 -- File System Implementation
    Chapter 13 -- I/O Systems
    Chapter 14 -- Protection
    Chapter 15 -- Security
    Chapter 16 -- Virtual Machines
    Chapter 17 -- Distributed Systems
    Chapter 18 -- The Linux System
    Chapter 19 -- Windows 7
    Appendix A -- Free BSD

ASSIGNMENTS

    Users of the vim editor: Nathan Rew has graciously coded vim config files for syntax highlighting of our STM source code.
        Please see ~parson/OpSys/STMSyntax/ for instructions in READMEstm.txt and the two config files. Thanks, Nathan!

Assignment 1 on learning the STM architecture via a game of hide & seek is due by the end of Friday February 19.

Assignment 2 on modeling many-to-one and many-to-many USER-to-KERNEL mode access is due by the end of Thursday March 18 via make turnitin.

Assignment 3 on modeling multilevel context scheduling algorithms & queues is due by end of Saturday April 10 via make turnitin.

Assignment 4 on variants of process swapping is due by end of Friday April 30 via make turnitin.

ZOOM Recordings
    January 19, Introduce course and start chapter 1 slides up to memory hierarchies.
    January 21, Finished Chapter 1 slides and surveyed 2 different multiprocessor architectures.
    January 26, Finished Chapter 2 slides and started looking at State Machine for hi-takes-lo from last semester.
    January 28, Completed going over STM for hi-takes-lo, code on acad at ~parson/OpSys/hitakeslo2020.solution.zip.
    February 2, Went over Assignment 1 handout and code requirements through STUDENT 4, will resume Thursday.
    February 4, Completed going over Assignment 1 + Python logical conditions using non-True-False values.
    February 9, Went over how to debug STMs using msg() calls, then Chapter 3 slides up to Message Passing.
        Here is an illustration of per-thread run-time stack frames. We do not have classes on February 11.
    February 16, Finish Chapter 3 & started Chapter 4 slides to Concurrency vs. Parallelism slide.
        Examined anonymous & named pipes and mpstat processor statistics on mcgonagall.
    February 18, Finish Chapter 4 & started Chapter 5 slides including Atomic variables up to start of Mutex.
    February 23, Went over solution to Assignment 1 including in-depth look at the uniform sample() function.
    February 25, Went over Atomic.stm, Mutex.stm, and Condvar.stm synchronization models from spring 2020.
    March 2, Went over Assignment 2 handout & Chapter 5 slides up to Deadlock.
    March 4, Finished Chapter 5 on synchronization, examined some Java code, documentation on STM sample() function.
    March 9, Chapter 6 on CPU scheduling up to shortest-remaining time first, including STM code fcfs.stm & sjf.stm.
        That STM code is available on acad at ~parson/OpSys/ContextSchedFall2020.solution.zip.
    March 11 I am taking a Personal Day. This link is for last semester's assn3 on CPU scheduling.
    March 16, CPU scheduling up to Multilevel Queues.
    March 18, First 13 minutes were common bugs to avoid in assn2, then completed Chapter 6 slides & acad etc. examples.
    March 23, Deadlocks Chapter 7 & started Main Memory Chapter 8 up to base-limit registers.
    March 25, Went over handout doc and code for new Assignment 3 on Multilevel Context Scheduling.
    March 30, Went over Chapter 7 slides base-limit and segment registers, memory allocation, fragmentation, up to paging.
    April 1, Finished Main Memory Chapter, up next Virtual Memory / Demand Paging Chapter 9.
    April 6, Chapter 9 up through frame allocation algorithms and some related STM models.
    April 8, Went over graph and code for FIFO page replacement in ~parson/OpSys/Paging2020.
    April 13, STM for LRU & LRU-dirty, slides up to Thrashing, outlined plans for Assignment 4.
    April 15, Went over handout spec & code for Assignment 4.
    April 22, Reviewed some slides relevant to Assignment 4, finished Chapter 9 & started Chapter 11 slides.
    April 27, Finished Chapter 11 on File System Interface including interactive commands & system calls in Linux.
    April 29, Some Assignment 4 tips during first 20 minutes, then File System Implementation Chapter 12.
    May 4, Went over my solution to Assignment 4 during first 30 minutes of the final exam time slot.