Distributed Systems Question Bank
Distributed Systems Question Bank
Deadlock conditions require mutual exclusion, hold and wait, no preemption, and circular wait among processes. Each process must hold at least one resource while waiting for another, and resources cannot be forcibly taken .
Consistency issues in DSM systems are addressed via sequential consistency, ensuring operations appear in a uniform sequence, and causal consistency, which maintains dependencies among operations. Strategies may include synchronization mechanisms and conditional operations maintaining order without sacrificing performance .
A wait-for-graph (WFG) depicts dependencies between processes in distributed systems, with nodes representing processes and directed edges indicating waiting states. It is crucial for deadlock detection, as cycles in the WFG suggest potential deadlocks, enabling corrective measures .
Causal order execution is a message delivery order that ensures if one message causally affects another, they are delivered in that causal order. It is crucial in distributed systems where preserving the sequence of dependent events is needed for consistency and process synchronization .
Traditional shared memory involves direct access from multiple processors within a system, necessitating physical proximity. DSM abstracts shared memory over a network, enabling non-local processor access as if locally, facilitating a cohesive view and interaction form among distributed systems .
Checkpoints allow systems to save states, facilitating quick recovery from failures by reverting to the last valid state. However, it can incur high storage and computational overhead, and in some situations, it may lead to the loss of progress since the last checkpoint .
Snapshot algorithms capture global states in distributed systems, aiding in consistent state log collection and providing a coherent snapshot. They offer advantages in ensuring FIFO channels by recording communication cues that preserve message order across systems .
Content-Addressable Networks (CAN) are a type of distributed, decentralized data system facilitating efficient searching and retrieval through a virtual multi-dimensional space. In P2P networks, they improve scalability and data retrieval efficiency by mapping keys to distinct coordinate spaces .
Distributed systems are necessary to improve resource sharing, availability, and scalability by connecting multiple computers into a single system, which can handle larger tasks than individual computers. Challenges include synchronization, concurrency control, failure handling, and security issues .
Synchronous execution requires processes to coordinate timings, ensuring tasks occur in lockstep, which can be efficient but lacks flexibility. Asynchronous execution allows processes to operate independently, making them more adaptable but also potentially leading to inconsistency without careful synchronization .