Study Guide for Exam II

Study Guide for Final Exam
CSE 341 – Spring 2005 – Prof Thain
The exam will cover all of the semester’s lessons in a format similar to the earlier exams.
This study guide is an overview of all of the terms and concepts that you should know.
Note: It is not enough to know what each of these terms mean! You should be able to describe
each of these concepts in detail, be able to give a detailed example of how an algorithm works,
and be able to thoughtfully compare and contrast varying approaches to operating systems design.
Chapter 1: Introduction
Terms: operating system, kernel mode, user mode, architecture, virtual machine, mainframe,
batch system, online, offline, multiprogramming, spooling, timesharing, program counter, stack
pointer, PSW, system call, context switch, device driver, interrupts.
Purpose: extended machine, resource manager
History: batch machiens through personal computers
Ontogeny Recapitulates Phylogeny
Types of Systems: Mainframe, server, multiprocessor, PC, real-time, embedded
Hardware Basics: CPUs, memory, I/O, buses, assembly language
System Structure: drivers, kernel, libraries, applications
Chapter 2: Processes and Threads
Terms: multiprogramming, multithreading, process table, thread table, PCB, TCB, interrupt
vector, jacket, wrapper, upcall, pop-up thread, race condition, mutual exclusion, critical section,
busy waiting, spin lock, priority inversion, atomic action, mutex, monitor, condition variable,
starvation, deadlock, CPU-bound, IO-bound, preemptive, non-preemptive, thgouhput, turnaround
time, response time, proportionality, hard real time, soft real time
Differences between processes and threads
Programming interface to processes and threads
Process states and OS structures
Readers and Writers
Sleeping Barber
Dining Philosophers
Battling Buffet
Synchronization Mechanisms:
Settings: batch, interactive, real time
Algorithms: FCFS, SJF, SRTN, 3-level, RR, priority, MQ, guaranteed, lottery, fair share
Performance and Fairness
Implementation Details:
Context Switching: assembly language, interrupts, hardware support
Synchronization: assembly language, interaction with OS structures
Threads: kernel level or user level?
Chapter 3: Deadlock
Terms: deadlock, preemptable resource, non-preemptable resource, holt graph, checkpoint, safe
state, unsafe state, starvation, livelock, two phase locking.
four conditions necessary for deadlock
four approaches for dealing with deadlock
deadlock detection algorithm
banker’s algorithm
Chapter 4: Memory Management
Terms: monoprogramming, multiprogramming, overlays, virtual memory, fragmentation,
compaction, TLB, demand paging, locality of reference, working set, thrashing, prepaging,
Belady’s anomaly, virtual address, linear address, physical address, protection rings, call gate.
Overall System Designs:
Memory Allocation
data structures: linked list or bitmap
algorithms: first fit, next fit, best fit, worst fit, quick fit
structures: one level, multi level, inverted, software page table
algorithms: OPT, NRU, FIFO, second chance, clock, LRU, NFU, WS, WSclock
performance: local vs global, load control, page size, fragmentation, shared pages
implementation: fault handling, instruction backup, page locking, packing store
Performance Analysis and Modeling:
multiprogramming & CPU utilization
reference strings and stack algorithms
history and logical distinction from paging
physical structures to support paging
segmentation and paging together
Chapter 5: Input/Output
Terms: block device, character device, controller, preamble, ECC, I/O port, DMA, cycle stealing,
burst mode, fly-by mode, interrupt vector, precise interrupt, device independence, unifrom
naming, mounting, synchronous/asynchronous, buffering, polling, busy waiting, daemon,
spooling, LBA, RAID
System Structure
Layers: interrupt handlers, device drivers, kernel interface, user-level libraries
Relationship between I/O, processes, and memory.
Hardware Details
Control Mechanisms: I/O Ports vs Memory Mapped
Data Mechanisms: PIO, PIO+Interrupts, DMA+Interrupts
Physical Structure
Performance Characteristics
Scheduling Algorithms
Chapter 6: File Systems
Terms: sequential access, random access, file descriptors, root directory, absolute path, relative
path, search path, working directory, MBR, boot block, superblock, inode, direct block, indirect
block, hard link, symbolic link, physical dump, logical dump, incremental dump
Programming Interface
Files: names, structure, types, access, attributes, operations, memory mapped
Directories: single-level, two-level, hierarchical, paths, Unix customs
Implementation Details
Free Blocks: bitmap, linked list
Files: contiguous, linked-list, FAT, inodes
Directories: implementation, hard links, symbolic links, variable name lengths
Recovery after Crash: fsck, directory consistency, rebuild free block bitmap
Performance Considerations:
Buffer Cache
Block Size
Disk Layout
Chapter 9: Security
Security Environment
Security vs. Protection
Threats and Intruders
Appropriate Measures
Attack Types: trojan horses, login spoofing, logic bombs, trap doors, buffer overflows
Cryptography Basics
(( see class handout, also on web page ))
User Authentication
Passwords: implementation, social & brute force attacks, one-time, challenge/response
Physical Objects
Protection Mechanisms
Access Control Lists
UNIX: user and group numbers, protection bits, setuid