UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Computer Science Division CS 162 Prof. Alan J. Smith Approximate Lecture Schedule This outline is approximate, as to coverage and timing. Lecture Topics 1 introduction, processes, multiprogramming. 2 EIT, scheduler, CPU scheduling system model, CPU scheduling, goals. 3 CPU scheduling, metrics, constraints, open vs. closed systems, user characteristics, job characteristics, FIFO, round robin, little's formula, CPU Scheduling: SJF, SPT, SRPT, FB, MLFB, Exponential queue, 4 CPU scheduling: fair share scheduler, countermeasures. Discrete event simulation. Cooperating processes, atomic operations, critical sections, too much milk problem. Synchronization with semaphores. 5 Synchronization: producers and consumers, readers and writers, dining philosophers. 6 Threads. Synchronization with Condition Variables. Unix implementation. Monitors. Semaphore implementa- tion, disabling interrupts. 7 Deadlock, deadlock prevention. deadlock avoidance, banker's algorithm, recovery, rollback. Unix file lock- ing. 8 Linkers and loaders. Dynamic storage allocation: stacks, heaps, fragmention, (external/internal)first fit, best fit, next fit, bit map, reference counts, garbage collection, buddy system. 9 Memory management - flat memory, relocation (static, dynamic), base and bounds, swapping. 10 Multiple variable length segments, address translation, processes vs. threads, managing segments, paging (intro) 11 Paging: translation, PTBR, pros/cons, page tables, page table implementation, wired down pages, paging and seg- mentation combined, sharing, paging vs. segmentation. 12 Paging: copy on write, address space communication, I/O in paging system, sharing, 370 implementation, VAX implementation, TLB, principle of locality, translator. 13 Demand paging, principle of locality, page faults. paging fetch algorithms, page replacement algorithms (RAND, FIFO, LRU, MIN/OPT), real vs. virtual time. 14 Evaluation of paging algorithms, stack algorithms. implementing LRU, clock algorithm, local vs. global replacement. 15 Thrashing, working sets. page fault frequency, page size, I/O and paging, trace driven simulation, modify- ing code to minimize paging, algorithm comparison. 16 I/O device characteristics and device management. 17 I/O device characteristics and device management. 18 File and I/O systems - disk management, file alloca- tion, contiguous allocation, linked files, multilevel indexed file, simple indexed file, dynamic optimized allocation (Demos), free block list. 19 I/O optimization: block size, disk arm sked (fcfs, sstf, scan, cscan), rotational scheduling, skip sector allocation, track offset for head switching, file placement, disk caching, prefetching, data replication, ALIS, RAID. 20 File descriptor, tree structured directories, links, symbolic links, root, tree structured directories, working directory, operations on files, file backup and recovery. 21 Networks and communications protocols, examples, hardware, topologies, performance parameters, proto- cols, ISO, wide area nets, broadcast nets, ethernet. 22 Networks: ring networks, circuit switching, packet switching, names vs. routes, communication problems, datagrams, TCP/IP, NFS. 23 Protection and security: problems, levels of info pro- tection, design principles, authentication, authoriza- tion determination, access lists, capabilities, Multics protection, access enforcement, common problems. 24 Protection: examples of penetration, countermeasures, inference controls, confinement problem, viruses. 25 Encryption: substitution, transposition, codes, cryp- tanalysis, key distribution, DES, public key encryp- tion, safe mail, digital signatures, Clipper Chip. 26 Virtual Machines, VMM, emulators, implementation, memory mapping, I/O, VM performance. Real Time Systems - deadlines. 27 Performance evaluation: measurement, hardware monitor- ing, software monitoring, multics, GTF, workload char- acterization, analytic modeling, queueing networks, simulation, back-of-the-envelope calculations. Hints for OS designers. Current research in Operating Sys- tems.