Lecture Concept Issue Approach Skill
1 what is OS
mechanism/policy separation
interface vs implementation
interface contracts
modularity and information hiding
abstraction (convenience, simplification)
indirection and deferred binding
OS types/history
why functionality implmented in OS
OS goals
layered and hierarchical structure
dynamic equilibrium
2 basic OS services
higher level OS services
layers of services
private, reusable, sharable
APIs and ABIs
service protocols
objects and operations
abstracted resources and operations
upwards compatability
static and dynamic libraries
structure of the Operating System
subroutines vs system calls
versioned interfaces
3 programs and processes
process state (elements of)
process resources
user-mode, supervisor-mode
traps (exception handling)
interrupts for asynchronous events
traps for system calls
limited direct execution
fork vs exec
syscalls vs procedure calls
process implementation
context save and restore
process operations
signals (exception handling)
4 metrics: completion time
metrics: throughput
metrics: response time
service level agreement
process state (model)
non-preemptive scheduling
time sharing
time slice
scheduling goals
starvation
convoy
cost of context switch
optimal time slice
CPU scheduling != performance
First In First Out
Shortest Job First
priority scheduling
real time
preemptive scheduling
round-robin
multi-level queue scheduling
dynamic equilibrium
mechanism/policy separation
5 physical vs virtual address space
text segment
data segment
stack segment
shared library segments
protected memory sharing
memory management goals
relocation problem
internal fragmentation
splitting and external fragmentation
pool rebalancing
common memory allocation errors
address space layout
base/limit relocation
segment addressing
stack vs heap allocation
variable size allocation
malloc vs sbrk
memory allocation life cycle
coalescing
free list design
first fit
best fit
worst fit
next fit
pool/slab allocation
garbage collection
malloc APIs
6 swap space
paged address space
replacement
Temporal Locality
Spatial Locality
Least Recently Used
working set
clean/dirty pages
thrashing
swapping
paging MMU
demand paging
page fault process
Belady's Optimal Algorigthm
LRU clock algorithm
working set clock algorithm
page stealing
copy on write
proactive page laundering
7 thread
thread state
IPC purpose
non-deterministic execution
race condition
indeterminate results
critical section
parallelism scenarios
thread motivations
IPC goals
thread stacks
user mode implementations
stream IPC
message IPC
shared memory IPC
mutual exclusion
atomic updates
synchronous requests
asynchronous completion
spinning
thread API
recognize critical sections
pthread_mutex operations
pthread_cond operations
8 locking and event completion
locking goals
correct mutual exclusion
when is spinning reasonable
who to wake up
sleep/wakeup races
types of locks
interrupt disables
spin locks
compare and swap
asynchronous events
waiting lists
protect critical section
9 Semaphores
bounded buffer problem
producer/consumer problem
the costs of contention
granularity
convoy
binary semaphores
bounded buffer problem w/semaphores
condition variables
producer/consumer w/condition variables
implementing semaphores and CVs
contention reduction
file level locking
advisory locking
10 Dining Philosophers problem
necessary conditions
livelock
deadlock
common synchronization errors
avoidance
reservations
prevention
detection and recovery
monitors
java synchronization
where to serialize
11 performance metrics
goals and challenges
performance principles
typical causes of performance problems
load generation
traces/logs
internal instrumentation
end-to-end measurement
load characterization
profiling
analysis techniques
presentation techniques
12 disk geometry
device classes
device class interfaces
device driver services
higher level frameworks
dynamically loadable modules
Device Driver Interface
Driver Kernel Interface
importance of disks
disk performance
random vs sequential I/O
transfer size
interface stability
polled I/O
DMA
completion interrupts
initiating I/O operations
chain scheduling
buffered I/O
scatter/gather
intelligent I/O devices
user-mode device drivers
read/write striping
write mirroring
parity/erasure coding
asynchronous parallel I/O
polling for asynchronous completions
asynchronous event notifications
auto-configuration
dynamic resource allocation
hot-plug
13 file semantics
file types and attributes
data base semantics
object semantics
key-value semantics
file namespace
file name conventions
copies vs links
symbolic vs hard links
read after write consistancy
goals of file representation
goals of free space representation
goals of namespace representation
BSD file system organization
FAT file system organization
indexed data extents (I-nodes)
linked data extents (FAT)
contiguous allocation
bit-map free lists (BSD)
BSD directory entries
FAT file descriptors
the mount operation
file access layers of abstratction
dynamically loadable file systems
user mode file systems
file APIs
14 immutability
disks and file system design
block size and internal fragmentation
causes of file system damage
read cache
write-through
general vs special purpose caches
how to beat LRU
delayed writes
write-back cache
detection and repair
journaling and recovery
meta-data-journaling
log structured file systems
checksums and scrubbing
garbage collection
defragmentation
15 confidentiality
integrity
controlled sharing
object, agent, principal
mediated access
revocability
trusted computing platorm
authentication
authorization
authorization matrix
access control lists
Linux file protection (ACLS)
capabilities
unforgeability
Linux file descriptors (capabilties)
principle of least privilege
Role Based Access Control
Trojan horses
challenges
cryptographic hashes
challenge/response authentication
Linux principals
Linux authentication
Linux setuid
at rest encryption
16 distributed system goals
RPC
RPC stub
RPC skeleton
RESTful interface principles
unforgeable capabilities
distributed systems challenges
Deutsch's 7 Falacies
man in the middle attacks
key security
RPC tool chain
XDR
symmetric encryption
asymmetric encryption
cryptographic privacy
digital signatures
secure sessions
reliable communication
distributed locks
leases
distributed transactions
distributed consensus
17 local vs cloud
client/server model
distributed file systems
reliability
availability
stateless server protocols
idempotent operations
ACID Consistency
Read-After-Write Consistency
Close-Open Consistency
remote file system goals
graceful degradation
write latency
cache consistency
remote file transfer
remote file access
peer-to-peer security
distributed authentication/authorization
replication and recovery
striping
direct client-server communication
scalable distributed systems
client-side caching
18 classes of distributed systems
Single System Image
Non-Uniform Memory Architecture
unit of deployment
unit of failure/replacement
domain services
service management
hypervisors
cluster membership
Geographic Disaster Recovery
availability zones
Software Defined Networking
Software Defined Storage
Single Point of Failure
Eventual Consistency
BASE semantics
Data plane
Control plane
APIs -> protocols
CAP Theorem
Symmetric Multi-Processor
loosely coupled systems
Tightly Coupled
Horizontally Scaled
VM service deployment
Clustered
heart beating
Active/Active
Active/Standby
partitioned resource management
WAN-scale replication
WAN-scale consistency models

Last updated: 5/29/2016