Aim: To study Distributed Operating Systems (DOS)

Theory:

Distributed Operating System (DS)

A distributed operating system is a software over a collection of independent, networked, communicating, and physically separate computational nodes.

Each individual nodes hold a specific software subset of the global aggregate operating system. Each subset is a composite of two distinct service provisioners.The first is a ubiquitous minimal kernel, or microkernel, that directly controls that node’s hardware. Second is a higher-level collection of system management components that coordinate the node's individual and collaborative activities. These components abstract microkernel functions and support user applications.

General definition can be stated as, A Distributed System (DS) is one in which

  • Hardware and software components, located at remote networked computers, coordinate and communicate their actions only by passing messages. Any distance may separate computers in the network.
  • Sharing of resources is the main motivation of distributed systems. Resources may be managed by servers and accessed by clients, or they may be encapsulated as objects and accessed by client objects.

Fig 1: Architecture of Distributed Operating System

A distributed OS provides the essential services and functionality required of an OS, adding attributes and particular configurations to allow it to support additional requirements such as increased scale and availability. To a user, a distributed OS works in a manner similar to a single-node, monolithic operating system. That is, although it consists of multiple nodes as shown in above figure, it appears to users and applications as a single-node.

It consists of several independent computers connected through communication network as shown in above figure,

  • The computers communicate with each other by exchanging message over a communication network.
  • Each computer has its own memory, clock and runs its own operating system.
  • Each computer has its own resources, called local resources.
  • Remote resources are accessed through the network.

The prime motivation of distributed systems is to share resources. A resource is an entity that can beusefully shared among users. Resources are managed by a service. A service is managed by one or more servers, whichprovide access to a set of resources to clients via a set of well-defined operations (an interface).

Design Issues in Distributed Operating System

  1. Transparency

Transparency refers to the ability of an application to treat the system on which it operates without regard to whether it is distributed and without regard to hardware or other implementation details. Many areas of a system can benefit from transparency, including

  1. Location transparency—Location transparency comprises two distinct aspects of transparency, naming transparency and user mobility. Naming transparency requires that nothing in the physical or logical references to any system entity should expose any indication of the entity's location, or its local or remote relationship to the user or application. User mobility requires the consistent referencing of system entities, regardless of the system location from which the reference originates.
  2. Access transparency—Local and remote system entities must remain indistinguishable when viewed through the user interface.
  3. Migration transparency—Resources and activities migrate from one element to another controlled solely by the system and without user/application knowledge or action.
  4. Replication transparency—The process or fact that a resource has been duplicated on another element occurs under system control and without user/application knowledge or intervention.
  5. Concurrency transparency—Users/applications are unaware of and unaffected by the presence/activities of other users.
  6. Failure transparency—The system is responsible for detection and remediation of system failures. No user knowledge/action is involved other than waiting for the system to resolve the problem.
  7. Performance Transparency—The system is responsible for the detection and remediation of local or global performance shortfalls.
  8. Size/Scale transparency—The system is responsible for managing its geographic reach, number of nodes, level of node capability without any required user knowledge or interaction.
  9. Revision transparency—The system is responsible for upgrades and revisions and changes to system infrastructure without user knowledge or action.
  10. Control transparency—The system is responsible for providing all system information, constants, properties, configuration settings, etc. in a consistent appearance, connotation, and denotation to all users and applications.
  11. Data transparency—The system is responsible for providing data to applications without user knowledge or action relating to where the system stores it.
  12. Parallelism transparency—The system is responsible for exploiting any ability to parallelize task execution without user knowledge or interaction.
  1. Inter-process communication

Inter-Process Communication (IPC) is the implementation of general communication, process interaction, and dataflow between threads and/or processes both within a node, and between nodes in a distributed OS. The intra-node and inter-node communication requirements drive low-level IPC design, which is the typical approach to implementing communication functions that support transparency. In this sense, IPC is the greatest underlying concept in the low-level design considerations of a distributed operating system.

  1. Process management

