University of Cincinnati Logo

EECE-4029 Operating Systems
Electrical Engineering and Computer Science

Lecture Notes Day(s)
    NSA CAE Knowledge Units     Aug 22
    Install linux OS     Aug 22
    Configure and compile the kernel (3 brownies)    
    Unix commands     Aug 24
    OS concepts     Aug 24,26
    Linux system call table     Aug 26
    Add a system call to Linux     Aug 26
    Anatomy of a syscall, part 1     Aug 26
    Anatomy of a syscall, part 2     Aug 26
    Overwriting stack contents     Aug 26,29
    C primer     Aug 29
    Kernel modules     Aug 29
    Work queue - linux kernel docs     Aug 31,Sep 2
    Work queue & tasklets - IBM tutorial     Aug 31,Sep 2
    Threads     Sep 7,9
    pthreads     Sep 7,9
    pthread bugs     Sep 9
    Thread game     Sep 9
    kthreads     reference
    Semaphores (see also "Other locks")     Sep 12
    CPU states     Sep 14
    Some ACPI tables     Sep 14
    A module for interfacing with ACPI     Makefile     Sep 14
    MSR spec     rdmsr.c     wrmsr.c     Sep 14
    producer-consumer     Sep 16
    Other locks     Sep 26
    Scheduling algorithms Sep 26
    Completely Fair Scheduler Sep 28
    Process scheduling        Sep 28
    Process scheduling examples        Sep 28
    Starvation     Sep 28
    C-primer (download from the links)     Sep 30
    Memory barriers     Sep 30
    Memory barrier examples     Sep 30
    Memory hierarchy (from slideworld)     Sep 30
    Microprogramming     Sep 30
    Process intro     covered
Device drivers    
    Introduction     Oct 3
    Simple examples     Oct 3
    Advanced character device drivers     Oct 3,5
    Block device drivers     Oct 5
    Kernel examples     Oct 5,7
    Simple Character Utility for Loading Localities     deferred
    Novell     reference
Potential problems    
    Deadlock prevention, avoidance, detection, recovery     Oct 17
    Critical regions     Oct 17
    Livelock     Oct 19
    Resource contention     Oct 19
    Banker's algorithm     Oct 21
    Two phase locking and Serialization     Oct 21
    Memory Management     Oct 24
    The PLT and GOT     Oct 26
    TLB example     Oct 28
    Memory organization     Oct 31
    Linux slab allocation (Ch 8, Gorman)     Oct 31
    A slab allocator     Oct 31
    Allocation from slabs in kernel     Oct 31
    Memory management (Ch 8, Silberschatz)    
    Inverted page tables     Nov 2
    20 questions     Nov 2
    Huge pages 1     Nov 2
    Huge pages 2     Nov 2
    Slabs     Nov 4
    Slubs     Nov 4
Virtual Memory    
    Architecture     Nov 7
    Paging     Nov 7
    Paging (Ch 9, Silberschatz)     Nov 9
    Page replacement     Nov 9
    Frame allocation     Nov 9
    Multi-programming     Nov 9
File Systems    
    Organization     Nov 14
    FUSE     Nov 16
    Directory structure - silbershatz     Nov 18
    Directory structure - my slides     Nov 18
    Blocks and inodes - slides     Nov 18
    Hard and soft links    
    Performance, recovery, network FS - description     Nov 21
    above, via slides     Nov 21
    Mass storage     Nov 23
    Media, performance criteria, disk scheduling algorithms     Nov 23
    Error detection and correction     Nov 25
    System utilities     reference
    Early MacIntosh file system     reference
    Linux file structure     reference
    Disk schedulers for Linux     reference
    Solid State disk scheduling     reference
    I/O channels     Nov 28
    Direct Memory Access     Nov 28
    Bounce buffers     Nov 28
    Example PCI bus     Nov 28
    Example using USB Request Blocks (URB)     Nov 28
    Example using a scatterlist     Nov 28
    Device controllers    
    in OSes     Nov 30
    side-channel attacks     Nov 30
Paul Erdos
Ladies on Campus
Oscar Robinson