2 6. Resource and Process Management Desirable Features of a good global scheduling algorithm, Task assignment approach, Load Balancing approach, Load Sharing Approach, Process Migration, Threads, Processor allocation, Real time distributed Systems. 7. Distributed File Systems Desirable Features of a good Distributed File Systems, File Models, File Accessing Models, File-shearing Semantics, Filecaching Schemes, File Replication, Fault Tolerance, Design Principles, Sun’s network file system, Andrews file system, comparison of NFS and AFS. 8. Naming Desirable Features of a Good Naming System, Fundamental Terminologies and Concepts, Systems-Oriented Names, Name caches, Naming & security, DCE directory services. 9. Case Studies Mach & Chorus (Keep case studies as tutorial) Term work/ Practical: Each candidate will submit assignments based on the above syllabus along with the flow chart and program listing will be submitted with the internal test paper. References: 1. Distributed OS by Pradeep K. Sinha (PHI) 2. Tanenbaum S.: Distributed Operating Systems, Pearson Education 3. Tanenbaum S. Maarten V.S.: Distributed Systems Principles and Paradigms, (Pearson Education) 4. George Coulouris, Jean Dollimore. Tim Kindberg: Distributed Systems concepts and design.
3 1 FUNDAMENTALS Unit Structure: 1.1 1.2 1.3 What is a Distributed Computing System Evolution of Distributed Computing System Distributed Computing System Models 1.1 WHAT IS A DISTRIBUTED COMPUTING SYSTEM Over the past two decades, advancements in microelectronic technology have resulted in the availability of fast, inexpensive processors, and advancements in communication technology have resulted in the availability of cost effective and highly efficient computer networks. The net result of the advancements in these two technologies is that the price performance ratio has now changed to favor the use of interconnected, multiple processors in place of a single, high-speed processor. Computer architectures consisting of multiple processors are basically of two types: interconnected, 1. Tightly coupled systems: In these systems, there is a single system wide primary memory (address space) that is shared by all the processors [Fig. 1.1(a)]. If any processor writes, for example, the value 100 to the memory location x, any other processor subsequently reading from location x will get the value 100. Therefore, in these systems, any communication between the processors usually takes place through the shared memory. 2. Loosely coupled systems: In these systems, the processors do not share memory, and each processor has its own local memory [Fig. 1.1(b)]. If a processor writes the value 100 to the memory location x, this write operation will only change the contents of its local memory and will not affect the contents of the memory. In these systems, all physical communication between the processors is done by passing messages across the network that interconnects the processors.
4 CPU CPU Systemwide shared memory CPU CPU Interconnection Hardware (a) Local memory CPU Local memory CPU Local memory CPU Local memory CPU Communication network (b) Fig. 1.1 Difference between tightly coupled and loosely coupled multiprocessor systems (a) a tightly coupled multiprocessor system; (b) a loosely coupled multiprocessor system Tightly coupled systems are referred to as parallel processing systems, and loosely coupled systems are referred to as distributed computing systems, or simply distributed systems. In contrast to the tightly coupled systems, the processor of distributed computing systems can be located far from each other to cover a wider geographical area. Furthermore, in tightly coupled systems, the number of processors that can be usefully deployed is usually small and limited by the bandwidth of the shared memory. This is not the case with distributed computing systems that are more freely expandable and can have an almost unlimited number of processors. In short, a distributed computing system is basically a collection of processors interconnected by a communication network in which each processor has its own local memory and other peripherals, and the communication between any
5 two processors of the system takes place by message passing over the communication network. 1.2 For a particular processor, its own resources are local, whereas the other processors and their resources are remote. Together, a processor and its resources are usually referred to as a node or site or machine of the distributed computing system. EVOLUTION SYSTEM OF DISTRIBUTED COMPUTING Computer systems are undergoing a revolution. From 1945, when the modem Computer era began, until about 1985, computers were large and expensive. Even minicomputers cost at least tens of thousands of dollars each. As a result, most organizations had only a handful of computers, and for lack of a way to connect them, these operated independently from one another. Starting around the mid-198 0s, however, two advances in technology began to change that situation. The first was the development of powerful microprocessors. Initially, these were 8-bit machines, but soon 16-, 32-, and 64-bit CPUs became common. Many of these had the computing power of a mainframe (i.e., large) computer, but for a fraction of the price. The amount of improvement that has occurred in computer technology in the past half century is truly staggering and totally unprecedented in other industries. From a machine that cost 10 million dollars and executed 1 instruction per second. We have come to machines that cost 1000 dollars and are able to execute 1 billion instructions per second, a price/performance gain of 1013. The second development was the invention of high-speed computer networks. Local-area networks or LANs allow hundreds of machines within a building to be connected in such a way that small amounts of information can be transferred between machines in a few microseconds or so. Larger amounts of data can be Distributed Computing become popular with the difficulties of centralized processing in mainframe use. With mainframe software architectures all components are within a central host computer. Users interact with the host through a terminal that captures keystrokes and sends that information to the host. In the last decade however, mainframes have found a new use as a server in distributed