Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating Systems {week 11a}

Similar presentations


Presentation on theme: "Operating Systems {week 11a}"— Presentation transcript:

1 Operating Systems {week 11a}
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems {week 11a}

2 Interprocess communication (IPC)
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 IPC mechanisms Message Passing Shared Memory both IPC mechanisms
require a protocol and synchronization

4 Client-server communication
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 Remote procedure calls (i)

6 Remote procedure calls (ii)
Using RPC, heterogeneous operating systems can interact with one another

7 Marshaling parameters
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

8 Remote method invocation
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 <ip-address>:<port>
Sockets (i) A socket is an endpoint for communication Communication takes place over a pair of sockets <ip-address>:<port> server :80 listener socket client :9500 socket :8123 socket

10 Sockets (ii) 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 Transmitting objects via sockets
In Java, we transmit primitive data types (e.g. int, double) using DataInputStream and DataOutputStream To transmit objects, use ObjectInputStream and ObjectOutputStream instead server client this requires object serialization

12 Serializing objects (i)
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 Serializing objects (ii)
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 network serialized object writeObject() readObject()

14 Serializing objects (iii)
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 Serializing objects (iv)
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 "Operating Systems {week 11a}"

Similar presentations


Ads by Google