Distributed OS Basics Flashcards
What is a distributed system?
a system that consists of several computers that do not share a memory or clock and communicate with each other by exchanging messages over a communication network
5 motivations for developing and using a distributed system
Improved price/performance
resource sharing
enhanced performance
improved reliability and availability
modular expandability
Benefit of improved price/performance
equivalent computing power may be obtained by a network of workstations at a much lower cost than a traditional time-sharing system
Benefit of resource sharing
requests for services may be satisfied using hardware/software resources on other computers on the communication network
Benefit of enhanced performance
concurrent execution of tasks and load distributing can lead to improved response time
Benefit of improved reliability and availability
fault tolerance can be achieved through the replication of data and services
Benefit of modular expandability
new hardware and software resources can be added without replacing the existing resources
5 design issues with distributed systems
global knowledge
naming
scalability
compatibility
process synchronization
Issues with global knowledge
the global state of the system is hard to acquire due to the unavailability of a global memory and a global clock along with the unpredictability of message delays
aka its impossible to know the state of the entire system at a given point and thus nothing can assume or be based on an up to date global state being available
Issues with Naming
the directory of all the named objects (services, files, printers, etc) in the system must be maintained to allow proper access.
How is one node in the system supposed to know the name of an object on another node?
does one node hold the records for all named objects?
does every node maintain their own record of all objects in the system?
are the naming records for the system partitioned in some way across all the nodes such that a single node could logically determine where to find an object based on some properties of that object?
Issues with Scalability
any mechanisms or approaches adopted in a system must result in badly degraded performance when the system grows
Issues with compatibility
the interoperability among the resources in a system must be an integral part of the design of a distributed system
Issues with process synchronization
especially difficult in distributed systems due to the lack of shared memory and a global clock
none of the previously discussed methods work for distributed systems
2 inherent limitations of a distributed system
lack of common memory
lack of system-wide clock
Limitations caused by lacking system-wide clock
without global time it is difficult to talk about a temporal ordering of events