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

elementary logic gate circuit, Question Which elementary logic gate is...

Question Which elementary logic gate is equivalent to this circuit? Show your working.

What is exterior gateway protocol, What is EGP (Exterior Gateway Protocol)?...

What is EGP (Exterior Gateway Protocol)? It is the protocol the routers in neighboring autonomous systems use to recognize the set of networks that can be reached within or by

Private network, Single company or organization owns this. They are usually...

Single company or organization owns this. They are usually LAN technologies. There can be multiple LANs in a campus or building linked together. They are sometimes known Intranet.

Multithread web server, CSE4344 Computer Network Organization Project 1 Sim...

CSE4344 Computer Network Organization Project 1 Simple Web Server & Client Instructor: Sajib Datta Spring 2017 "What I cannot create, I do not understand." Richard P Feynman Object

Itc597, restore the scrambled bits to their original order

restore the scrambled bits to their original order

eigrp protocol update route information, How does EIGRP protocol update ro...

How does EIGRP protocol update route information to its neighbors

What is forward error correction and data words, What is Forward Error Corr...

What is Forward Error Correction and data words Forward error correction It is the process in which the receiver tries to guess the message by using redundant bits. Da

What are the features of star and ring topology, What are the features of s...

What are the features of star and ring topology The three networks have following features: star: best case is = 2, average case is = 2, worst case is = 2 ring: best case

Urgent pointer - transport layer, Urgent Pointer This 16 bite whic...

Urgent Pointer This 16 bite which is valid  only f the urgent  flag is set is used  when the segment  contains  urgent data. If  defines  the number  that must be  added  t

Assigment, what the domain name of 128.252.160.2000

what the domain name of 128.252.160.2000

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