Process management provides policies and mechanisms for effective and efficient sharing of resources between distributed processes. These policies and mechanisms support operations involving the allocation and de-allocation of processes and ports to processors, as well as mechanisms to run, suspend, migrate, halt, or resume process execution. While these resources and operations can be either local or remote with respect to each other, the distributed OS maintains state and synchronization over all processes in the system.

  1. Resource management

Systems resources such as memory, files, devices, etc. are distributed throughout a system, and at any given moment, any of these nodes may have light to idle workloads. Load sharing and load balancing require many policy-oriented decisions, ranging from finding idle CPUs, when to move, and which to move. Many algorithms exist to aid in these decisions; however, this calls for a second level of decision making policy in choosing the algorithm best suited for the scenario, and the conditions surrounding the scenario.

  1. Reliability

Distributed OS can provide the necessary resources and services to achieve high levels of reliability, or the ability to prevent and/or recover from errors. For a system to be reliable, it must some-how overcome the adverse effects of faults.The primary methods for dealing with faults include fault avoidance, fault tolerance, and fault detection and recovery.

  1. Availability

Availability is the fraction of time during which the system can respond to requests.

  1. Performance

Many benchmark metrics quantify performance; throughput, response time, job completions per unit time, system utilization, etc. With respect to a distributed OS, performance most often distills to a balance between process parallelism and IPC. Managing the task granularity of parallelism in a sensible relation to the messages required for support is extremely effective. Also, identifying when it is more beneficial to migrate a process to its data, rather than copy the data, is effective as well.

  1. Synchronization

Cooperating concurrent processes have an inherent need for synchronization, which ensures that changes happen in a correct and predictable fashion.Improper synchronization can lead to multiple failure modes including loss of atomicity, consistency, isolation and durability, deadlock, livelock and loss of serializability.

  1. Flexibility

Flexibility in a distributed operating system is enhanced through the modular and characteristics of the distributed OS, and by providing a richer set of higher-level services. The completeness and quality of the kernel/microkernel simplifies implementation of such services, and potentially enables service providers greater choice of providers for such services.

Advantages of Distributed Systems

  • Performance: very often a collection of processors canprovide higher performance (and betterprice/performance ratio) than acentralized computer.
  • Distribution: many applications involve, by their nature,spatially separated machines (banking,commercial, automotive system).
  • Reliability (fault tolerance): if some of the machinescrash, the system can survive.
  • Incremental growth: as requirements on processingpower grow, new machines can be addedincrementally.
  • Sharing of data/resources: shared data is essential tomany applications (banking, computersupportedcooperative work, reservationsystems); other resources can be alsoshared (e.g. expensive printers).
  • Communication: facilitates human-to-humancommunication.

Disadvantages of Distributed Systems

  • Difficulties of developing distributed software: “howshould operating systems, programminglanguages and applications look like?” is still an unanswered question.
  • Networking problems: several problems are created bythe network infrastructure, which have tobe dealt with: loss of messages,overloading…
  • Security problems: sharing generates the problem ofdata security.

Applications of Distributed Systems

Examples of distributed systems and applications of distributed computing include the following:

  1. Telecommunication networks:
  2. Telephone networks and cellular networks
  3. Computer networks such as the Internet
  4. Network applications:
  5. World wide web and peer-to-peer networks
  6. Massively multiplayer online games and virtual reality communities
  7. Distributed information processing systems such as banking systems and airline reservation systems
  8. Real-time process control:
  9. Aircraft control systems
  10. Industrial control systems
  11. Parallel computation:
  12. Scientific computing, including cluster computing and grid computing and various volunteer computing projects; see the list of distributed computing projects
  13. Distributed rendering in computer graphics

Network Operating System

Network Operating System refers to software that implements an operating system of some kind that is oriented to computer networking. For example, one that runs on a server and enables the server to manage data, users, groups, security, applications, and other networking functions. The network operating system is designed to allow shared file and printer access among multiple computers in a network, typically a local area network (LAN), a private network or to other networks.

