CS 518 PROJECT

 

 

                                         

Summary   

Reading Materials

Some Interesting Links

Slides

Sample programs in C

Data Structures Used

 

  Summary

        The presentation dealt with Interprocess Communication and the way Linux 2.4 handles it in particular. In Unix or Linux, Interprocess Communication or IPC for short is a mixture of several approaches. We often deal not just with a single process but multiple processes which need some form of communicative methods to synchronize their actions and exchange data. Thus IPC is of pivotal importance to processes. Synchronization is widely handled by kernel processes, i.e. processes running in the kernel mode, but this presentation focused on how user processes communicate with each other.

            The presentation began with a brief review of the major concepts learnt in our undergraduate Operating System courses. The rest of the presentation was dedicated to the different forms of IPC starting with the most basic and the oldest form of IPC -  Pipes followed by FIFOs and finally the System V IPC. The System V IPC further includes Semaphores, Message Queues and Shared Memory. We then discussed the data structures involved in the implementation of the various forms of IPC resources and how Linux 2.4 implements them in particular. Throughout the presentation various short C programs were demonstrated to illustrate the use of these resources.

            Due to time constraints we only restricted our discussion to Pipes, FIFOs and Semaphores. The basic data structure and implementation of the System V IPC resources are very similar so there should be not much trouble understanding the other two resources as well. The complete presentation slides including Message Queues and Shared Memory would be accessible through my web page.

            

      Reading Materials

                       

   Some interesting links

http://lxr.linux.no/source/

 

  •    Interprocess Communication in Microsoft Windows

            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/interprocess_communications.asp

 

  •    Review of Process Synchronization in semaphores

http://www.sci.csuhayward.edu/~billard/cs4560/node7.html

 

  •    Classical Problems in Semaphores 

http://www.sci.csuhayward.edu/~billard/cs4560/node8.html

 

 Presentation Slides (powerpoint)    (pdf)

 

Sample programs in C to assist in understanding of IPC

  • Basic Pipes                                        pipes.c
  • Wrapper functions in pipes               popen1.c
  • FIFO's                                              fifoserver.c        fifoclient.c
  • Basic Semaphore functions               semget1.c          semctl1.c

 

        Data Structures and code fragments used (pdf format)

  

Last Updated : Thursday December 09, 2004