CS 162: Operating Systems and Systems Programming

CS 162: Operating Systems and Systems Programming (Spring 2014, UC Berkeley). Instructor: Professor Anthony D. Joseph. The purpose of this course is to teach the design of operating systems and other systems. Topics we will cover include concepts of operating systems, networking, database systems and systems programming, including multiple-program systems (processes, interprocess communication, and synchronization), memory allocation (segmentation, paging), resource allocation and scheduling, file systems, basic networking (packet switching, file control, reliability), basic databases (transaction, SQL) security, and privacy.

Lecture 20 - Why Systems Fail and What We Can Do About It

Go to the Course Home or watch other lectures:

Lecture 01 - Overview
Lecture 02 - Concurrency: Processes, Threads, and Address Spaces
Lecture 03 - Concurrency and Thread Dispatching
Lecture 04 - Synchronization, Atomic Operations, Locks
Lecture 05 - Semaphores, Condition Variables
Lecture 06 - Readers/Writers Problem, Working in Teams
Lecture 07
Lecture 08 - Thread Scheduling
Lecture 09 - Address Translation
Lecture 10 - Caches and TLBs
Lecture 11 - Page Allocation and Replacement
Lecture 12 - Dual Mode Operation: Kernel vs User Mode, I/O Systems
Lecture 13 - Disks and SSDs, File Systems (Part 1)
Lecture 14 - File Systems (Part 2)
Lecture 15 - Key-Value Storage, Network Protocols
Lecture 16 - Layering
Lecture 17 - TCP, Flow Control, Reliability
Lecture 18 - Transactions
Lecture 19 - Transactions, Two Phase Locking (2PL), Two Phase Commit (2PC)
Lecture 20 - Why Systems Fail and What We Can Do About It
Lecture 21 - Security (I)
Lecture 22 - Security (II)
Lecture 23 - Remote Procedure Call
Lecture 24 - Capstone: Cloud Computing