Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Group 1 Members: Wael Faheem Hazem Morsy Poramate Ongsakorn Payal H Patel Samatha Devi Malka SMU CSE 8343 Professor:Dr.M.KHALIL. Date:11-08-03 INTERPROCESS COMMUNICATION IN A WINDOWS MULTIPROCESSOR O.S VS SUN SOLARIS O.S BY: SAMATHA DEVI MALKA Outline: Introduction Definition of IPC Types of IPC Definition of UNIX/SUN SOLARIS O.S IPC Mechanisms for UNIX Definition of Windows O.S IPC Mechanisms for Windows Synchronization Details of IPC Mechanisms Message Queues Shared Memory Pipes Conclusion References Thank you Introduction: In order to make a coherent system, processes usually have to pass information back and forth, and that's where IPC comes in. However, it turns out that the models of IPC available are very similar, in both Windows Multiprocessor and Sun Solaris though the implementations differ greatly. Definition of IPC: A set of programming interfaces that enables a process to communicate data or information to another process. Mechanisms for IPC exist in the different layers of the system, from Mach messaging in the kernel to distributed notifications and Apple events in the application environments. Types of IPC: IPC mechanisms include : pipes, named pipes, signals, message queueing, semaphores, shared memory, sockets, the Clipboard, and application services. Outline: Introduction Definition of IPC Types of IPC Definition of UNIX/SUN SOLARIS O.S IPC Mechanisms for UNIX Definition of Windows O.S IPC Mechanisms for Windows Synchronization Details of IPC Mechanisms Message Queues Shared Memory Pipes Conclusion References Thank you Definition of UNIX/SUN SOLARIS O.S UNIX: is a multiuser, multitasking operating system that is widely used as the master control program in workstations and especially servers. Solaris: Solaris is a multitasking, multiprocessing operating system and distributed computing environment for Sun's SPARC computers from SunSoft. It provides an enterprise-wide UNIX environment IPC Mechanisms for UNIX: Shared memory, pipes, and message queues are all suitable for processes running on a single computer. sockets are usually the chosen technique for communicating across the network. Outline: Introduction Definition of IPC Types of IPC Definition of UNIX/SUN SOLARIS O.S IPC Mechanisms for UNIX Definition of Windows O.S IPC Mechanisms for Windows Synchronization Details of IPC Mechanisms Message Queues Shared Memory Pipes Conclusion References Thank you Definition of Windows O.S: A family of operating systems for personal computers, Windows dominates the personal computer world. Windows provides a graphical user interface (GUI), virtual memory management, multitasking, and support for many peripheral devices. IPC Mechanisms for Windows: Shared memory, pipes, and events (equivalent to signals). The clipboard/Dynamic Data Exchange (DDE), Component Object Model (COM), and send message. Windows sockets and Message Queuing (also known as MSMQ). Remote procedure call (RPC) and mailslots. Synchronization: In serial data transmission, a method of ensuring that the receiving end can recognize characters in the order in which the transmitting end sent them, and can know where one character ends and the next begins. Both UNIX and Windows have an extensive set of process and thread synchronization techniques. Both operating systems use semaphores, which are synchronization primitives used to control access to a resource that can support a limited number of users. Both UNIX and Windows also use mutex objects to control mutually exclusive access to a resource. Outline: Introduction Definition of IPC Types of IPC Definition of UNIX/SUN SOLARIS O.S IPC Mechanisms for UNIX Definition of Windows O.S IPC Mechanisms for Windows Synchronization Details of IPC Mechanisms Message Queues Shared Memory Pipes Conclusion References Thank you Details of IPC Mechanisms Message Queues(MQs): In programming, message queueing is a method by which process (or program instances) can exchange or pass data using an interface to a system-managed queue of messages. MQs IN UNIX: One application sends messages to the queue; another application reads messages from the queue. The queues are memory based and are very fast as a result. Message queues were introduced in AT&T System V.2 UNIX. MQs IN Windows: Messaging system is called Message Queuing (MSMQ). Message Queuing provides guaranteed message delivery, efficient routing, security, and prioritybased messaging. In essence, a Message Queuing message is guaranteed to be delivered, but there is no specific guarantee about exactly when it will be received. The operation is the same as on UNIX Shared Memory: Hardware architecture in which multiple processors operate independently but share the same memory resources. In computer programming, shared memory is a method by which program process can exchange data more quickly than by reading and writing using the regular operating system services. Shared memory IN UNIX: The program must first call a function to get a shared memory identifier, shm_id, for the amount of shared memory. The identifier is then used in calls to attach the shared memory to the process. Shared memory in UNIX can be done based on the concept of file mapping. Shared memory IN Windows: Implementation of shared memory is based entirely on the concept of file mapping. As in the UNIX implementation, which uses an identifier, Windows uses a handle identifier to identify the memory that is mapped into the process at the requested address. Pipes: A pipe is a technique for passing information from one program process to another. Unlike other forms of interprocess communication (IPC). A pipe is usually a one-way communication only. For two-way communication between processes, two pipes can be set up, one for each direction. Pipes in UNIX: can be named or unnamed. They also have separate read and write file descriptors, which are created through a single function call. Two unrelated processes can use named pipes to communicate. With unnamed pipes, a parent process that must communicate with a child process creates a pipe that the child process will inherit and use. Pipes in Windows: can also be named or unnamed. A parent process and a child process typically use unnamed pipes to communicate. The processes must create two unnamed pipes for bidirectional communication Two unrelated processes can use named pipes, even across the network on different computers. Conclusion: Like most everything else, IPC is not portable between Windows Multiprocessor OS and Sun Solaris OS. However, though the implementation details differ greatly, the two systems do share certain ways of thinking about IPC. They try to cover the same functionality, and almost any style of IPC you implement in one can usually be replicated in the other. References: [1] R.W. Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley (Books) [2] Robert Orfali and Dan Harkey, Client/Server Programming with OS/2 2.0, Van Nostrand Reinhold. (Books) [3] A short introduction to operating systems, Mark Burgess, October 3, 2001 http://www.iu.hio.no/%7Emark/os/os.html (URL). Definaitons: http://www.course.com/careers/glossary/operating.cfm (URL) UNIX: http://www.course.com/careers/glossary/operating.cfm#unix (URL) IPC: iroi.seu.edu.cn/books/ee_dic/whatis/ipc.htm (URL) Pipes: dictdie.net/pipes/ Any Questions ? THANK YOU