Professor Remzi Arpaci-Dusseau (7357 CS)
Download slides here
09/06 Intro 2 | 09/08 Processes 4 5 6 |
09/13 Scheduling 7 8 | 09/15 Mem Mgmt 12 |
09/20 Paging 17 | 09/22 Paging: TLBs 18 |
09/27 Paging: Smaller 19 | 09/29 Beyond Physical 20 21 |
10/04 Threads 25 | 10/06 Locks(II) |
10/11 Locks 27 | 10/13 CVs 29 |
10/18 Semaphores 30 | 10/20 Deadlock 31 |
10/25 I/O/Disks 35 36 | 10/27 RAID 37 |
11/01 File Systems 38 | 11/03 FS Impl 39 |
11/08 FFS 40 | 11/10 Journaling 41 |
11/15 LFS 42 | 11/17 SSDs |
11/29 DistSys | 12/01 NFS 48 |
12/06 AFS 49 | 12/08 Google |
12/13 Virtual Machines A1 | 12/15 Security |
Instructor: Jonathan Walpole
Description:
This course will introduce the core concepts of operating systems, such as processes and threads, scheduling, synchronization, memory management, file systems, input and output device management and security. The course will consist of assigned reading, weekly lectures, a midterm and final exam, and a sequence of programming assignments. The goal of the readings and lectures is to introduce the core concepts. The goal of the programming assignments is to give students some exposure to operating system code. Students are expected to read the assigned materials prior to each class, and to participate in in-class discussions.
Download Slides here:
Course Overview and Introduction to Operating Systems Course outline. Overview of course project and expectations. Introduction to hardware support for operating systems: privileged mode execution, saving and restoring CPU state, traps and interrupts, timers, memory protection. Operating system techniques for protecting user and hardware resources. Overview of the key operating system abstractions and the use of system calls to manipulate them.Slides: [ .ppt .pdf ] Reading: Chapters 1 and 2 Start Project 1 - Introduction to BLITZ |
The Process Concept Complete the overview of the key operating system abstractions and the use of system calls to manipulate them. Program execution, the process concept, process-related state, the process table, saving and restoring process state, the role of the scheduler.Slides: [ .ppt .pdf ] Reading: Chapter 3 |
Threads and Concurrency Threads, process context switch vs thread switch, true concurrency vs pseudo concurrency, operating systems as concurrent programs, concurrency through multi-threading, concurrency through interrupt handling, concurrent access to shared memory, race conditions, mutual exclusion, synchronization primitives based on atomic instructions.Slides: [ .ppt .pdf ] Reading: Chapter 4 Project 1 due at start of class. Start Project 2: Threads & Synchronization |
Synchronization Primitives Atomic instructions, locks, spinlocks, mutex semaphores, counting semaphores, and their use in solutions to Producer Consumer synchronization.Slides: [ .ppt .pdf ] Reading: Chapter 6 |
Classic Synchronization Problems Classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber.Slides: [ .ppt .pdf ] Reading: Chapter 6 |
Monitors and Message Passing Monitors, condition variables, message passing, and their use in solutions to classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber.Slides: [ .ppt .pdf ] Reading: Chapter 6 |
Deadlock Deadlock, livelock, deadlock detection, avoidance, and prevention.Slides: [ .ppt .pdf ] Reading: Chapter 7 Project 2 due at start of class. Start Project 3: Synchronization Problems |
Scheduling Separation of policy from mechanism, scheduling mechanisms, preemptive vs non-preemptive scheduling, example scheduling policies, FIFO, round-robin, shortest job first, priority scheduling, Unix-style feedback scheduling, proportional share scheduling, lottery scheduling.Slides: [ .ppt .pdf ] Reading: Chapter 5 |
Memory Management Memory addresses and binding, static and dynamic addresses translation, address translation using base and limit registers, memory management algorithms using linked lists and bitmaps, external and internal fragmentation, paged virtual memory.Slides: [ .ppt .pdf ] Reading: Chapter 8 |
Midterm Exam In class, closed-book exam based on material covered so far. |
Virtual Memory 1 Physical address spaces, virtual address spaces, page table design, single-level and multi-level page tables, hardware support for dynamic address translation using a TLB, hardware and software managed TLB refill.Slides: [ .ppt .pdf ] Reading: Chapter 9 |
Virtual Memory 2 Inverted page tables, the memory hierarchy, TLB miss faults, segmentation faults, protection faults, page faults, hardware support for memory protection, segmentation.Slides: [ .ppt .pdf ] Reading: Chapter 9 Project 3 due at start of class. Start Project 4: Kernel Resource Managers |
Virtual Memory 3 Implementation issues, page sharing, copy-on-write, page fault handling, segmentation, segmentation with paging.Slides: [ .ppt .pdf ] Reading: Chapter 9 |
Paging Algorithms Demand paging, swapping, placement and replacement algorithms, memory hierarchy revisited, overview of cache architecture, performance modeling for memory management systems.Slides: [ .ppt .pdf ] Reading: Chapter 9 |
Input/Output Devices, memory mapped devices, DMA, device drivers, interrupt handling, scheduled vs non-scheduled I/O processing, block vs character devices.Slides: [ .ppt .pdf ] Reading: Chapter 13 |
Secondary Storage Management Disks, sectors, tracks, blocks, disk head scheduling algorithms, the file abstraction, directories, links.Slides: [ .ppt .pdf ] Reading: Chapter 12 Project 4 due at start of class. Start Project 5: User Level Processes |
File Systems 1 File system architecture, file system data structures and system calls.Slides: [ .ppt .pdf ] Reading: Chapter 10 |
File Systems 2 File system architecture and design criteria.Slides: [ .ppt .pdf ] Reading: Chapter 11 |
Security Protection domains and mechanisms, access control lists, capabilities, user authentication, encryption, common internal and external attacks.Slides: [ .ppt .pdf ] Reading: Chapters 14 and 15 Project 5 due at start of class. |
No comments:
Post a Comment