1 / 15

Operating Systems {week 11 }

Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D. Operating Systems {week 11 }. Interprocess communication (IPC). Why is it beneficial for an operating system to enable processes to communicate with one another? Share information Cooperation

hoshi
Download Presentation

Operating Systems {week 11 }

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 11}

  2. Interprocess communication (IPC) • Why is it beneficial for an operating systemto enable processes to communicatewith one another? • Share information • Cooperation • Computational speed-up viaparallel 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 interprocessclient-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 ofmachines and operating systems • All parameters must be marshaledto 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)

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

  10. Sockets (ii) • Pitfalls of socket-based communication between client and server include: • Once a server binds to a port,no other program may listenon that port • If client and server do not obeythe rules of the protocol,errors occur

  11. server client Transmitting objects via sockets • In Java, we transmit primitive data types (e.g. int, double) using DataInputStreamand DataOutputStream • To transmit objects, use ObjectInputStreamand ObjectOutputStream instead 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 thejava.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 andrecompile the .class file, loading object Xresults in an InvalidClassException runtime exception • All processes must be using the same version

More Related