The assigned readings listed below are meant to provide you reinforcement and a reference for the material discussed in lectures and used for projects. The textbook that we will use for this purpose is Bryant and O'Hallaron's, Computer Systems: A Programmer's Perspective (3rd edition). You can find it new, used, and for rent on Amazon and the like. Do note that we will cover material that is not in the textbook: it is a good supplement, but not a replacement for attendance and good notes.
Week-1: Basic assembly and machine code, including registers, data, instruction operands and opcodes, basic operations, and loops. Sections 3.2, 3.4 (excluding 3.4.4), 3.5 (through 3.5.2), and 3.6 through 3.6.7 (excluding 3.6.6).
Week-2: Assembly procedure calls and the activation stack. Sections 3.4.4 and 3.7.
Week-3: Continued with week-2 material. Then started dynamic memory (heap) allocation, Section 9.9.
Week-4: More heap allocation, Sections 9.9.8 through 9.9.14.
Week-5: Garbage collection, Sections 9.10, through 9.10.2.
Week-6: The virtual memory abstraction, basics of pages, page tables, and the MMU. Chapter 9, through Section 9.2.
Week-7: Spatial locality, multi-level page tables in detail. Section 9.3.2; Section 9.6.
Week-8: Temporal locality and more spatial locality, page replacement policies. Section 6.2 and 9.3.6. Also, from Wilson's Locality of Reference, Section 2.
Week-9: Efficient LRU approximation (segmented queues, the CLOCK algorithm), the translation lookaside buffer. Here is a decent overview of replacement policies; ignore the part that goes into working sets.
Week-10: System calls, interrupts and the trap table; kernel-space, userspace, and user- vs. supervisor-mode. Chapter 8, through Section 8.1. (Note the shift in terminology, with interrupts being substituted and slightly redefined as exceptions, and the trap table as the exception table.)
Week-11: Files and file systems. Block devices, concrete file system layout, inodes. Chapter 10, through Section 10.4, provides background on files and using files, but not how they're implemented. Here is a reasonable presentation of basic file system layouts and structures, including some we didn't talk about (e.g., FAT) and issues we didn't get into (restore and backup, networked file systems).
Week-12: Fault tolerance, transactions, and the log-structured file system; virtual file systems. See above. Also, a good set of slides on LFS and its evaluation; also, a href="https://en.wikipedia.org/wiki/Virtual_file_system">the Wikipedia page on virtual FS's is a good summary.