Inter-Process Communication primer

Mathimagics
12-04-2003, 04:06 PM
What is IPC?

IPC stands for Inter-Process Communication. This is a topic that applies to all multi-tasking Operating Systems, and hopefully this and future tutorials will introduce readers to the general concepts, discuss the Win32 features that support IPC, and provide specific examples for VB6 programmers.

For the purposes of this tutorial, a "process" is any instance of an executable program. "Application" will generally refer to the program itself, i.e. it's design and construction. When you compile an application, you get an executable file, e.g. "MyApp.exe". When you run it, you have created a process which is an instance of that application. Run another copy and you have 2 instances, i.e. 2 processes running the same code.

IPC includes both the exchange of information between processes, and the synchronisation of processes. Synchronisation refers to the requirement for tasks to be performed in sequence, or subject to special conditions such as the availability of a resource, or the completion of task being performed by another process.

Hopefully, maybe, eventually, we'll cover a good deal of the following possible topics, although not in strict order (a section on Semaphores with a VB demo should be ready at the same time this is posted)


1. What is IPC?

2. Common IPC Tasks
2.1 Synchronising applications
2.2 Locks - Resource sharing
2.3 Messaging
2.4 Data sharing

3 Common IPC Concepts
3.1 Semaphores
3.2 Locks
3.3 Interrupts
3.4 Events , Notifications, Interrupts, Signals, Locks, Semaphores ....
aaaggh! What do they all mean?
3.5 Messaging
3.6 Data sharing

4. Win32 IPC services and methods
4.1 Semaphore objects
4.2 Mutex objects
4.3 Event objects
4.4 Messaging (SendMessage, PostMessage)
4.5 Messaging (Pipes and Sockets)
4.6 Shared data (ReadProcessMemory, WriteProcessMemory)
4.5 Shared data (Memory Mapped Files)

5. IPC for VB
5.1 Simple synchronisation (1 Client, 1 Server)
5.2 Extension to N clients, 1 Server
5.3 Multiple Servers
5.4 Using Window Messages
5.5 Sharing data

Mathimagics
12-23-2003, 08:01 AM
If you'd like any of the topics listed above bumped to the front of the queue, send me a PM

EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum