Title: 544
Tags: lec13

Q: Memory is byte-addressible.  But what is the unit of access for an HDD, SSD, etc?
A: These are block devices, so the unit is a block.  A typical block size might be about 512 bytes.

Q: What are two ways we can use memory to make access to block devices more efficient?
A: caching: keep some disk data in memory, so we don't need to go back to disk if the data is reused
buffering: when doing many smaller reads/writes, accumulate more data in memory before doing the transfer between disk and memory (because block devices are more efficient for bigger accesses).

Q: What are the names for these two data access patterns?
1. reading lots of data in order
2. jumping around and reading from many different places
A: 1. sequential
2. random

Q: "block" and "page" have different meanings for SSD internals than we've seen for operating systems and interactions with block devices.  What are the differences?
A: block (for SSDs): unit of erasure (perhaps 100s of KBs)
block (for using a block device): unit of transfer to/from device, perhaps 512 bytes
page (for SSDs): unit of read/write within the define (few KBs)
page (for system memory): unit of mapping between virtual memory and physical memory (usually 4 KB)

Q: How can we break a block device into smaller sections?
A: with partitions

Q: How can we treat multiple individual block devices like one bigger, more reliabel one?
A: With RAID (redundant array of inexpensive disks)

Q: What is the data structure in a file system that points to blocks containing file data?
A: inode

Q: On UNIX, how do we make many smaller file systems appear as one big one?
A: By mounting them on top of each other