1/17
Flashcards covering key terms and concepts from the Principles of Computer System Design Midterm Exam, including virtual memory mapping, UNIX file system inodes and blocks, NFS file handles and descriptors, bounded buffer synchronization, and RPC stubs.

Virtual Memory and Physical Memory Architecture
The hardware and page table structure where processors reference memory via virtual addresses that are translated by a virtual memory manager (VM mgr) resolver using the Page Map Address Register (PMAR) into physical memory addresses or device controller registers.

UNIX Inode and Data Block Structure
A file system organization where the disk is divided into an inode table and data blocks, with each inode containing a file type (D, F, or S), a reference count (refcnt), and direct block pointers referencing file contents or directory entry lists.
Page Map Address Register (PMAR)
A processor register holding the base physical memory address of the page table used by the virtual memory manager to translate virtual addresses for the running thread.
SETPMAR
A privileged, kernel-only instruction used to update the value of the Page Map Address Register (PMAR); executing it in User mode (U) causes an exception or interrupt.
Context Reference (Virtual Memory)
The reference base provided to the memory manager's address resolver to determine the current mapping context, specifically given by the processor's PMAR value (such as 0x0100 for processor P1 or 0x0200 for P2).
Read-Set-Memory (RSM)
An atomic memory operation that reads a value from a referenced memory location into a designated processor register and updates memory contents.
Inode Table Size (64K Inodes)
The total number of disk blocks (8K or 8,192 blocks) required to support up to 64K files or directories when blocks are 8 KB (8,192 Bytes) and there are 8 inodes stored per block.
Largest Supported File Size (Direct Block Pointers)
The maximum file size (2,032 KB) achievable when an inode allocates 8 Bytes for metadata and uses the remaining 1,016 Bytes for direct 4-Byte block pointers (254 pointers) referencing 8 KB blocks (254×8 KB).
LOOKUP Procedure
A directory resolution procedure that inspects the directory entries within a specified directory inode's blocks for a named component and returns its corresponding target inode number.
Hard Link Creation
An operation that adds a new name-to-inode mapping inside a target directory block and increments the reference count (refcnt) of the referenced inode.
File Descriptor (NFS Client)
A per-process, local integer identifier managed independently on each client machine; descriptors opened on different clients referencing the same server file are not necessarily equal.
File Handle (NFS)
An opaque identifier returned by an NFS server to identify a file system object uniquely across all clients, remaining identical across clients accessing the same object.
Generation Count (NFS)
A metadata counter in an NFS inode and file handle that increments whenever an inode is recycled/reused, ensuring the server can detect outdated file handles.
Stale File Handle Error (ESTALE)
An error returned by an NFS server when a client attempts to access a file using an existing file handle after the original file has been unlinked and its inode reused for a new file.
Bounded Buffer Race Condition (Unprotected Pointer Update)
A concurrency bug occurring when index updates (such as p.out←p.out+1) are executed outside of the critical section lock, allowing multiple concurrent receivers to read the same message and overwrite pointer increments.
RPC Marshaling
The translation and packaging of function arguments and return values into a standard external data representation format to ensure correct interpretation across different computer architectures.
Endianness Mismatch
A data corruption error that occurs when an RPC stub omits marshaling, causing systems with differing byte orderings (big-endian versus little-endian) to misinterpret raw multi-byte numerical values.
At-Least-Once RPC Semantics
A remote procedure call protocol policy where client stubs retransmit requests until receiving a response or reaching a specified timeout limit (such as 100 seconds).