Network operating system offers many capabilities including:

  • Allowing users to access the various resources of the network hosts.
  • Controlling access so that only users in the proper authorisation are allowed to access particular resources.
  • Making the use of remote resources appear to be identical to the use of local resources
  • Providing up-to-the minute network documentation on-line.

The salient features of network operating systems are:

  • Basic operating system features support like protocol support, processor support, hardware detection and multiprocessing support for applications.
  • Security features like authentication, restrictions, authorizations and access control.
  • Features for file, Web service, printing and replication.
  • Directory and name services management.
  • User management features along with provisions for remote access and system management.
  • Internetworking features like routing and WAN ports
  • Clustering capabilities

Common tasks associated with network operating systems include:

  • User administration
  • System maintenance activities like backup
  • Tasks associated with file management
  • Security monitoring on all resources in the network
  • Setting priority to print jobs in the network

Types of network operating systems

The two major types of network operating systems are:

1. Peer-to-Peer

Peer-to-peer network operating systems allow users to share resources and files located on their computers and to access shared resources found on other computers. However, they do not have a file server or a centralized management source. In a peer-to-peer network, all computers are considered equal; they all have the same abilities to use the resources available on the network. Peer-to-peer networks are designed primarily for small to medium local area networks. Nearly all modern desktop operating systems, such as Macintosh OSX, Linux, and Windows, can function as peer-to-peer network operating systems.

Fig 2: Peer-to-peer network

Advantages of a peer-to-peer network

  • Less initial expense - No need for a dedicated server.
  • Setup - An operating system (such as Windows XP) already in place may only need to be reconfigured for peer-to-peer operations.

Disadvantages of a peer-to-peer network

  • Decentralized - No central repository for files and applications.
  • Security - Does not provide the security available on a client/server network.

2. Client/Server

Client/server network operating systems allow the network to centralize functions and applications in one or more dedicated file servers. The file servers become the heart of the system, providing access to resources and providing security. Individual workstations (clients) have access to the resources available on the file servers. The network operating system provides the mechanism to integrate all the components of the network and allow multiple users to simultaneously share the same resources irrespective of physical location. UNIX/Linux and the Microsoft family of Windows Servers are examples of client/server network operating systems.

Fig 3: Client/server network

Advantages of a client/server network

  • Centralized - Resources and data security are controlled through the server.
  • Scalability - Any or all elements can be replaced individually as needs increase.
  • Flexibility - New technology can be easily integrated into system.
  • Interoperability - All components (client/network/server) work together.
  • Accessibility - Server can be accessed remotely and across multiple platforms.

Disadvantages of a client/server network

  • Expense - Requires initial investment in dedicated server.
  • Maintenance - Large networks will require a staff to ensure efficient operation.
  • Dependence - When server goes down, operations will cease across the network.

Applications of Network Operating System

Network Operating Systems can be embedded in a router or hardware firewall that operates the functions in the network layer (layer 3) of the OSI model. Examples:JUNOS, used in routers and switches from Juniper Networks,Cisco IOS.TiMOS, used in routers from Alcatel-LucentVRP (Versatile Routing Platform), used in routers from HuaweiRouterOS, software which turns a PC or MikroTik hardware into a dedicated routerZyNOS, used in network devices made by ZyXEL.Embedded_linux, in distributions like Openwrt and DD-WRT which run on low-cost platforms such as the Linksys Linksys_WRT54G.

Difference Between NOS and DOS

Parameters / Multiprocessor / Multi Computer / NOS
Degree of transparency / Very high / High / Low
Same OS on each and every node / Yes / Yes / No
No. of copies of OS / 1 / N / N
Mode of communication / Shared memory / Message passing / Files
Resource Management / Global and centralized / Global but distributed / Kept per node
Scalability / No / Moderate / Very high
Openness / Closed / Closed / Open

Conclusion: Hence we have studied Distributed Operating Systems and Network Operating Systems.