 Hello everyone, myself, M.M. Hant working in computer science and engineering department as an assistant professor in Valchin Institute of Technology, Swalapur. Today we are discussing the topic issues in designing distributed operating system. Learning outcomes. At the end of this session student will be able to identify different issues in designing distributed operating system such as transparency, reliability, heterogeneity in distributed systems and also describe the advantages of distributed operating system. Introduction. Distributed operating system is a model where distributed applications are running on multiple computers linked by communications. A distributed operating system is an extension of the network operating system. Actually distributed system can be defined as interconnection of different computers by using communication network for sharing the resources. This is a diagram of distributed system where site one is one kind of network site two is another kind of network, site three is third kind of network. All the networks are interconnected to each other by using communication network or computer network. Here any resource can be shared by different computers from any location. So different computers are interconnected with each other through this communication network for every computer can share the resources. Issues in designing distributed operating system. The following are the issues in designing distributed operating system. Transparency, reliability, flexibility, performance, scalability, heterogeneity, security, etc. Now we are going to see each and every issue in detail. Transparency. The following are the different types of transparency. Just like access transparency, location transparency, replication transparency, failure transparency, migration transparency, concurrency transparency, performance transparency and scaling transparency. Now in briefly we are going to see each and every type of this transparency. The first one is access transparency. User unable to know whether a resource is local or remote. This is achieved by global naming for resources. Location transparency. There are two main aspects for this location transparency. The first is the name transparency where name of the resource should not reveal any hint of the physical location of the resource. Then one user mobility. A resource should be accessed by the same name from different nodes of the system. Both require a wide global resource naming facility. Replication transparency. Existence of multiple copies of a resource and replication activity is hidden. Replica management issues. Failure transparency. Masking the user from partial failures in the system. Complete failure transparency is not achieved in distributed operating system. Due to the communication link failure, very slow and expensive to design complete failure transparent in distributed computing system. So complete failure is not possible in distributed computing system. Migration transparency. Migration of object is handled by the system in a user transparent manner. There are three issues related to the migration transparency. The first is migration decisions where we have to decide which process we are going to migrate and where it should be migrated, which is the source node, which is the destination node. No change in the name of the object. We cannot change the name of the migrated process or object. IPC means inter-process communication for mitigating process. So we have to think about the execution of that migrating process on the destination node. Next is concurrency transparency. Each user has the feel that he or she is the sole user of the system and no other user exists. For this resource sharing mechanism should have four properties event ordering, mutual exclusion, no starvation, no deadlock. Actually mutual exclusion means the two processes are accessing the same resource at a time. So this situation is called as a mutual exclusion. mutual transparency. System automatically reconfigured to improve the performance as load varies dynamically. Requires intelligent resource allocation and process migration. Scaling transparency. System able to expand without disturbing the activity of the users. Requires use of open system architecture and scalable algorithms. So we can add any number of clients, any number of servers in the distributed system. So we can add any number of resources in this distributed system. Next issue is reliability. So fault avoidance, fault tolerance and fault detection recovery are the part of this reliability. In fault avoidance, design the components of system in a way to minimize fault occurrence. Use higher reliability components such as hardware components. So in designing distributed operating system we have to use the high level components or high quality components, high reliability components for this fault avoidance, fault tolerance. The ability of system to continue functioning even if of partial failures, for this even if there is partial failure but the execution that process goes on that node successfully. So for these redundancy techniques and distributed control is used. For detection and recovery, mechanisms to determine the occurrence of a failure and correct the system to an acceptable state for continued operation. Techniques for this are atomic transaction, either executes all or none. Statelier server, here the execution or the transaction or the request will be depends on the previous transaction or history of the transactions. So statelier server will not depends on the history of the transactions of the server. Acknowledgements and timeout based transmission, retransmission of messages. Here acknowledgement can be sent from the sender to the receiver or receiver to sender. Timeout means what? There is no execution in this period that is called timeout based retransmission of messages. Flexibility, ease of modification and ease of enhancement. Ease of modification means it should be easy to incorporate changes in the system with minimum interrupt to users. Ease of enhancement means it should be easy to add new services and functionalities. Monolithic kernel and micro kernel are supporting to this flexibility. In distributed operating system, microolithic kernel is preferred due to its flexibility neglecting overriding message passing performance. Performance should be better than or at least equal to that single-processor system. Design principles make the job of batch if possible or use the cache winner possible or minimize copying of the data or minimize the network traffic or fine-grained parallelism for multiprocessing. Ease all bits are increasing the performance of distributed system. Scalability, avoid centralized entities means avoid the centralized entities onto the system. Avoid centralized algorithms. Don't write the centralized algorithms. Perform most operations of the client operations. So whatever the executions, whatever the object interaction, whatever the algorithm you have to execute at the client workstations. So you can add any number of clients, any number of servers, any number of resources in scalability. Pause the video and write the answer. What are the heterogeneous issues in distributed operating system? Heterogeneity issues are interconnected set of dissimilar hardware or software components. Some form of data translation necessary for interaction between incompatible nodes. This software component is reduced by using intermediate standard data format. So different systems, different nodes in the network or in distributed system, every node having different operating system, different hardware configuration, different software configurations. So every system is having different RAM capacity, hardware capacities, processor. So it will be different hardware configuration even if this is the part of the heterogeneity. Also different system is having the different data translation mechanisms. Also some systems have a standard data format. So all are these are the issues of related to the heterogeneity, security. More difficulty in distributed system than a satellite system. So need three requirements. Sender should know that message was received by the authenticated sender, receiver. Receiver should know that the message was sent by valid sender. Sender and receiver should be guaranteed about the confidentiality of messages. Means we have to check that authenticated sender, authenticated receiver and confidentiality of message between sender and receiver. We have to write some encryption technique, decryption technique. We have to write some cryptography techniques, the practical method for dealing with the security. Here we have to provide the security to the message data, advantages of distributed operating system. Give more performance than single system. So here more processing power is available. That's why we are getting the more performance. Heavy jobs can be executed in this distributed operating system. Here reliability, if one PC in distributed system malfunction or corrupt in the other node or PC will take the care of that execution of task. Once node get filled for executing that replica is available on another machine or process migration mechanism are available on another machine. So that job will be executed on another node. More resources can be added easily. We can add any number of resources. Resources like printers can be shared on multiple PCs. So sharing of resources by the multiple computers in this distributed operating system. A distributed system may have more than total computing power than a mainframe. So here huge amount of processing power is available for executing heavy jobs. These are the references. Thank you.