The final exam covers all materials in this course. Please also see the reading list for the two midterms. This file only contains materials after the second midterm. All lecture notes for Lectures 18, 19, 20, 21, 22, 23, 24 (Protection and Security, thread synchronization, deadlock) Textbook: Chapters 4, 6, 7, 12.7, 14. Programming Project No. 3 --------------------------------------------------------------------- Lecture 18: Transactions and Reliability - Why transactions? - UNIX File system solution - Journaling and transaction approach (how it works) - transaction implementation o single thread o multi-thread - LFS - Reliability with RAID - RAID - RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 Lecture 19: Protection and Security - define security and protection - Security goal: Data confidentiality, data integrity, system availability - authetication and authroization - authentication mechanisms: o passwords/encryption, o Kerberos protocol, o public key encryption - Authorization mechanisms: o access matrix o access control list o capability list Lecture 20: Thread and Thread synchronization - Define thread, why thread? - race conditions - synchronization - mutual exclusion - critical section Lecture 21: Lock implementation - public interface: data field and functions - with interrupt disable - with test_and_set instruction - locks using interrupt disables without busy waiting - locks using test_and_set with minimum wait Lecture 22: Semaphores - public interface including the semantics of the functions. - using semaphores to do mutual exclusion - using semaphores to do synchronization - using semaphores to solve the produce-consumer problem - implementing semaphores Lecture 23: Deadlock - definition (technical) - Mechanisms to deal with deadlock o deadlock prevention o deadlock avoidance o deadlock detection and recovery - Four necessary conditions for deadlock - Banker's algorithm - resource allocation graph Lecture 24: Monitor - define monitor - condition variable public interface - reader/writer solution with monitor - difference between condition variable and semaphore ---------------------------------------------------------------------- concepts and techniques: define the concepts (What), explain how each technique works (How), apply techniques to new situations ------------------------------------------------------------------------- Question types: 1. True/False 2. definition and short explanation 3. questions with longer answers testing your understanding of various concepts and/or techniques. 4. 10 points programming question on Project No. 3.