A) (I) A Distributed Computer System Consists of Multiple Software Components That Are On
A) (I) A Distributed Computer System Consists of Multiple Software Components That Are On
A) (I) A Distributed Computer System Consists of Multiple Software Components That Are On
A) (i)A distributed computer system consists of multiple software components that are on multiple computers, but run as a single system. The computers that are in a distributed system can be physically close together and connected by a local network, or they can be geographically distant and connected by a wide area network. A distributed system can consist of any number of possible configurations, such as mainframes, personal computers, workstations, minicomputers, and so on. The goal of distributed computing is to make such a network work as a single computer. (ii)A distributed operating system is the logical aggregation of operating system software over a collection of independent, networked, communicating, and spatially disseminated computational nodes,Individual system nodes each hold a discrete software subset of the global aggregate operating system. Each node-level software subset is a composition of two distinct provisioners of services. The first is a ubiquitous minimal kernel, or microkernel, situated directly above each nodes hardware. The microkernel provides only the necessary mechanisms for a node's functionality. Second is a higher-level collection of system management components, providing all necessary policies for a node's individual and collaborative activities. This collection of management components exists immediately above the microkernel, and below any user applications or APIs that might reside at higher levels. These two entities, the microkernel and the management components collection, work together. They support the global systems goal of seamlessly integrating all networkconnected resources and processing functionality into an efficient, available, and unified system. This seamless integration of individual nodes into a global system is referred to as transparency, or single system image; describing the illusion provided to users of the global systems appearance as a singular and local computational entity. b) Processor-Pool Model
T e r m in a ls
C o m m u n ic a tio n n e tw o rk
R un s erver
...
P o o l o f p ro ce sso rs.
F ile serv er
Processor-Pool Model General Characteristic: The model is based on the observation that most of the time a user does not need any computer power but once in a while he may need a very large amount of computing power for a short time. The processors are pooled together to be shared by the users as needed. The pool of processors consists of a large number of microcomputers and minicomputers attached to the network. Each processor in the pool has its own memory to load and run a system program or an application program. The processors in the pool have not terminals attached directly to them, and users access the system from terminals that are attached to the network via special devices.
A special server (run server) manages and allocates the processors in the pool to different
users on a demand basis. Appropriate number of processors are temporary assigned to users job by the run server. When the computation is completed, the processors are returned to the pool. Advantages of Processor-Pool Model: A user logs on to the system as a whole. It allows better utilization of available processing power. It provides greater flexibility than the workstation-server model. It is unsuitable for high-performance interactive applications. Amoeba. Plan 9. Cambridge Distributed Computing System.
C o m m u n ic a t io n n e tw o rk
W o r k s ta tio n
M in ic o m p u te r used as d a ta b a s e server
. . .
M in ic o m p u te r used as p r in t s e rv e r
System consists of a few minicomputers and several workstations (diskless or diskful) interconnected by a communication network. In addition to the workstation, there are specialized machines running server processes (servers) for managing and providing access to shared resources. Each minicomputer is used as a server machine to provide one or more types of service:
implementing the file system; database service; print service; other types of service.
User logs onto a workstation called his home workstation. home workstation.
Normal computation activities required by the users processes are performed at the users Requests for services provided by special servers are sent to a server providing that type of service that performs the users requested activity and returns of requested processing to the users workstation. Users processes need not be migrated to the server machines for getting the work done by those machines. Advantages of the Workstation-Server Model:
It is much cheaper to use a few minicomputers equipped with large, fast disks that are accessed over the network than a large number of diskful workstations with each workstation having a small slow disk. Diskless workstations are also preferred to diskful workstations from a system maintenance point of view. Users have flexibility to use any workstation and access the files in the same manner irrespective of which workstation the user is currently logged on. This model does not need a process migration facility, which is difficult to implement. A user has guaranteed response time because workstations are not used for executing remote processes (the model does not utilize the capability of idle workstations). c)Discuss the two modification propagation techniques used in file systems:
2a) An open system is a system which continuously interacts with its environment. The interaction can take the form of information, energy, or material transfers into or out of the system boundary, depending on the discipline which defines the concept (see below). An open system should be contrasted with the concept of an isolated system which exchanges neither energy, matter, nor information with its environment. b) Layers on OSI Model. The OSI, or Open System Interconnection, model defines a networking framework for implementing protocols in seven layers. Control is passed from one layer to the next, starting at the application layer in one station, and proceeding to the bottom layer, over the channel to the next station and back up the hierarchy. Application (Layer 7) This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e-mail, and other network software services. Telnet and FTP are applications that exist entirely in the application level. Tiered application architectures are part of this layer. Presentation (Layer 6) This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer. Session (Layer 5) This layer establishes, manages and terminates connections between applications. The session layer sets up, coordinates, and terminates conversations, exchanges, and dialogues between the applications at each end. It deals with session and connection coordination. Transport (Layer 4) This layer provides transparent transfer of data between end systems, or hosts, and is responsible for end-to-end error recovery and flow control. It ensures complete data transfer. Network (Layer 3) This layer provides switching and routing technologies, creating logical paths, known as virtual circuits, for transmitting data from node to node. Routing and forwarding are functions of this layer, as well as addressing, internetworking, error handling, congestion control and packet sequencing. Data Link (Layer 2) At this layer, data packets are encoded and decoded into bits. It furnishes transmission protocol knowledge and management and handles errors in the physical layer, flow control and frame synchronization. The data link layer is divided into two sub layers: The Media Access Control (MAC) layer and the Logical Link Control (LLC) layer. The MAC sub layer controls how a
computer on the network gains access to the data and permission to transmit it. The LLC layer controls frame synchronization, flow control and error checking. Physical (Layer 1) This layer conveys the bit stream - electrical impulse, light or radio signal -- through the network at the electrical and mechanical level. It provides the hardware means of sending and receiving data on a carrier, including defining cables, cards and physical aspects. Fast Ethernet, RS232, and ATM are protocols with physical layer components. c)Connection-oriented Requires a session connection (analogous to a phone call) be established before any data can be sent. This method is often called a "reliable" network service. It can guarantee that data will arrive in the same order. Connection-oriented services set up virtual links between end systems through a network, as shown in Figure 1. Note that the packet on the left is assigned the virtual circuit number 01. As it moves through the network, routers quickly send it through virtual circuit 01.Connectionless Does not require a session connection between sender and receiver. The sender simply starts sending packets (called datagrams) to the destination. This service does not have the reliability of the connection-oriented method, but it is useful for periodic burst transfers. Neither system must maintain state information for the systems that they send transmission to or receive transmission from. A connectionless network provides minimal services. d) 1. Access Transparency: Clients should be unaware of the distribution of the files. The files could be present on a totally different set of servers which are physically distant apart and a single set of operations should be provided to access these remote as well as the local files. Applications written for the local file should be able to be executed even for the remote files. The examples illustrating this property are the File system in Network File System (NFS), SQL queries, and Navigation of the web. 2. Location Transparency: Clients should see a uniform file name space. Files or groups of files may be relocated without changing their pathnames. A location transparent name contains no information about the named objects physical location. This property is important to support the movement of the resources and the availability of services. The location and access transparencies together are sometimes referred as Network transparency. The examples are File system in NFS and the pages of the web. 3. Concurrency Transparency: Users and Applications should be able to access shared data or objects without interference between each other. This requires very complex mechanisms in a distributed system, since there exists true concurrency rather than the simulated concurrency of a central system. The shared objects are accessed simultaneously. The concurrency control and its implementation is a hard task. The examples are NFS, Automatic Teller machine (ATM) network. CSE 6306 Advanced Operating Systems 4 4. Replication Transparency: This kind of transparency should be mainly incorporated for the distributed file systems, which replicate the data at two or more sites for more reliability. The client generally should not be aware that a replicated copy of the data exists. The clients should also expect operations to return only one set of values. The examples are Distributed DBMS and Mirroring of Web pages.
5. Failure Transparency: [4] Enables the concealment of faults, allowing user and application programs to complete their tasks despite the failure of hardware or software components. Fault tolerance is provided by the mechanisms that relate to access transparency. The distributed system are more prone to failures as any of the component may fail which may lead to degraded service or the total absence of that service. As the intricacies are hidden the distinction between a failed and a slow running process is difficult. Examples are Database Management Systems. 6. Migration Transparency: This transparency allows the user to be unaware of the movement of information or processes within a system without affecting the operations of the users and the applications that are running. This mechanism allows for the load balancing of any particular client, which might be overloaded. The systems that implement this transparency are NFS and Web pages. 7. Performance Transparency: Allows the system to be reconfigured to improve the performance as the load varies. 8. Scaling Transparency: A system should be able to grow without affecting application algorithms. Graceful growth and evolution is an important requirement for most enterprises. A system should also be capable of scaling down to small environments where required, and be space and/or time efficient as required. The best-distributed system example implementing this transparency is the World Wide Web. 3a)(i)Methods of sharing with respect to Message Passing As we know that " process" is a program in execution. When two computers of a distributed system are communicating with each other, we mean that two processes, one running on each computer, are in communication with each other. A distributed operating system needs to provide interprocess communication (IPC) mechanisms to facilitate such communication activities. A message passing system is a subsystem of the distributed operating system which shields the details of complex network protocols from the programmer. It enables processes to communicate by exchanging messages and allows programs to be written by using simple communication primitives such as send and receive. Inter process communication basically requires information sharing among two or more processes. The two basic methods for information sharing are as follows: Original Sharing or Shared Data approach
Message is placed in a common memory area that is accessible to all processes. This is not possible in a distributed system, unless it is a distributed shared memory system (DSM).
Message is physically copied from senders address space to the receivers address space. This is the basic IPC mechanism in distributed systems.
A message passing system should be simple and easy to use. It should be possible to communicate with old and new applications, with different modules without the need to worry about the system and network aspects. Uniform Semantics In a distributed system, a message-passing system may be used for the following two types of interprocess communication:
local communication, in which the communicating processes are on the same node; remote communication, in which the communicating processes are on different nodes. Semantics of remote communication should be as close as possible to those of local communications. This is an important requirement for ensuring that the message passing is easy to use. Efficiency An IPC protocol of a message-passing system can be made efficient by reducing the number of message exchanges, as far as practicable, during the communication process. Some optimizations normally adopted for efficiency include the following: avoiding the costs of establishing and terminating connections between the same pair of processes for each and every message exchange between them; minimizing the costs of maintaining the connections; piggybacking of acknowledgement of previous messages with the next message during a connection between a sender and a receiver that involves several message exchanges. Correctness Correctness is a feature related to IPC protocols for group communication. Issues related to correctness are as follows: atomicity; ordered delivery; survivability. Atomicity ensures that every message sent to a group of receivers will be delivered to either all of them or none of them. Ordered delivery ensures that messages arrive to all receivers in an order acceptable to the application. Survivability guarantees that messages will be correctly delivered despite partial failures of processes, machines, or communication links. Other features: reliability; flexibility; security; portability.
b)i Forms of buffering as one of the methods used in designing an IPC: Null Buffer (No Buffering) In this case, there is no place to temporarily store the message. Hence one of the following implementation strategies may be used: The message remains in the sender processs address space and the execution of the send is delayed until the receiver executes the corresponding receive. The message is simply discarded and the time-out mechanism is used to resend the message after a timeout period. The sender may have to try several times before succeeding. Single-Message Buffer In single-message buffer strategy, a buffer having a capacity to store a single message is used on the receivers node. This strategy is usually used for synchronous communication, an application module may have at most one message outstanding at a time. Unbounded-Capacity Buffer In the asynchronous mode of communication, since a sender does not wait for the receiver to be ready, there may be several pending messages that have not yet been accepted by the receiver. Therefore, an unbounded-capacity message-buffer that can store all unreceived messages is needed to support asynchronous communication with the assurance that all the messages sent to the receiver will be delivered. Finite-Bound Buffer Unbounded capacity of a buffer is practically impossible. Therefore, in practice, systems using asynchronous mode of communication use finite-bound buffers, also known as multiplemessage buffers. In this case message is first copied from the sending processs memory into the receiving processs mailbox and then copied from the mailbox to the receivers memory when the receiver calls for the message. When the buffer has finite bounds, a strategy is also needed for handling the problem of a possible buffer overflow. The buffer overflow problem can be dealt with in one of the following two ways: Unsuccessful communication. In this method, message transfers simply fail, whenever there is no more buffer space and an error is returned. Flow-controlled communication. The second method is to use flow control, which means that the sender is blocked until the receiver accepts some messages, thus creating space in the buffer for new messages. This method introduces a synchronization between the sender and the receiver and may result in unexpected deadlocks. Moreover, due to the synchronization imposed, the asynchronous send does not operate in the truly asynchronous mode for all send commands. (ii) Addressing types supported by a message passing system Explicit addressing. The process with which communication is desired is explicitly named as a parameter in the communication primitive used. Implicit addressing. The process willing to communicate does not explicitly name a process for communication (the sender names a server instead of a process). This type of process addressing is also known as functional addressing.
4a(i) Importance of resource manager in information which resource management : Resource Managers need to know who is doing what, when and for how long. Managing resources effectively not only ensures the right person is on the right project but that the business is maximising any revenue earning potential whilst avoiding unnecessary and costly external consultants or contractors. (ii)Desirable features of a good global scheduling algorithm 4b) 3 broad classifications of techniques and methodologies into which resource management is divided Resource management refers to managing the resources of a company, project or department. This can mean many different things. This can mean managing resources such as finances, human skills and information technology or in a larger corporation, managing the resources over multiple departments and projects. Resource management is also commonly known as human resource management, which covers just one type of resource management. Resource Leveling
Resource leveling is a technique of resource management which aims to find underused people or resources within a company and put them to work. Resource leveling looks at all resources, people and equipment to determine if some of those assets are being underused or could be used more effectively elsewhere. An example would be a manager of one department who could also oversee another department, or a person in the accounting department who would actually be very beneficial in the IT department.
Traditional Approach
The traditional approach to resource management is a concept that has been around for centuries and has maintained popularity because of its success. The traditional approach to resource management is a five-step process which includes the initiation stage, planning or design stage, execution or production stage, monitoring and controlling and the completion stage of the process. Not all processes of resource management will hit every step of this process. This process is most commonly used when introducing or creating a new product or service, but can also be used to prioritize and help integrate a new resource into a company such as a new computer system.
Another concept of resource management is the use of the resource limited schedule. This technique is basically creating a road map of a project and pinpointing resources along the way. For example, each person or employee involved in the project will be pinpointed along the way and all resources are accounted for along the road map. The schedule will also have a start date and end date, and corresponding resource information.
The resource breakdown structure technique for resource management is used essentially as a list of most important resources. In the beginning of the project, a supervisor or any team member for that matter, will list out all resources in order of their importance, their abundance and their uses.
5a) Desirable features of a good message passing system Uniform Semantics In a distributed system, a message-passing system may be used for the following two types of interprocess communication: local communication, in which the communicating processes are on the same node; remote communication, in which the communicating processes are on different nodes. Semantics of remote communication should be as close as possible to those of local communications. This is an important requirement for ensuring that the message passing is easy to use. Correctness Correctness is a feature related to IPC protocols for group communication. Issues related to correctness are as follows: atomicity; ordered delivery; survivability. Other features: Reliability; this is the ability for the message-passing system to deliver its desired qualities. b)Synchronization in resource management (1) best effort resource management, and (2) reservation-based resource management with differentiation of service classes. Under these two resource management environments, our goal is to analyze and compare the design, implementation, and performance of synchronization protocols and services. Our approach to accomplish this complex analysis is inductive, because we select a representative protocol from each group, and consider an adaptive synchronization protocol on top of the best effort resource management and a reservation-based synchronization protocol on top of the reservation-based resource management. We believe that both protocols include a rich set of known synchronization algorithms and mechanisms, hence our resulting analysis and comparison show: (1) trade-offs/difference in design complexity of the synchronization protocols (space and time), (2) trade-offs/difference in implementation complexity of the synchronization protocols (space and time), and (3) magnitude of performance changes.
Middle ware systems Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact. This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are most often used to support and simplify complex distributed applications. It includes web servers, application servers, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and serviceoriented architecture. Middleware sits "in the middle" between application software that may be working on different operating systems. It is similar to the middle layer of a three-tier single system architecture, except that it is stretched across multiple systems or applications. Examples include EAI software, telecommunications software, transaction monitors, and messaging-and-queueing software. The distinction between operating system and middleware functionality is, to some extent, arbitrary. While core kernel functionality can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. A typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system. In simulation technology, middleware is generally used in the context of the high level architecture (HLA) that applies to many distributed simulations. It is a layer of software that lies between the application code and the run-time infrastructure. Middleware generally consists of a library of functions, and enables a number of applicationssimulations or federates in HLA terminologyto page these functions from the common library rather than re-create them for each application. Uses of middleware Middleware services provide a more functional set of application programming interfaces to allow an application to:
Locate transparently across the network, thus providing interaction with another service or application Filter data to make them friendly usable or public via anonymization process for privacy protection (for example) Be independent from network services Be reliable and always available Add complementary attributes like semantics
when compared to the operating system and network services. Middleware offers some unique technological advantages for business and industry. For example, traditional database systems are usually deployed in closed environments where users access the system only via a restricted network or intranet (e.g., an enterprises internal network). With the phenomenal growth of the World Wide Web, users can access virtually any database for which they have proper access rights from anywhere in the world. Middleware addresses the problem of varying levels of interoperability among different database structures. Middleware
facilitates transparent access to legacy database management systems (DBMSs) or applications via a web server without regard to database-specific characteristics. Businesses frequently use middleware applications to link information from departmental databases, such as payroll, sales, and accounting, or databases housed in multiple geographic locations. In the highly competitive healthcare community, laboratories make extensive use of middleware applications for data mining, laboratory information system (LIS) backup, and to combine systems during hospital mergers. Middleware helps bridge the gap between separate LISs in a newly formed healthcare network following a hospital buyout. Wireless networking developers can use middleware to meet the challenges associated with wireless sensor network (WSN), or WSN technologies. Implementing a middleware application allows WSN developers to integrate operating systems and hardware with the wide variety of various applications that are currently available. Middleware can help software developers avoid having to write application programming interfaces (API) for every control program, by serving as an independent programming interface for their applications. For Future Internet network operation through traffic monitoring in multidomain scenarios, using mediator tools (middleware) is a powerful help since they allow operators, searchers and service providers to supervise Quality of service and analyse eventual failures in telecommunication services. Finally, e-commerce uses middleware to assist in handling rapid and secure transactions over many different types of computer environments. In short, middleware has become a critical element across a broad range of industries, thanks to its ability to bring together resources across dissimilar networks or computing platforms. Types of middleware Message Oriented Middleware Message Oriented Middleware (MOM) is middleware where transactions or event notifications are delivered between disparate systems or components by way of messages, often via an enterprise messaging system. With MOM, messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing. Enterprise messaging system An enterprise messaging system is a type of middleware that facilitates message passing between disparate systems or components in standard formats, often using XML, SOAP or web services. Message broker Part of an enterprise messaging system, message broker software may queue, duplicate, translate and deliver messages to disparate systems or components in a messaging system. Enterprise Service Bus Enterprise Service Bus (ESB) is defined by the Burton Group as "some type of integration middleware product that supports both MOM and Web services". Content-Centric Middleware Content-centric middleware provides a simple provide/consume abstraction through which applications can issue requests for uniquely identified content, without worrying about where or how it is obtained. Juno is one example, which allows applications to generate content requests
associated with high-level delivery requirements. The middleware then adapts the underlying delivery to access the content from the source(s) that are best suited to matching the requirements. This is therefore similar to Publish/subscribe middleware, as well as the Contentcentric networking paradigm. Hurwitz classification system Judith Hurwitz created a classification system for middleware in her article Sorting Out Middleware. Remote Procedure Call With Remote Procedure Call middleware, a client makes calls to procedures running on remote systems. Can be asynchronous or synchronous. Object Request Broker With Object Request Broker middleware, it is possible for applications to send objects and request services in an object-oriented system. SQL-oriented Data Access SQL-oriented Data Access is middleware between applications and database servers. Embedded middleware Embedded middleware provides communication services and integration interface software/firmware that operates between embedded applications and the real time op.