Similarly, the head of passenger service can decide to drop the rubber chicken and go for Mushy’s new special, prime rib of goat, without that decision affecting the secretaries. The thing to notice is that we have two layers here, the bosses and the secretaries. Each layer has its own protocol (subjects of discussion and technology) that can be changed independently of the other one. It is precisely this independence that makes layered protocols attractive. Each one can be changed as technology improves, without the other ones being affected.. An issue that we have glossed over so far is how the client locates the server. One method is just to hardwire the network address of the server into the client. The trouble with this approach is that it is extremely inflexible. If the server moves or if the server is replicated or if the interface changes, numerous programs will have to be found and recompiled. To avoid all these problems, some distributed systems use what is calleddynamic bindingto match up clients and servers. in this section we will describe the ideas behind dynamic binding.. 1. The client is unable to locate the server.. When a process has a message to send, it increments its own slot in its vector, and sends the vector as part of the message. WhenM1 in Fig. 2-38 gets toB, a check is made to see if it depends on anything thatB has not yet seen. The first component of the vector is one higher than B’s own first component, which is expected (and required) for a message fromA, and the others are the same, so the message is accepted and passed to the group member running onB. If any other component of the incoming vector had been larger than the corresponding component ofB ‘s vector, the message could not have been delivered yet.. Deadlock prevention consists of carefully designing the system so that deadlocks are structurally impossible. Various techniques include allowing processes to hold only one resource at a time, requiring processes to request all their resources initially, and making processes release all resources when asking for a new one. All of these are cumbersome in practice. A method that sometimes works is to order all the resources and require processes to acquire them in strictly increasing order. This approach means that a process can never hold a high resource and ask for a low one, thus making cycles impossible.. The last issue in our list deals withlocation policy.Once the transfer policy has decided to get rid of a process, the location policy has to figure out where to send it. Clearly, the location policy cannot be local. It needs information about the load elsewhere to make an intelligent decision. This information can be disseminated in two ways, however. In one method, the senders start the information exchange. In another, it is the receivers that take the initiative.. Although server caching eliminates a disk transfer on each access, it still has a network access. The only way to get rid of the network access is to do caching on the client side, which is where all the problems come in. The trade-off between using the client’s main memory or its disk is one of space versus performance. The disk holds more but is slower. When faced with a choice between having a cache in the server’s main memory versus the client’s disk, the former is usually somewhat faster, and it is always much simpler. Of course, if large amounts of data are being used, a client disk cache may be better. In any event, most systems that do client caching do it in the client’s main memory, so we will concentrate on that.. 3. The entire algorithm is performed in well under a memory cycle.. The trade-offs involved here are simple. If a local copy is made (replication or migration) and the page is not reused much, considerable time will have been wasted fetching it for nothing. On the other hand, if no copy is made, the page is mapped remote, and many accesses follow, they will all be slow. In essence, the operating system has to guess if the page will be heavily used in the future. If it guesses wrong, a performance penalty will be extracted.. If we concatenate the output ofP1,P2, andP3 in that order, we get a 6-bit string that characterizes a particular interleaving of statements (and thus memory references). This is the string listed as theSignaturein Fig. 6-15. Below we will characterize each ordering by its signature rather than by its printout.. begin. As an aside, for the most part we will stick with the traditional nomenclature throughout this chapter, even though this means deviating from the terminology used in the Mach papers (e.g., Mach, of course, has processes, but they are called “tasks.”. Fourth, real-time operation can be added to the system because all the traditional obstacles that UNIX presents to real-time work, such as disabling interrupts in order to update critical tables are either eliminated altogether or moved into user space. The kernel can be carefully structured not to have this type of hindrance to real-time applications.. CallDescriptionipcSendSend a message asynchronouslyipcReceiveBlock until a message arrivesipcGetDataGet the current message’s bodyipcReplySend a reply to the current messageipcCallPerform a remote procedure call. Actually, DTS must deal with two separate issues:.