Operating Systems Distributed Systems (PPT 8) Flashcards
What do networks do?
Make it easy for work to be distributed between multiple machines
What are some different types of network?
- Large distance networks
- Client-server model
- Middleware
- Distributed message passing
- Remote Procedure Calls
- Clusters of processing nodes
What do programs on a network need to do?
- send data over the network
- ensure that all data arrives in the correct order
- set up high level dialogue
What is client-server computing?
A program is split into two parts, each running on a different computer
What does the Client part do in client-server computing?
- runs on a PC and provides a GUI or user-friendly interface to the user
- processes their commands and sends commands/requests to the server part
- displays answers back to the user once the server has sent them
What does the Server part do in client-server computing?
-carries out the command and sends the answer back to the client
What is Middleware?
It is an extra layer which is inserted to try and standardise interfaces and hide low level mechanics from the client application. This is because Operating Systems and proprietary systems can make it difficult to writer general applications
What is Distributed Message Passing?
-Processes on different machines can only talk to each other by messages. No semaphores or shared memory available so messages are the synchronisation tools
What are the two minimum commands?
send(machine,process, message)
- where machine and process specific where the message is to go (destination address)
- the message can be a simple string or a complex data structure
receive(machine,process,message)
- where machine and process may be used to specify which machines/processes the caller is prepared to accept message from
- wildcards,for example “all”, may be allowed. They are updated to show where the message actually came from
What are the two types of transport mechanism?
Reliable
- makes the application program simpler
Unreliable
-systems make the message passing part easier
What does Blocking mean?
Means that the process is held up until the message is known to have reached its destination. May cause considerable delays but is “well understood” when it comes to debugging
What does Non-Blocking mean?
This is the most efficient in terms of parallel processing. Sends the message and then gets on with something else. Care has to be taken not to overwrite sent data before it is actually sent. OS usually makes a copy but not always
What is Remote Procedure Calls?
This is a mechanism for executing a procedure on another machine. When a program calls a procedure it waits until the procedure has procedure has produced the required effects and then carries on. It does not care how this is accomplished and it is no concern of the calling program if the procedure goes to another machine. RPC is a simple method of hiding the inter machine mechanism from the calling program
What are four parts to using an RPC?
- The actual procedure P(x,y) that will be run on the remote machine
- A dummy procedure or stub P(x,y) which simply takes the parameters, packages them up into a message and sends them to the remote machine (It waits for a reply then acts if it had done it locally)
- A suitable transport system
- A driver program, running on the remote machine
What is Synchronous RPC?
This is when the calling program waits until the results of the call are delivered