CSE 430: Operating Systems
Computer Science and Eng.         Fulton School of Eng.


Home Description Text Book Lecture Notes Course Instances Announcements Projects Assignments Resource Links Contact


What happens in Class?

The course is heavy on lectures, discussions and classroom coverage of topics. Each time the class is taught, the structure content and sequence may change slightly. The following is a class by class topic list that is illustrative of the content of the course.

Class Detail

Class 1:
bullet"What is an Operating System"
bulletOperating Systems and Interrupt Handlers
bulletHardware Interrupts
bulletSoftware Interrupts and System calls
bulletHistory of Operating Systems -- resident monitors
bulletMultiprogramming, Spooling, Timesharing

Class 2:

bulletOperating Systems and Interrupts
bulletPolled and Interrupt driven I/O
bulletKernel -- OS structures
bulletSystem Calls
bulletMemory Protection
bulletPrivileged Instructions
bulletMode switching via Interrupts

Class 3:

bulletOperating Systems - big picture
bulletTypes of Operating Systems (mainframe, timesharing, distributed, etc.)

Class 4:

bulletKernel structure, monolithic, micro, layered
bulletApplications to device drivers and systems programs
bullet Mechanisms and policies
bulletStarting processes, running programs, loading programs
bulletPrograms and Processes
bulletProcess states and scheduling queues

Class 5:

bulletProcesses and Threads and Scheduling
bulletContext Switching - the mechanism
bulletProcess Management, relationships (also Threads)
bulletInterprocess Communications
bulletMessage Passing, RPC and RMI

Class 6:

bulletScheduling of Processes - Scheduling points/events
bulletPreemptive and non-preemptive
bulletFCFS, SJF and Priority
bulletRound Robin and "quanta"
bulletMultilevel schedulers

Class 7:

bulletMulti-level feed back queues
bulletMultiprocessor scheduling
bulletReal time scheduling
bulletEvaluation of schedulers -- deterministic, queuing, simulations
bulletReal life schedulers (unix...windows/linux)

Class 8:

bulletThreads and Processes
bulletMemory layout of threads
bulletUser and Kernel level threads -- and properties
bulletThreading in Unix, Linux, Windows and Solaris
bulletStarting/Stopping threads
bulletJava Threads

Class 9:

bulletThreads and memory sharing
bulletThe Railroad Problem
bulletCritical Sections
bulletConditions: Mutual Exclusion, Bounded Waiting, Progress
bulletAttempted solutions to the Critical section problem

Class 10:

bulletPeterson's solution to the 2-process critical section problem
bulletLamport's Bakery Algorithm

Class 11:

bulletHardware solutions -- interrupt disable, spin locks

Class 12:

bulletProcesses, critical sections and synchronization using semaphores
bulletProducer - consumer problem
Class 13:
bulletBounded Buffer
bulletReaders and Writers, (book solution)
bulletStarvation prevention
bulletReader writer code in HTML format

Class 14:

bulletReaders and Writers with no starvation

Class 15:

bulletReaders and Writers continued (subtle problems)
bulletDining Philosophers
bulletDeadlocks and Starvation
bulletDP Solutions
bulletImplementing Semaphores

Class 16:

bulletConditional Critical Regions
bulletSolutions to Bounded Buffer, Readers and Writers, and Dining Philosophers using CCR [CCR Programs]

Class 17:

bulletCCR and Semaphore equivalence
bulletIntroduction to monitors
bulletBounded Buffer using Monitors

Class 18:

bulletMonitors and Bounded Buffer, Readers and Writers, and Dining Philosophers [Monitor Programs]
bulletMonitor-Semaphore equivalence [program]

Class 19:

bulletMemory management - basics
bulletcompiling, linking, loading
bulletrelocation -- static and dynamic
bulletphysical and logical address spaces

Class 20:

bulletAddress translation
bulletLoading - linking - static - dynamic
bulletMFT-MVT - contiguous allocation schemes
bulletFragmentation, compaction

Class 21:

bulletIntroduction to paging
bulletPaging (protection, sharing, TLB, memory allocation)
bulletPaging and Segmentation

Class 22:

bulletPaging and Segmentation combined (Paged Segmentation)

Class 23: Apr 18

bulletThe VAX memory management (P0, P1 and SYS)
bulletVirtual Memory, Demand Paging
bulletPage replacement algorithms

Class 24: Apr 20

bulletDeadlocks -- system model -- necessary conditions
bulletResource Allocation Graph, Waits for graph
bulletDeadlock Prevention
bulletDeadlock Avoidance -- bankers Algorithm

Class 25: Apr 25

bulletDeadlock Avoidance
bulletDeadlock Detection
bulletDeadlock Recovery
bulletDevice Management
bulletDevice Driver Structure

Class 26: Apr 27

bulletDevice Management - disk scheduling
bulletFile Systems, properties, structure
bulletThe Unix File System
bulletFiles, directories and links
bulletBuffering in file systems

Class 27: