Shared programming using library routines, Computer Networking

Assignment Help:

Shared Programming Using Library Routines

The most well-liked of them is the use of combo function called fork() and join(). Fork() function is used to make a new child process. By calling join() function parent process waits the terminations of the child process to obtain the desired result.

Example 11: Consider the following set of statements

Process A                                 Process B

:                                                      :

fork B ;                                                      :

:                                                                :

join B;                                                      end B;

In the above set of statements process A makes a child process B by the statement fork B. Then A and B continue their computations independently up to  A reaches the join statement, At this stage, if B is already ended, then A continues implementing the next statement otherwise it waits for B to finish.

 In the shared memory model, a common trouble is to synchronize the processes. It may be possible that more than one process is trying to concurrently modify the similar variable. To solve this problem many synchronization mechanism like test_and_set, monitors and semaphores have been used. We shall not go into the details of these mechanisms. Quite, we shall represent them by a pair of two processes called lock and unlock. Whenever a process P locks a common variable, then only P can use that variable. Other simultaneous processes have to wait for the common variable until P calls the unlock on that variable. Let us see the effect of locking on the output of a program when we do not use lock and when we use lock.

Example 12

Let us write a pseudocode to find sum of the two functions f(A) + f(B). In the first algorithm we shall not use locking.

Process A                               Process B

sum = 0                                           :

:                                                  :

fork B                                    sum = sum+ f(B)

:                                                   :

sum = sum + f(A)                         end B

:

join B

:

end A

If process A implements the statement sum = sum + f (A) and writes the results into main memory followed by the computation of sum by process B, then we get the right result. But consider the case when B implements the statement sum = sum + f (B) before process A could write result into the main memory. Then the sum contains only f(B) which is not right. To avoid such inconsistencies, we use locking.

Process A                               Process B

sum = 0                                           :

:                                                  :

:                                                  lock sum

fork B                                    sum = sum + f(B)

:                                                   unlock sum

 lock sum                                        :

sum = sum + f(A)                         end B

unlock sum

:

join B

:

end A

In this case whenever a process gets the sum variable, it locks it so that no other process can access that variable which makes sure the consistency in results.


Related Discussions:- Shared programming using library routines

Explain the term ftp- file transfer protocol, Explain the term FTP: File T...

Explain the term FTP: File Transfer Protocol A very common method of moving files between two Internet sites. FTP is a special way to log in to another Internet site for pur

What is the last step in data encapsulation, The Five steps to data encapsu...

The Five steps to data encapsulation (IN ORDER): 1) User information is changed into data. 2) Data is changed into segments. 3) Segments are changed into datagram and pack

Program annotation packages, A fairly renowned approach in this area is Ope...

A fairly renowned approach in this area is OpenMP, a recently developed industry standard for shared memory programming on architectures with uniform memory access characteristics.

State the concept of multicast typing, Multicast An identifier for a se...

Multicast An identifier for a set of interfaces (typically belonging to dissimilar nodes). A packet sent to a multicast address is delivered to all interfaces identified by tha

Describe about the network equipment and connectivity, Describe about the N...

Describe about the Network equipment and connectivity Network equipment and connectivity should address various networking equipments such as routers, types of cables, as well

Compute the number of lost packets of the down-stream, A mobile host (MH) i...

A mobile host (MH) is connected to a WLAN access network that uses MIP for mobility support. Consider that the RTTs between MH and HA are 0.3s while RTTs within a L2 subnet are 80

eigrp finds its successor and feasible successor, Describe how EIGRP finds...

Describe how EIGRP finds its successor and feasible successor?

Define retransmission, Define Retransmission? Retransmission is a proce...

Define Retransmission? Retransmission is a process in which the receiver detects the occurrence of an error and asks the sender to resend the message. Resending is repeated unt

Ip checksum, This code properly implements the IP checksum function on a 32...

This code properly implements the IP checksum function on a 32-bit machine: unsigned short cksum(unsigned short *buf, int count) { unsigned long sum = 0; while (count--) { sum += *

What is redundancy, What is Redundancy? The method of including extra i...

What is Redundancy? The method of including extra information in the transmission solely for the purpose of comparison. This technique is known as redundancy.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd