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

Connect a router and computer with a console cable- ccna, Connect a Router ...

Connect a Router and Computer with a Console Cable Step 1 : Set up a basic physical connection. Connect the console (rollover) cable to the console port on the router. Link

Perfect shuffle permutation-concept of permutation network, Perfect Shuffle...

Perfect Shuffle Permutation This was advised by Harold Stone (1971). Consider N objects each characterized by n bit number say  X n-1, X n-2, X 0    (N is chosen such that N

Program, i need the job to be done within 3days

i need the job to be done within 3days

Explain about switching networks, Question 1: a. Differentiate between ...

Question 1: a. Differentiate between the several types of switching networks together with illustration. b. With the help of a diagram explain the two modes of operation un

Packets in eigrp, What are different kinds of packets in EIGRP?

What are different kinds of packets in EIGRP?

What is data storage technology, Normally, we think of communications scien...

Normally, we think of communications science as dealing with the contemporaneous exchange of information among distant parties. Though, many of the same techniques employed in data

Estimate of average delay deviation, Consider the procedure described for e...

Consider the procedure described for estimating average delay di. Suppose that u=0.1. Let r1-t1 be the most recent sample delay, let     r2 -t2 be the next most recent sample delay

Client server processes - application layer, Client  Server Processes ...

Client  Server Processes A network  application  consist  of pairs  of process that send message to one  another  over a network. For  example  in a web application a client

Hybrid networks -v irtual private networks , Hybrid Networks Allows  a...

Hybrid Networks Allows  an organization to have its  own  private networks  and at the same  time access to the global internet. the organization  may share  its information w

Analysis of sort_bitonic, The bitonic sorting network needed log n number o...

The bitonic sorting network needed log n number of stages for performing the task of sorting the list. The first n-1 stages of the circuit are able to sort two n/2 numbers and the

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