==== Operating Systems Spring, 2022 Schedule ==== Approximate schedule, subject to change. The homework assignments, for example, will be added weekly. The assigned readings are direct links to the pdf versions of the chapters. They should, ideally, be read before the corresponding class. You are responsible for keeping up with the reading and for all material covered in class. The "Date" contains a hyperlink to an overview of that week's course materials; a rundown of the topics, lecture notes (if any) lab, homework and supplemental "reading" information. ^ Date ^ Topic ^ Readings ^ Assignment ^ Supplemental Material ^ | 1/20 | Course Overview/Introduction | [[http://pages.cs.wisc.edu/~remzi/OSTEP/preface.pdf|Preface]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-threeeasy.pdf|Dialogue]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf|Introduction]] {{ :courses:cs334-202251:01_introduction.pptx |Lecture Notes}} | read the supplemental material & come prepared with a question from it | [[https://www.youtube.com/watch?v=wJyiHsfJLEI|The MainFrame Kid]] [[https://www.youtube.com/watch?v=ximv-PwAKnc|What's a mainframe? A computer that can run the z/TPF OS]] [[https://www.youtube.com/watch?v=b-3XtRR0UxA|What is z/TPF?]] [[https://www.youtube.com/watch?v=cVikZ8Oe_XA|Amadeus]] [[https://www.thecompanydime.com/mainframe/|Amadeus and z/TPF]] [[https://www.ibm.com/products/z-transaction-processing-facility|z/TPF Website]] | | 1/25 | Processes | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-virtualization.pdf|Chapter 3 dialogue]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf|Processes]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf|Limited Direct Execution]] {{ :courses:cs334-202251:02_processes.pptx |lec-02Processes}} | Build & run {{ :courses:cs334-202251:pgms-1.zip |cpu.c & mem.c as presented in class.}} Use makefiles if you can, to build executable pgms [[https://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/|link to a good make tutorial]] |[[https://www.quantamagazine.org/the-math-behind-a-faster-multiplication-algorithm-20190923/|Multiplication efficiency]] [[https://www.vmware.com|vmware]] [[https://careers.vmware.com|vmware careers]] [[https://www.tecmint.com/interview-questions-on-shell-scripting/|Shell script - interview questions (see number 6)]] [[https://www.amadeus.com/en/about|A better(?) link to Amadeus]] [[https://developer.ibm.com/technologies/linux/|Linux knowledge via IBM]] [[https://www.bloomberg.com/view/articles/2018-04-17/the-irs-computer-system-is-the-oldest-in-the-government|what OS does the IRS use to process tax returns?]] | | 1/27 | Scheduling | [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf|Introduction]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf|Multi-Level Feedback Queue]] | | [[https://www.youtube.com/watch?v=07hqULmszC8&t=274s|Star Blowing Up (captured by Hubble)]] [[https://arstechnica.com/information-technology/2022/01/a-bug-lurking-for-12-years-gives-attackers-root-on-every-major-linux-distro/|The linux vulnerability article I shared in-class]] | | 2/1 | More On Scheduling | | TBD| [[https://www.youtube.com/watch?v=YZKefHuiiOo|Well worth your time: connect John Mulaney & missile defense systems!]] {{ :courses:cs334-202251:zoom_0.mp4 |Today's office hours/lab recorded via zoom}} | | 2/3 | Virtual Addressing Scheduling and Signals | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-vm.pdf|Chapter 12 Dialogue]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf|Address Spaces]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf|Address Translation]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf|Segmentation]] | | | | 2/08 | UP-TO-DATE: Scheduling & Signals wrap up and Virtual Addressing | [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf|Introduction]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf|Multi-Level Feedback Queue]] {{ :courses:cs334-202251:03_scheduling_intro.pptx |CPU Scheduling}} {{ :courses:cs334-202251:04_linux_cfs.pptx |CompletelyFairScheduling in Linux}} | | [[http://pubs.opengroup.org/onlinepubs/9699919799/functions/wait.html|opengroup's wait() documentation]] | | 2/10 | Memory (& Free Space) Management | | | [[https://en.cppreference.com/w/cpp/thread/thread/hardware_concurrency|The C++ hardware_concurrency() api]] | | 2/15 | On to Virtual addressing, Signals | {{ :courses:cs334-202251:06a_signals.pptx |brief on signal handling}} [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-vm.pdf|Chapter 12 Dialogue]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf|Address Spaces]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf|Address Translation]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf|Segmentation]] {{ :courses:cs334-202251:06_memory_management.pptx |Memory Management Slides}} | Read the following [[https://www.ibm.com/docs/en/sdk-java-technology/8?topic=compiler-how-jit-optimizes-code|JIT!]] {{ :courses:cs334-202251:stats.zip |Try this java program, it uses net beans & demonstrates "hardware_concurrency"as above.}} | | | 2/17 | Paging and Translation Lookaside Buffers | [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf|Paging]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf|aka TLB]] {{ :courses:cs334-202251:07_paging_introduction.pptx |Paging... when memory management is complete}} | {{ :courses:cs334-202251:ibmzosvirtualmemory.ppt |How does an IBM OS virtualize memory?}} | | | 2/22 | Swapping | [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf|Beyond Physical Memory - Mechanisms]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf|Beyond Physical Memory - Policy]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-dialogue.pdf|Chapter 24 Dialogue]] | | | | 2/24 | Midterm Exam I (expected) | | | | | 3/1 | Swapping, continued | [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf|Beyond Physical Memory - Mechanisms]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf|Beyond Physical Memory - Policy]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/vm-dialogue.pdf|Chapter 24 Dialogue]] | We will complete memory management and turn to paging. The slides are listed above...| | | 3/3 | Threads Introduction | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-concurrency.pdf|Concurrency]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf|Concurrency and Threads]] | | | | 3/04 | Spring Break through 3/20 | | | | | 3/22 | Threads Introduction | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-concurrency.pdf|Concurrency]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf|Concurrency and Threads]] | | {{ :courses:cs334-202251:11_concurrency_introduction.pptx | intro}} {{ :courses:cs334-202251:th1.c.txt |code example from textbook - rename to th1.c and remove dot txt}} [[https://ibmzday.bemyapp.com/se|IBM Z Day?]] | | 3/24 | Threads Concurrency | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-concurrency.pdf|Concurrency]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf|Concurrency and Threads]] | [[https://moodle.vassar.edu/mod/assign/view.php?id=805490|moodle link to homework]] {{ :courses:cs334-202251:memallocation.c.txt |The memallocation.c file from moodle}} | {{ :courses:cs334-202251:12_locks.pptx |Coordinating Threads via locking}} | | 3/29 | Threads Concurrency Continued| [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-concurrency.pdf|Concurrency]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf|Concurrency and Threads]] | | | | 3/31 | More On Threads | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-concurrency.pdf|Concurrency]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf|Concurrency and Threads]] | | | 4/5 | (Mutex) Locks | [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf|Mutex Locks]] | {{ :courses:cs334-202251:compareandswap.txt |Compare And Swap example}} | [[https://www.youtube.com/watch?v=ZDtaanCENbc|Cool Video on Z16 Processor!]] | | 4/7 | Pthreads and Locked Data Structures | {{ :courses:cs334-202251:th2.c.txt |Example measurement code }} |Note - exam moved to April 12! [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks-usage.pdf|Using Locks]] [[http://http://pages.cs.wisc.edu/~remzi/OSTEP/threads-api.pdf|Pthread API]] {{ :courses:cs334-202251:12_locks.pptx |Lecture Notes}} {{ :courses:cs334-202251:13_condition_variables.pptx |Condition Variables Lecture Notes}} | | | 4/12 | Midterm Exam II | | | | | 4/14 | Condition Variables | [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-cv.pdf|Condition Variable]] | | | | 4/19 | Semaphores | [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf|Semaphores]] |{{:courses:cs334-202251:wow-somanythreads.png?linkonly|Let's make 10 observations}} {{ :courses:cs334-202251:15_semaphores.pptx |Today's Lecture Notes}} | | | 4/21 | Deadlock Conditions/External Locking | [[http://pages.cs.wisc.edu/~remzi/OSTEP/threads-bugs.pdf|Common Concurrency Bugs]] | let's finish semaphore's lecture notes then cover deadlock conditions/concurrency bugs | {{ :courses:cs334-202251:16_common_concurrency_problems.pptx |concurrency bugs}} [[https://yarchive.net/comp/linux/everything_is_file.html|Found it! Fast User muTEX locks discussion; Worth your time.]] | | 4/26 | I/O and devices | [[http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-persistence.pdf|Persistence]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf|External Devices]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf|"Hard" Disks]] {{ :courses:cs334-202251:dirty_reads_blurb.txt |We covered diry reads today!}} | {{ :courses:cs334-202251:17_io_and_disks.pptx | Io - not the moon}} | Evaluations, please at go.vassar.edu/course/evals | | 4/28 | RAID, Files and Directories | [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-raid.pdf|The I stands for Inexpensive]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf|File System Details]] |{{ :courses:cs334-202251:19_files_and_directories.pptx | Files/dirs lecture notes}} | [[https://www.bhphotovideo.com/explora/video/buying-guide/raid-arrays-photography-and-pro-video|Photographers and Videographers NEED this]] | | 5/3 | File Systems, Wrapup and Review | [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf|FFS]] [[http://pages.cs.wisc.edu/~remzi/OSTEP/file-integrity.pdf|DIP]] | | | | 5/14-17 | Final Exam | -- | ? | some details announced: Wed 5/11 09:00am-11:00am m( |