A '''Distributed operating system''' is the logical cumulative aggregation of operating system software within a Distributed System. The distributed operating system – considered collectively – is the foundation for coordinated operation of the distributed system’s independent and autonomous computational nodes.<ref name="LSF">Tanenbaum, Andrew S. 1993 Distributed operating systems anno 1992. What have we learned so far? Distributed Systems Engineering, 1, 1 (1993), 3-10</ref> Individual system nodes each contain a discrete subset of the global system’s operating system software. A given node’s system software set reveals a clean division – both physically and logically – between two distinct providers of services.<ref name="CDS">Nutt, G. J. 1992 Centralized and Distributed Operating Systems. Prentice Hall Press.</ref>
The first is a minimal, low-level, node-servicing kernel, situated directly above the bare-metal of a node’s hardware. The kernel provides the foundation for all node-level activities. The second is a higher-level collection of system-servicing management components and services, the System Management Servers. This collection of globally-connected management components exists immediately above the microkernel, and below any user applications or APIs that might reside at higher levels.<ref name="TLD">Distributed Operating Systems: The Logical Design, 1st edition Goscinski, A. 1991 Distributed Operating Systems: the Logical Design. 1st. Addison-Wesley Longman Publishing Co., Inc.</ref> These two entities, the kernel and the management components collection, work together in supporting the distributed operating system’s goal of seamlessly integrating all network-connected resources and functionality into an efficient, available, and unified system.<ref name="DCT">Design of Distributed Operating Systems: Concepts and Technology Fortier, P. J. 1986 Design of Distributed Operating Systems: Concepts and Technology. Intertext Publications, Inc.,/ McGraw-Hill, Inc.</ref>
== Overview ==
=== The Kernelkernel ===
The Kernel is a minimal, but complete set of node-level utilities necessary for access to a node’s underlying hardware and resources. These mechanisms provide the complete set of “building-blocks” essential for node operation; mainly low-level allocation, management, and disposition of a node’s resources, processes, communication, and I/O management support functions.<ref name="COS">P. Brinch Hansen, Ed. 2000 Classic Operating Systems: from Batch Processing to Distributed Systems. Springer-Verlag New York, Inc.</ref> These functions are made possible by exposing a concise, yet comprehensive array of primitive mechanisms and services. The kernel is arguably the primary consideration in a distributed operating system; however, within the kernel, the subject of foremost importance is that of a well-structured and highly-efficient communications sub-system.<ref name="TLD"/>
{{Userbox
|border-c=#000
|info=A Diagram will be furnished to assist in illustration of this idea.
|float = right}}
In a distributed operating system, the kernel is often defined by a relative to absolute minimal architecture. A Kernel of this design is referred to as a Microkernel.<ref>Using LOTOS for specifying the CHORUS distributed operating system kernel Pecheur, C. 1992. Using LOTOS for specifying the CHORUS distributed operating system kernel. Comput. Commun. 15, 2 (Mar. 1992), 93-102.</ref> <ref>COOL: kernel support for object-oriented environments Habert, S. and Mosseri, L. 1990. COOL: kernel support for object-oriented environments. In Proceedings of the European Conference on Object-Oriented Programming on Object-Oriented Programming Systems, Languages, and Applications (Ottawa, Canada). OOPSLA/ECOOP '90. ACM, New York, NY, 269-275.</ref> The microkernel usually contains only the mechanisms and services which, if otherwise removed, would render a node or the global system functionally inoperable. The minimal nature of the microkernel strongly enhances a distributed operating system’s modular potential.<ref name="DCD">Distributed Operating Systems: Concepts and Design Sinha, P. K. 1996 Distributed Operating Systems: Concepts and Design. 1st. Wiley-IEEE Press.</ref> It is generally the case that the kernel is implemented directly on the bare metal of a node’s hardware; it is also common for a kernel to be replicated over all the nodes in a system.<ref name="DCP">Distributed Operating Systems Galli, D. L. 1999 Distributed Operating Systems: Concepts and Practice. 1st. Prentice Hall PTR.</ref> The combination of a kernel’s minimal design and ubiquitous coverage greatly aids in global system extensibility, and the ability to dynamically introduce new nodes or services.<ref name="DSA">Distributed Operating Systems and Algorithms Chow, R. and Chow, Y. 1997 Distributed Operating Systems and Algorithms. Addison-Wesley Longman Publishing Co., Inc.</ref>
Habert, S. and Mosseri, L. 1990. COOL: kernel support for object-oriented environments. In Proceedings of the European Conference on Object-Oriented Programming on Object-Oriented Programming Systems, Languages, and Applications (Ottawa, Canada). OOPSLA/ECOOP '90. ACM, New York, NY, 269-275.</ref> The microkernel usually contains only mechanisms and services which would, if otherwise removed, render a node or the global system functionally incapable. The minimal nature of the microkernel strongly enhances a distributed operating system’s modular potential.<ref>Distributed Operating Systems: Concepts and Design
Sinha, P. K. 1996 Distributed Operating Systems: Concepts and Design. 1st. Wiley-IEEE Press.</ref> It is generally the case that the kernel is implemented directly on the bare metal of a node’s hardware; it is also common for a kernel to be replicated over all nodes.<ref>Distributed Operating Systems
Galli, D. L. 1999 Distributed Operating Systems: Concepts and Practice. 1st. Prentice Hall PTR.</ref>
{{Userbox
|border-c=#000
|info=A Diagram will be furnished to assist in illustration of this idea.
|float = right}}
A well-devised minimal microkernel of functionally-cohesive modular architecture can exhibit an advanced level of flexibility in adapting to heterogeneous hardware, and in supporting different organizational paradigms in higher-level structures; all from a single replicated entity. This ubiquitous quality of a system’s kernel also supports much greater system-level flexibility and scalability. The combination of a kernel’s minimal design and ubiquitous coverage greatly aids in global system extensibility, and the ability to dynamically introduce new nodes or services.<ref>Distributed Operating Systems and Algorithms Chow, R. and Chow, Y. 1997 Distributed Operating Systems and Algorithms. Addison-Wesley Longman Publishing Co., Inc.</ref>
=== System Managementmanagement Componentscomponents ===
A node’s system management servercomponents are a collection isof definedsoftware byserver processes that basically define the compositepolicies of a node’s system softwarenode. not directlyThese requiredcomponents withinare the kernel,composite whichof support thea node’s responsibilitiessystem tosoftware thenot overalldirectly systemrequired within the kernel. These responsibilitiessoftware focusservices principallysupport onall transparency orof the “systemneeds image”;of andthe subsequentlynode; onnamely achievingcommunication, theprocess globaland systemresource goalsmanagement, ofreliability, efficiencyperformance, flexibilitysecurity, consistencyscalability, and reliability.hetrogeneity to Transparency,mention withjust respecta tofew. the traditionalIn operatingthis system iscapacity the abstractionsystem ofmanagement difficultcomponents orcompare tediousdirectly aspectto ofthe acentralized operating system intoof a moresingle-entity acceptable or desirable qualitysystem.<ref name="TLD"/>
{{Userbox
|border-c=#000
|info=A Diagram will be furnished to assist in illustration of this idea.
|float = right}}
InHowever, a distributedthese system, themanagement exceptionalcomponents degree of inherent complexity could easily renderhave the systemadded andchallenges itswith operating system an anathemarespect to any user. Assupporting a result,node's transparencyresponsibilities isto athe criticalglobal pointsystem. of focusIn in mostaddition, ifthe notsystem allmanagement areascomponents ofaccept the system;defensive namelyresponsibilities with respectinherent to performance,a failure,distributed access,collection migration,of concurrency,networked and ___location to mention just a fewnodes. Quite often, anany effort to realize success in anya particular area illuminates conflict with similar efforts in othersother areas. Therefore, a consistent andapproach of balanced perspective and understanding of the overall system and it goals can help mitigate complexity and quickly identify points of the diminishing returns. quickly It is for this purpose that the separation of policy and mechanism is so critical.<ref name="DSA"/>
=== TogetherWorking together as an Operatingoperating Systemsystem ===
The architecture and design of a distributed operating system is specifically aligned with realizing theseindividual goalsmode and transparenciesglobal insystem angoals, attemptin toa protectmanner theconsistent userwith fromseparating thepolicy issues arisingand from the system’s physically separated statemechanism. Simply said, a distributed operating system attempts to provide a highly efficient and reliable distributed computing framework with a minimum user awareness of the underlying command and control efforts.<ref name="DCD"/> The multi-level collaboration between a kernel and the system management components, and in turn between the distinct nodes in a distributed system is the key functional spaceopportunity of the distributed operating system. However, this opportunity comes at a very high pricecost in complexity.
{{Userbox
|border-c=#000
|info=A Diagram will be furnished to assist in illustration of this idea.
|float = right}}
===The price of complexity===
TheIn a distributed operating system, the exceptional degree of inherent complexity could easily render the entire system an anathema to any user. As such, the logical price of realizing a distributed system – including its operating system – must be calculated in terms of overcoming vast amounts of complexity on many levels, and in many areas. This calculation includes the depth, breadth, and range of design investment and architectural planning required in achieving even the most modest levelsimplementation.<ref>Surajbali, B., Coulson, G., Greenwood, P., and Grace, P. 2007. Augmenting reflective middleware with an aspect orientation support layer. In Proceedings of successthe 6th international Workshop on Adaptive and Reflective Middleware: Held At the ACM/IFIP/USENIX international Middleware Conference (Newport Beach, CA, November 26 - 30, 2007). ARM '07. ACM, New York, NY, 1-6.</ref> These design and development considerations are critical and unforgiving,. asFor theinstance, overwhelmingan majoritydeep understanding of a distributed operating system’s detailsoverall requiredetail anis inordinate completeness of understandingrequired from the start.<ref name="LSF"/> As an aid in this effort, most rely strongly on the immense amount of documented experience and research accomplished towardsin distributed computing which exists, and continues even today.
===Perspectives: past, present, and future===
Many notable experts look to the early 1970s for the earliest distributed systems, complete by definition and capable of being considered and implemented wholly. Research and experimentation efforts began in earnest in the mid to late-1970s and continued into the early 1990s, with a few implementations achieving modest commercial success. The subject of distributed operating systems however, has a much richer historical perspective when considering design issues severally with respect to some of the individual primordial strides towards distributed computing. There are several instances of fundamental and pioneering implementations of primitive distributed system and component concepts dating back to the early 1950s. Looking to the modern distributed system and its future, the accelerating proliferation of multiprocessor systems and multi-core processors has led to a re-emergence of the distributed system concept. The inherent challenges in many-core and multiprocessor science has led to an enormous increase in distributed system related research. Many of these research efforts investigate and describe interesting and plausible paradigms for the future of distributed computing.
|