Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

In this project, you are required to implement a new IPC method called Notification-Based IPC (NIPC). A NIPC instance is a system resource identified by

In this project, you are required to implement a new IPC method called Notification-Based IPC (NIPC). A NIPC instance is a system resource identified by a unique key. Any process that has the key may access the NIPC instance to send/receive messages. The procedure to use a NIPC instance is as follows:

A process opens a NIPC instance using its key.

A process subscribes under a specific type (> 0) to the opened NIPC instance to receive messages

A process may send messages to an opened NIPC instance using any of the following: Broadcast: message is sent to all subscribed processes. Multicast: message is sent to all subscribed processes of certain type.

Unicast: message is sent to a specific subscribed processes.

When a message is sent to the NIPC instance, all intended subscribers are notified. The notified process then have the choice of reading the message or ignoring it.

Implementation details You are required to implement the following functions and submit a library named nipc.h (along with its .c file). Make sure you perform all necessary testing before submitting the code.

1. int nipc_create(key_t _key); Description : This function creates a NIPC instance that has a key _key. If a NIPC instance with the same key exists, the function fails.

Return value : 0 on success, -1 on failures.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

2. int nipc_get(key_t _key)

Description : This function opens a NIPC instance whose key is _key.

Return value : If the instance exists, it returns a unique positive non-zero integer to identify the instance within the process. Otherwise, it returns -1.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

3. int nipc_subscribe(int id, long type, void (handler*) (struct nipc_message*));

Description : This function subscribes the calling process to the opened NIPC instance identified by id under the specified type type. The function handler is invoked upon any notification from the NIPC instance.

Return value : The function returns 0 on success, and -1 otherwise.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

4. int nipc_send(int id, struct nipc_message msg, long type);

Description : This function sends the message msg to the NIPC instance identified by id. If type=0, the message is treated as a broadcast. If type>0, the message is treated as a unicast and type is the PID of the receiver. If type<0, the message is treated as a multicast to all receivers subscribed to type |type|. The function sends notifications and delivers the message to the intended receivers.

Return value : This function returns 0 on success, and -1 on failure.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

5. int nipc_close(int id) Description : This function closes a NIPC instance identified by id. A closed NIPC instance cannot be used unless opened again.

Return value : Returns 0 on success, and -1 on failures.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

6. int nipc_remove(key_t _key) Description : This function removes an NIPC instance identified by _key from the system.

Return value : Returns 0 on success, and -1 on failures.

Errors : On failure, errno is set to an appropriate error value. You may define any errors you may need.

With C language solve this task called Notification-Based Inter-Process Communication

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Security XI Status And Prospects

Authors: T.Y. Lin, Shelly Qian

1st Edition

0412820900, 978-0412820908

More Books

Students also viewed these Databases questions

Question

What do you mean by the scope of JSP objects?

Answered: 1 week ago

Question

1. Identify three communication approaches to identity.

Answered: 1 week ago

Question

d. Who are important leaders and heroes of the group?

Answered: 1 week ago

Question

3. Describe phases of minority identity development.

Answered: 1 week ago