Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.

Similar presentations


Presentation on theme: "Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D."— Presentation transcript:

1 Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.

2  Why is it beneficial for an operating system to enable processes to communicate with one another?  Share information  Cooperation  Computational speed-up via parallel programming  Modularity of program design  Convenience

3 Message Passing Shared Memory both IPC mechanisms require a protocol and synchronization

4  Processes may communicate on the same machine or across multiple machines  Use sockets for interprocess client-server communication  Use remote procedure calls (RPCs) to call procedures across a network  In Java, use remote method invocation (RMI) to call a method on an object in a different virtual machine

5

6  Using RPC, heterogeneous operating systems can interact with one another

7  RPCs can be made across a mix of machines and operating systems  All parameters must be marshaled to ensure proper interpretation  Consider date representations ▪ YYYY-MM-DD or MM-DD-YYYY or DD-MM-YYYY  Also consider big endian versus little endian integer representations ▪ (see http://en.wikipedia.org/wiki/Endianness)http://en.wikipedia.org/wiki/Endianness

8  RMI is a Java mechanism similar to RPCs  RMI enables a running Java program to call a method on a remote object running on a separate Java Virtual Machine this requires object serialization

9  A socket is an endpoint for communication  Communication takes place over a pair of sockets : client server 66.195.8.34:8123 socket 128.113.2.9:80 listener socket 128.113.2.9:9500 socket

10  Pitfalls of socket-based communication between client and server include:  Once a server binds to a port, no other program may listen on that port  If client and server do not obey the rules of the protocol, errors occur

11  In Java, we transmit primitive data types (e.g. int, double) using DataInputStream and DataOutputStream  To transmit objects, use ObjectInputStream and ObjectOutputStream instead client server this requires object serialization

12  Objects exist in a JVM’s memory space  To transmit an object over a socket, we must first serialize the object  For an object to be serializable, its class definition must implement the java.io.Serializable interface  Also useful for saving runtime objects to a file

13  The Serializable interface has no methods  Simply identifies a class as being serializable  And enables the use of readObject() and writeObject() methods of ObjectInputStream and ObjectOutputStream Student object Student object serialized object Student object Student object network writeObject() readObject()

14  Classes that are not serializable include:  java.lang.Thread  java.io.OutputStream  java.net.Socket  etc.  Such classes refer to operating system resources, which are not serializable

15  Serialized objects are assigned a unique identifier as a means to version control  If you write object X to a socket or file, then modify the source code of class X and recompile the.class file, loading object X results in an InvalidClassException runtime exception  All processes must be using the same version


Download ppt "Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D."

Similar presentations


Ads by Google