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. Concepts: 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 Concepts: Differences between processes and threads Programming interface to processes and threads Process states and OS structures Problems: Producer-Consumer Readers and Writers Sleeping Barber Dining Philosophers Battling Buffet Synchronization Mechanisms: Interrupts Sleep/Wakeup Semaphores Monitors Barriers Messages Scheduling 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. Concepts: four conditions necessary for deadlock four approaches for dealing with deadlock Algorithms: 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: swapping paging segmentation Memory Allocation data structures: linked list or bitmap algorithms: first fit, next fit, best fit, worst fit, quick fit Paging: 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 Segmentation: 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 Disks 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 Biometrics Protection Mechanisms Access Control Lists Capabilities UNIX: user and group numbers, protection bits, setuid