This document, "CFS Resources" by David Lomartire (November 7, 1984), outlines the resource management mechanisms within the CFS (presumably a distributed file system) environment. It details how various "tokens," which are fundamental CFS resources, are acquired, managed, and released to control access and maintain consistency across multiple processors.
The document is structured into sections covering different types of resources:
Files:
CFSGFA (Acquire) and CFSFFL (Release) handle these. Acquisition involves checking for existing tokens, upgrading access, or creating new resource blocks and initiating a "voting" process.CFSGWL (Get) and CFSFWL (Free).CFSAWT/CFSAWP (Acquire/Reserve) and CFSUWT (Release) are key routines. This section details "callback" routines for write token revocation (CFSDWT), sharing approval (CFSOVT), and optional data handling (CFSDAR), as well as interaction with the Disk Dump/Management Process (DDMP) for page management when tokens are released or revoked.Directory Locks: Exclusive tokens are used to lock directories (CFSLDR, CFSRDR), with the requesting process being scheduled ("CSKED") during the lock's duration.
Directory Allocation: Tokens manage cached directory allocation information, which is critical for processing page faults and creating file pages. A dispatcher routine (CFSDAU) handles various functions for getting, storing, unlocking, and removing allocation entries, and also supports optional data exchange through "callbacks."
Structures (Mount Resources): To "mount" a structure, both a Structure Name Token and a Drive Serial Number Token must be acquired (CFSSMT, CFMNAM, CFMDSN). These ensure consistent naming and access types across CFS processors and facilitate handling "reduced" CFS systems.
BAT Blocks: An exclusive BAT Block Lock Token (CFGBBS, CFFBBS) controls access to BAT (Block Allocation Table) blocks on a structure.
ENQ/DEQ: A temporary, exclusive ENQ Token (CFSENQ, CFSDEQ) is used to represent file-level enqueues within the CFS environment.
Common mechanisms highlighted across these resource types include the use of short or long resource blocks, hash tables for lookup, distributed voting for resource acquisition, and various status flags and transaction numbers to maintain consistency and resolve conflicts.
Site structure and layout ©2025 Majenko Technologies