Pradeep K. Sinha-Distributed Operating Systems_ Concepts and Design-P K Sinha - Ebook download as PDF File .pdf), Text File .txt) or read book online. Distributed Operating Issues in Designing a Distributed Operating System Distributed operating systems: concepts and design / Pradeep K. Sinha Sinha, Pradeep K. (Pradeep Kumar) 1 PDF (xix, pages): illustrations. Distributed Operating Systems:Concepts and Design . Pradeep K. Sinha PDF . This chapter contains sections titled: Introduction. Desirable Features of a.
|Language:||English, Spanish, Dutch|
|Genre:||Politics & Laws|
|Distribution:||Free* [*Register to download]|
Title. Distributed operating systems concepts and design. Author(S) Pradeep K. Sinha (Author). Publication. Data. New Delhi: PHI Learning Private Limited. download Distributed Operating Systems: Concepts And Design by Pradeep K. Sinha PDF Online. ISBN from PHI Learning. Download Free Sample. Pradeep K. Sinha. · Rating details · ratings · 16 reviews. Distributed Operating Systems will provide engineers, educators, and researchers with an.
Sinha, Wiley, , , , pages. Distributed Operating Systems will.. Free download as PDF File. Distributed Operating Systems:Concepts and Design. Distributed Operating Systems will provide engineers,. Pradeep K. Pradeep K.. A Social Media Story storified by clavruccoloji. Everyday low prices and free delivery on.. This is a non-mathematical introduction to..
Earlier, he worked with.. Of the vast amount of research literature available in this field, effort was made to select and give more emphasis to those concepts that are of practical value in real systems, rather than those that are only of theoretical interest.
Each chapter contains carefully designed exercises that are meant to test the understanding of the materials in the text and to stimulate investigation.
An extensive set of references and a list of selected pointers to on-line bibliographies on the Internet have been provided at the end of each chapter to allow interested readers to explore more advanced materials dealing with finer details about each chapter's topics.
Throughout the book, the style of presentation used is motivational and explanatory in nature. Chapter 1 provides an introduction to distributed computing systems, distributed operating systems, and the issues involved in designing distributed operating systems.
It also provides a brief introduction to Distributed Computing Environment DCE , whose components are described as case studies of key technologies in several chapters of the book.
Chapter 2 presents a brief introduction to computer networks and describes the current state of the art in networking technology.
Chapters 3, 4, and 5 describe the various communication techniques used for exchange of information among the processes of a distributed computing system. In particular, these three chapters deal with the issues involved in the design of interprocess communication mechanisms and the commonly used practical approaches to handle these issues. Chapter 3 deals with the message-passing mechanism. Chapter 4 deals with the remote procedure call mechanism, and Chapter 5 deals with the distributed sharedmemory mechanism for interprocess communication.
Synchronization issues to be dealt with in a distributed system, such as clock synchronization, mutual exclusion, deadlock, and election algorithms, are discussed in Chapter 6. Chapter 7 presents a discussion of the commonly used approaches for resource management in distributed systems. Chapter 8 deals with the process management issues. In particular, it presents a discussion of process migration mechanisms and mechanisms to support threads facility.
A discussion of the issues and the approaches for designing a file system for a distributed system is given in Chapter 9. Chapter 10 deals with the issues and mechanisms for naming and locating objects in distributed systems.
The security issues and security mechanisms for distributed systems are discussed in Chapter Finally, Chapter 12 contains case studies of four existing distributed operating systems to relate the concepts discussed in the preceding chapters with real distributed operating systems. Audience The book is suitable for anyone who needs a concise and informal introduction to distributed operating systems.
It can serve as an ideal textbook for a course on distributed operating systems. It can also be used for advanced undergraduate and postgraduate courses on operating systems, which often need to cover the fundamental concepts and design issues of distributed operating systems in addition to those of centralized operating systems.
The book can also be used as a self-study text by system managers, professional software engineers, computer scientists, and researchers, who either need to learn about distributed operating systems or are involved in the design and development of distributed operating systems or distributed application systems.
Advanced researchers will also find the rich set of references and the pointers to online bibliographies on the Internet provided at the end of each chapter very helpful in probing further on any particular topic.
Although full care has been taken to make the subject matter simple and easy to understand by a wide range of readers, I have assumed that the reader has a knowledge of elementary computer architecture and is familar with basic centralized operating systems concepts discussed in standard operating systems textbooks.
About Pointers to Bibliographies on the Internet In addition to a good number of references provided in the end-of-chapter bibliographies, I have also provided lists of selected pointers to the on-line bibliographies of interest on the Internet. The purpose of these pointers is twofold: The end-of-chapter bibliographies contain only selected references. A large number of references on the topics covered in a chapter are not included in the chapter's bibliography due to space limitations.
The pointers may be used by interested readers to locate such references. The end-of-chapter bibliographies contain references to only already published documents. Distributed operating systems is currently an active area of research, and a large volume of new documents are published almost every month. Since the on-line bibliographies on the Internet are updated from time to time, interested readers may use the pointers to locate those documents that are published after the publication of this book.
Thus, in addition to the information contained in it, the book also provides a way for its readers to keep track of on-going research activities on the topics covered and related topics.
Note that the end-of-chapter lists of pointers to on-line bibliographies are by no means exhaustive. I have provided pointers for only those on-line bibliographies that I knew about and I felt would be useful in easily locating references of interest. Moreover, it is often the case that there are many mirrors for an on-line bibliography the same bilbiography exists on multiple sites. For such cases, I have provided only one pointer for a bibliography.
Also note that most of the on-line bibliographies are not about on-line documents, but about on-line references to documents. A vast majority of documents referenced in the online bibliographies only exist in hard-copy form. However, a few of the referenced documents do have an on-line version on the Internet.
For such documents, the bibliographies normally contain URLs Uniform Resource Locators pointing to the online version of the document. If you find a reference containing such a URL, just follow the URL to access the on-line version of the corresponding document.
Acknowledgments Many people have contributed to this book. Hirohiko Nakano. Kyu Sung Park. Denise Phillip. Without this opportunity. I must thank all the researchers who have contributed to the fields of distributed computing systems and distributed operating systems because the book is based on their research results.
Hyo Ashishara. Naoki Utsunomiya. Lively discussions with the members of the Galaxy distributed operating system project. Several anonymous reviewers of my draft manuscript provided invaluable feedback concerning organization. Senior xv. Without the efforts of all the people who collected references and made them available on the Internet. Xiaohua Jia. To start with. Mamoru Maekawa. Without her loving support and understanding. Pradeep K. I thank my wife. I also thank her for her continuous patience and sacrifices during the entire period of this long project.
I would never have succeeded in completing this project. If any processor writes. In these systems. Computer architectures consisting of interconnected. Tightly coupled systems. Loosely coupled systems.
Over the past two decades. The net result of the advancements in these two technologies is that the priceperformance ratio has now changed to favor the use of interconnected.
If a processor writes the value 1. In this book. In contrast to the tightly coupled systems. This is not the case with distributed computing systems that are more freely expandable and can have an almost unlimited number of processors.
These computers were run from a console by an operator and were not accessible to ordinary users. For a particular processor. Several new concepts were introduced in the s and s to increase CPU utilization of these computers. In a time-sharing system. Notable among these are batching together of jobs with similar needs before processing them. The job was then executed and the result. Early time-sharing systems had several dumb terminals attached to the main computer.
Using these terminals. Batching similar jobs improved CPU utilization quite a bit because now the operator had to change the execution environment only when a new batch of jobs had to be executed and not before starting the execution of every job. The programmers would write their programs and submit them to the computer center on some media. Before processing a job. These terminals were placed in a room different from the main computer room. Automatic job sequencing with the use of control cards to define the beginning and end of a job improved CPU utilization by eliminating the need for human job sequencing.
The job setup time was a real problem in early computers and wasted most of the valuable central processing unit CPU time.
It was not until the early s that computers started to use the concept of time sharing to overcome this hurdle. Development and debugging of programs are examples of interactive jobs. There were very few computers and were available only in research laboratories of universities and industries. The LAN technology allowed several computers located within a building or a campus to be interconnected in such a way that these machines could exchange information with each other at data rates of about 10 megabits per second Mbps.
These workstations were then used as terminals in the time-sharing systems. Although the idea of time sharing was demonstrated as early as The data rates of networks continued to improve gradually in the s.
On the other hand. WAN technology allowed computers located far from each other may be in different cities or countries or continents to be interconnected in such a way that these machines could exchange information with each other at data rates of about 56 kilobits per second Kbps.
The advent of time-sharing systems was the first step toward distributed computing systems because it provided us with two important concepts used in distributed computing systems-the sharing of computer resources simultaneously by many users and the accessing of computers from a place different from the main computer room. Parallel advancements in hardware technology allowed reduction in the size and increase in the processing speed of computers.
In these time-sharing systems.
Advancements in microprocessor technology in the s allowed the dumb terminals to be replaced by intelligent terminals so that the concepts of off-line processing and time sharing could be combined to have the advantages of both concepts in a single system. Centralized time-sharing systems described above had a limitation in that the terminals could not be placed very far from the main computer room since ordinary cables were used to connect the terminals to the main computer.
Microprocessor technology continued to advance rapidly. These systems were called minicomputers. Department of Defense in Recently early s there has been another major advancement in networking technology-the ATM asynchronous. For example.
Shared resources such as files. Although the field is still immature. They are briefly described below. It will make very high speed networking possible. The early ARPAnet is an example of a distributed computing system based on the minicomputer model.
For this. These research activities have provided us with the basic ideas of designing distributed operating systems. This book deals with these basic concepts and their use in the design and implementation of distributed operating systems. The minicomputer model may be used when resource sharing such as sharing of information databases of different types.
The Al'M technology is an emerging technology that is still not very well established. These models can be broadly classified into five categories-minicomputer.
The availability of such high-bandwidth networks will allow future distributed computing systems to support a completely new class of distributed applications. The merging of computer and networking technologies gave birth to distributed computing systems in the late s. These systems are based on already established basic concepts. Although the hardware issues of building such systems were fairly well understood. Each minicomputer usually has multiple users simultaneously logged on to it.
The network allows a user to access remote resources that are available on some machine other than the one on to which the user is currently logged.
As shown in Figure 1. Several of these concepts are equally applicable to the design of applications for distributed computing systems. Each user is logged on to one specific minicomputer. This model is not so simple to implement as it might appear at first sight because several issues must be resolved. A company's office or a university department may have several workstations scattered throughout a building or campus.
These issues are [Tanenbaum ] as follows: It has been often found that in such an environment. In this model.
When the system finds that the user's workstation does not have sufficient processing power for executing the processes of the submitted jobs efficiently.
The third approach is to migrate the remote process back to its home workstation. The second approach is to kill the remote process. This method is difficult to implement because it requires the system to support preemptive process migration facility. This method is easy to implement. Three commonly used approaches for handling the third issue are as follows: How does the system find an idle workstation? The first approach is to allow the remote process share the resources of the workstation along with its own logged-on user's processes.
What happens to a remote process if a user logs onto a workstation that was idle until now and was being used to execute a process of another workstation? Ways to handle the first two issues are described in Chapters 7 and 8. How is a process transferred from one workstation to get it executed on another workstation? The main drawbacks of this method are that all processing done for the remote process gets lost and the file system may be left in an inconsistent state.
The definition of preemptive process migration and the issues involved in preemptive process migration are given in Chapter 8. Note that when diskless workstations are used on a network. The minicomputers are used for this purpose. A workstation with its own local disk is usually called a diskful workstation and a workstation without a local disk is called a diskless workstation. One or more ofthe minicomputers are used for implementing the file system.
With the proliferation of high-speed networks. Hence in the workstation-server model. Other minicomputers may be used for providing other types of services. For better overall system performance. Due to this reason. In general. In the workstation-server model. As compared to the workstation model.
Normal computation activities required by the user's processes are performed at the user's home workstation.
That is. Diskless workstations are also preferred to diskful workstations from a system maintenance point of view.
Backup and hardware maintenance are easier to perform with a few large disks than with many small disks scattered all over a building or campus. Note that this is not true with the workstation model. The request-response protocol is known as the client-server model of communication.
Each processor in the pool has its own memory to load and run a system program or an application program of the distributed computing system.
The V-System [Cheriton ] is an example of a distributed computing system that is based on the workstation-server model. A user has guaranteed response time because workstations are not used for executing remote processes.. When a user submits a job for computation. This is in contrast. It is even possible for both the client and server processes to be run on the same computer. It is not only meant for use with the workstation-server model but also can be implemented in a variety of hardware and software environments.
In the processor-pool model there is no concept of a home machine. The server executes the request and sends back a reply to the client that contains the result of request processing. The client-server model provides an effective general-purpose approach to the sharing of information and resources in distributed computing systems.
When the computation is completed. The pool of processors consists of a large number of microcomputers and minicomputers attached to the network. They can be of many types and there is no need to distinguish between them.
A special server called a run server manages and allocates the processors in the pool to different users on a demand basis. The computers used to run the client and server processes need not necessarily be workstations and minicomputers.
These terminals are either small diskless workstations or graphic terminals. This is mainly because of the slow speed of communication between the computer on which the application program of a user is being executed and the terminal via which the user is interacting with the system.
Amoeba [Mullender et a1. As compared to the workstation-server model. This is because in the processor-pool model. Plan 9 [Pike et at ]. The workstation-server model is generally considered to be more suitable for such applications. This is because a large number of computer users only perform simple interactive tasks such as editing jobs. This is mainly because the advantages of distributed computing systems outweigh their disadvantages.
The increased complexity is mainly due to the fact that in addition to being capable of effectively using and managing a very large number of distributed resources. In addition to efficient execution of computation-intensive jobs.
The hybrid model is based on the workstation-server model but with the addition of a pool of processors. The processors in the pool can be allocated dynamically for computations that are too large for workstations or that require several computers concurrently for efficient execution.
The technical needs. The workstation-server model is ideal for such simple usage. Special software is usually needed to handle loss of messages during transmission across the network or to prevent overloading of the network.
Despite the increased complexity and the difficulty of building distributed computing systems. From the models of distributed computing systems presented above. To combine the advantages of both the workstation-server and processor-pool models.
This facility may be useful in many ways. Applications such as these require that some processing power be available at the many distributed locations for collecting. Groupware is an emerging technology that holds major promise for software developers. In a distributed computing system. Some other examples of inherently distributed applications are a computerized worldwide airline reservation system.
Sharing of software resources such as software libraries and databases as well as hardware resources such as printers. The use of distributed computing systems by a group of users to work cooperatively is known as computer-supported cooperative working CSCW.
In this case. For instance. Groupware applications depend heavily on the sharing of data objects between programs running on different nodes of a distributed computing system.
With the rapidly increasing power and reduction in the price of microprocessors. The multiplicity of storage devices and processors in a distributed computing system allows the maintenance of multiple copies of critical information within. Distributed computing systems with very fast communication networks are increasingly being used as parallel computers to solve single complex problems rapidly.
If these computers are not linked together with a communication network. Another reason for distributed computing systems to be more cost-effective than centralized systems is that they facilitate resource sharing among multiple computers. Another method often used in distributed computing systems for achieving better overall performance is to distribute the load more evenly among the multiple processors by moving jobs from currently overloaded processors to lightly loaded ones.
The two most commonly used performance metrics are response time and throughput of user processes. A reliable system prevents loss of information even in the event of component failures. The advantage of higher reliability is an important reason for the use of distributed computing systems for critical applications whose failure may be disastrous. An important aspect of reliability is availability. Incremental growth is a very attractive feature because for most existing and proposed applications it is practically impossible to predict future demands of the system.
Other users of the system are not affected by this failure. In comparison to a centralized system. With this approach. Properly designed distributed computing systems that have the property of extensibility and incremental growth are called open distributed systems.
Extensibility is also easier in a distributed computing system because addition of new resources to an existing system can be performed without significant disruption of the normal functioning of the system. The three most important features commonly used to differentiate between these two types of operating systems are system image. Note that the advantages of distributed computing systems mentioned above are not achieved automatically but depend on the careful design of a distributed computing system.
This involves performing such tasks as keeping track of who is using which resource. The operating systems commonly used for distributed computing systems can be broadly classified into two types-network operating systems and distributed operating systems. According to this definition. The most important feature used to differentiate between the two types of operating systems is the image of the distributed computing system from the point of view of its users.
These features are explained below. System image. In case of a network operating system. In a centralized system. To manage the various resources of the system. This book deals with the various design methodologies that may be used to achieve these advantages.
Tanenbaum and VanRenesse define an operating system as a program that controls the resources of a computer system and provides its users with an interface or virtual machine that is more convenient to use than the bare machine. To present users with a virtual machine that is easier to program than the underlying hardware. With a network operating system. This is because. The difference between the two types of operating systems based on this feature can be best illustrated with the help of examples.
In either case. A network operating system is built on a set of existing centralized operating systems and handles the interfacing and coordination of remote operations and communications between these operating systems. Researchers are still working hard to achieve this goal.
In the case of a network operating system. Each computer functions independently of other computers in the sense that each one makes independent decisions about the creation and termination of their own processes and management of local.
Two such examples are presented below. If the user wants to execute a job on a different machine. Notice that the key concept behind this feature is "transparency. In short. The kernel manages and controls the hardware of the computer system to provide the facilities and resources that are accessed by other programs through system calls.
Notice that due to the possibility of difference in local operating systems. Another way of expressing the same idea is to say that the user views the system as a "virtual uniprocessor. Fault tolerance capability. To make the same set of system calls globally valid. A distributed computing system that uses a network operating system is usually referred to as a network system. The key concept here is transparency.
In other words. The kernels of different computers often cooperate with each other in making global decisions. The distributed operating system tightly interweaves all the computers of the distributed computing system in the sense that they work in close cooperation with each other for the efficient and effective utilization of the various resources of the system. The set of system calls that an operating system supports are implemented by a set of programs called the kernel of the operating system.
The following definition of a distributed operating system given by Tanenbaum and Van Renesse  covers most of its features mentioned above: A distributed operating system is one that looks to its users like an ordinary centralized operating system but runs on multiple.
Due to all these reasons. The rest of the chapters of this book basically contain detailed descriptions of these design issues and the commonly used techniques to deal with them. Some of the key design issues are described below.
To meet this challenge. Completely true distributed systems are the ultimate goal of researchers working in the area of distributed operating systems. In a distributed system. Despite these complexities and difficulties. Note that with the current state of the art in distributed operating systems.
In the design of a centralized operating system. Although this mechanism is quite useful in providing access transparency. Location Transparency The two main aspects of location transparency are as follows: We will see in Chapters 3 and 4 that due to the need to handle communication failures in distributed systems.
This implies that the distributed operating system should allow users to access remote resources in the same way as local resources. The distributed shared memory mechanism described in Chapter 5 is also meant to provide a uniform set of system calls for accessing both local and remote memory objects. Access Transparency Access transparency means that users should not need or be able to recognize whether a resource hardware or software is remote or local.
This refers to the fact that no matter which machine a user is logged onto. This requirement calls for a well-designed set of system calls that are meaningful in both centralized and distributed environments and a global resource naming facility. Achieving complete transparency is a difficult task and requires that several different aspects of transparency be supported by the distributed operating system.
Chapter 10 deals with the concepts and design of a global resource naming facility. These transparency aspects are described below. This refers to the fact that the name of a resource hardware or software should not reveal any hint as to the physical location of the resource.
Name transparency. Failure Transparency Failure transparency deals with masking from the users' partial failures in the system. Complete failure transparency is not achievable with the current state of the art in distributed operating systems because all types of failures cannot be handled in a usertransparent manner. This can be done by implementing it as a group of file servers that closely cooperate with each other to manage the files of the system and that function in such a manner that the users can utilize the file service even if only one of the file servers is up and working.
It is the responsibility of the system to name the various copies of a resource and to map a user-supplied name of the resource to an appropriate replica of the resource.
The design of such a distributed system. Any type of service can be implemented in this way for failure transparency. Replication Transparency For better performance and reliability.
In a distributed systemthatsupports user mobility. Both name transparency and user mobility requirements call for a systemwide. A distributed operating system having failure transparency property will continue to function.
Replica management issues are described in Chapter 9. Ways to handle the third issue are described in Chapter 8. The second issue calls for a global resource naming facility. Chapter 7 deals with the first issue. Three important issues in achieving this goal are as follows: Concurrency Transparency In a distributed system.
An event-ordering property ensures that all access requests to various system resources are properly ordered to provide a consistent view to all users of the system. A no-starvation property ensures that if every process that is granted a resource.
In such a situation. A mutual-exclusion property ensures that at any time at most one process accesses a shared resource. Concurrency transparency means that each user has a feeling that he or she is the sole user of the system and other users do not exist in the system. For providing concurrency transparency.
The aim of migration transparency is to ensure that the movement of the object is handled automatically by the system in a user-transparent manner. When the migrating object is a process.
Migration of an object from one node to another should not require any change in its name. Migration decisions such as which object is to be moved from where to where should be made automatically by the system. A fault in a system causes system failure. This requirement calls for open-system architecture and the use of scalable algorithms for designing the distributed operating system components. A no-deadlock property ensures that a situation will never occur in which competing processes prevent their mutual progress even though no single one requests more resources than available in the system.
Byzantine failures are much more difficult to deal with than fail-stop failures. Depending on the manner in which a failed system behaves.
A fault is a mechanical or algorithmic defect that may generate an error. Chapters 7 and 8 deal with these two issues. This requirement calls for the support of intelligent resource allocation and process migration facilities in distributed operating systems.
In the case of fail-stop failure. Undetected software bugs often cause Byzantine failure of a system.
Scaling Transparency The aim of scaling transparency is to allow the system to expand in scale without disrupting the activities of the users. For higher reliability. Section 1. Performance Transparency The aim of performance transparency is to allow the system to be automatically reconfigured to improve performance.
As far as practicable. Chapter 6 deals with the above-mentioned issues of concurrency transparency. If k replicas are lost due to failures.
Fault Avoidance Fault avoidance deals with designing the components of the system in such a way that the occurrence of faults is minimized. Fault Tolerance Fault tolerance is the ability of a system to continue functioning in the event of partial system failure. Conservative design practices such as using highreliability components-are often employed for improving the system's reliability based on the idea of fault avoidance.
The performance of the system might be degraded due to partial failure. This raises an important question: How much replication is enough? Neeraj Prasad rated it it was amazing Sep 25, Aniket rated it it was amazing Aug 10, Ranvir Singh rated it it was amazing Nov 17, Mohan rated it it was amazing Feb 19, Jan 17, Supriya rated it really liked it Shelves: Distributed operating syatem--pradeep sinha.
Apr 26, Sameer Sameer is currently reading it. Zaayer Bin Myrah rated it really liked it Aug 04, Ajay Mishra rated it it was amazing Dec 11, Akshay rated it it was ok Dec 02, Dinesh Chowdary rated it really liked it Mar 18, Prakhar Singh rated it it was amazing Aug 09, Cnu Dahiya rated it it was amazing Dec 03, Suraj rated it really liked it Feb 01, Madhan Varadhodiyil rated it really liked it Jan 01, There are no discussion topics on this book yet.
Readers Also Enjoyed.
Goodreads is hiring! If you like books and love to build cool products, we may be looking for you. About Pradeep K. Pradeep K. Books by Pradeep K. Trivia About Distributed Opera No trivia or quizzes yet. Welcome back. Just a moment while we sign you in to your Goodreads account.