CSE 320 : System Fundamentals 2

Quiz Course Website : http://www3.cs.stonybrook.edu/~cse320/

Chapter 1 : A Tour of Computer Systems

Chapter 2 : Representing and Manipulating Information

Chapter 3 : Machine-Level Representation of Programs

Chapter 5 : Optimizing Program Performance

Chapter 6 : The Memory Hierarchy

Chapter 6.3 : The Memory Hierarchy

Chapter 6.4 : Cache Memories

Chapter 6.5 : Writing Cache-Friendly Code

Chapter 6.6 : Putting It Together: The Impact of Caches on Program Performance

Chapter 6 : Problems

Chapter 8 : Exceptional Control Flow

Chapter 8.1 : Exceptions

Chapter 8.2 : Processes

Chapter 8.3 : System Call Error Handling

Chapter 8.4 : Process Control

Chapter 8.5 : Signals

Chapter 8.6 : Nonlocal Jumps

Chapter 8.7 : Tools for Manipulating Processes

Chapter 8.8 : Summary

Chapter 9.2 : Address Spaces

Chapter 9.3 : VM as a tool for caching

Chapter 9.6 : Address Translation

Chapter 9.9 : Dynamic Memory Allocation

Chapter 9.9.1 : The malloc and free Functions

Chapter 9.9.2 : Why Dynamic Memory Allocation?

Chapter 9.9.3 : Allocator Requirements and Goals

Chapter 9.9.4 : Fragmentation

Chapter 9.9.5 : Implementation Issues

Chapter 9.9.6 : Implicit Free Lists

Chapter 9.9.7 : Placing Allocated Blocks

Chapter 9.9.8 : Splitting Free Blocks

Chapter 9.9.9 : Getting Additional Heap Memory

Chapter 9.9.10 : Coalescing Free Blocks

Chapter 9.9.11 : Coalescing with Boundary Tags

Chapter 9.9.12 : Putting It Together: Implementing a Simple Allocator

Chapter 9.9.13 : Explicit Free Lists

Chapter 9.9.14 : Segregated Free Lists

Chapter 9.10 : Garbage Collection

Chapter 9.11 : Common Memory-Related Bugs in C Programs

Chapter 10 : Unix I/O

Chapter 10.1 : Unix I/O

Chapter 10.2 : Files

Chapter 10.3 : Opening & Closing Files

Chapter 10.4 : Reading and Writing Files

Chapter 10.6 : Reading File Metadata

Chapter 10.7 : Reading Directory Contents

Chapter 10.8 : Sharing Files

Chapter 10.9 : I/O Redirection

Chapter 10.10 : Standard I/O

Chapter 10.11 : Putting It Together: Which I/O Functions Should I Use?

Chapter 10.12 : Summary

Chapter 12.1 : Concurrent Programming with Processes

Chapter 12.3 : Concurrent Programming with Threads

Chapter 12.4 : Shared Variables in Threaded Programs

Chapter 12.5 : Synchronizing Threads with Semaphores

Chapter 12.6 : Using Threads for Parallelism

Chapter 12.7 : Other Concurrency Issues

Chapter 12.8 : Summary