EmbLogic's Blog

Implemented IPC using FIFO for 3 clients

RCS file: header.h,v
Working file: header.h
head: 1.2
branch:
locks: strict
	root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
Decleared all the header files that are useful for the program.
Also decleared the structure of req_client which includes operator and operands.
Gave the prototypes for the invoke_process_client1().
Gave the prototype for invoke_process_client2().
Gave the prototype for invoke_process_client3().
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 11:15:39;  author: root;  state: Exp;  lines: +0 -1
Also decleared the union semun which includes a value.
Gave the prototype for wait operation i.e semaphore_p().
Gave the prototype for signal operation i.e semaphore_v().
Gave the prototype for destroying the semaphore i.e del_semvalue().
----------------------------
revision 1.1
date: 2015/04/15 11:14:54;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_add.c,v
Working file: req_add.c
head: 1.3
branch:
locks: strict
	root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
This is requesting client(req_client) requesting for add operation.
Created a FIFO between req_add and server.
We have created this FIFO in O_WRONLY mode .
Req_add wrote the request structure to the server.
Also used semaphore wait function i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 11:39:10;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_RDONLY mode .
Accepted the result through FIFO.
----------------------------
revision 1.2
date: 2015/04/15 11:32:54;  author: root;  state: Exp;  lines: +0 -1
Now we have used the semaphore signal function i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:31:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_sub.c,v
Working file: req_sub.c
head: 1.3
branch:
locks: strict
	root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
This is requesting client requesting for subtract operation.
Created a FIFO between req_sub and server.
We have created this FIFO in O_WRONLY mode .
Req_sub wrote the request structure to the server.
Also use semaphore wait operation i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 11:50:28;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_WRONLY mode .
Accepting the result from the server.
----------------------------
revision 1.2
date: 2015/04/15 11:49:02;  author: root;  state: Exp;  lines: +37 -0
Also used semaphore signal operation i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:47:51;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_mul.c,v
Working file: req_mul.c
head: 1.3
branch:
locks: strict
	root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
This is requesting client requesting for multiplication operation.
Created a FIFO between req_mul and server.
We have created the FIFO in O_WRONLY mode .
Also used semaphore wait operation i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 12:00:12;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_RDONLY mode .
Accepting the result from server through FIFO .
----------------------------
revision 1.2
date: 2015/04/15 11:56:25;  author: root;  state: Exp;  lines: +1 -0
Also use semaphore signal operation i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:55:57;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: adder.c,v
Working file: adder.c
head: 1.2
branch:
locks: strict
	root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
This is processing client i.e adder.c
Accepting the request structure send by the server.
Performing the addition operation.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 12:42:06;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
Send back the result to the server through pipes.
also used kill()signal.
----------------------------
revision 1.1
date: 2015/04/15 12:41:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: subtractor.c,v
Working file: subtractor.c
head: 1.2
branch:
locks: strict
	root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
This is processing client performing subtraction operation.
Accepting the request structure from the server.
Performing the subtraction operation.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 12:48:29;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
send back the result to the server.
----------------------------
revision 1.1
date: 2015/04/15 12:47:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: multiplier.c,v
Working file: multiplier.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
This is processing client performing multiplication operation.
Accepting the request structure from server.
Performing the multiplication operation.
----------------------------
revision 1.2
date: 2015/04/15 12:56:24;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
send the result back to the server.
----------------------------
revision 1.1
date: 2015/04/15 12:55:40;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: server.c,v
Working file: server.c
head: 1.4
branch:
locks: strict
	root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
Open the FIFO in O_RDONLY  mode .
And accepted the request structure from 3 clients.
Created fork().
invoke_process client1() and send the request structure to the respective pro_client i.e adder
invoke_process_client2() and send  the request structure to the respective pro_client i.e subtractor.
invoke_process_client3() and send the request structure to the respective pro_client i.e multiplier.#[A
Also we have used the signal handler and signal handler functions .
We have created a pipe between server and pro_clients.
----------------------------
revision 1.4	locked by: root;
date: 2015/04/15 12:30:06;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO between server and req_clients in O_WRONLY mode .
Also send back the result to the req_clients through FIFO.
----------------------------
revision 1.3
date: 2015/04/15 12:24:55;  author: root;  state: Exp;  lines: +1 -0
Sending the request structure to the pro_clients through pipes.
Accepting the result send by the pro_clients through pipes.
----------------------------
revision 1.2
date: 2015/04/15 12:20:30;  author: root;  state: Exp;  lines: +1 -0
also used the semget() for creating sem_id .
and also used the semctl() for initialising the semaphore.
----------------------------
revision 1.1
date: 2015/04/15 12:19:32;  author: root;  state: Exp;
Initial revision
=============================================================================

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>