Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please explain the answer below in detail and step by step. As im so confuse how fork ( ) , magic ( ) work and

Please explain the answer below in detail and step by step. As im so confuse how fork(),magic() work and how to get the output.Thank you!
There are two code examples of using fork() function, which is a popular way to create a
subprocess. Please answer the following questions about these two codes.
Question:b) In the left code example, how many times will the function magic() be executed. How many
subprocesses will be created. Please explain the detailed calculation steps.
Answer:14 times. 7 sub-processes are created.
Solution 1:
The total number of executions of the function magic() can be calculated as following,
1. For the main process, the function magic() will be executed for 3 times, and there are 3 sub
processes being created during i=1,2,3, which can be named as main-1, main-2, main-3.
2. For the sub process main-1, the function magic() will be executed for 3 times, and there are
2 sub processes being created during i=2,3, which can be named as main-1-2, main-1-3.
3. For the sub process main-2, the function magic() will be executed for 2 times, and there is
1 sub process being created during i=3, which can be named as main-2-3.
4. For the sub process main-3, the function magic() will be executed for 1 time, and no sub
processes will be created.
5. For the sub process main-1-2, the function magic() will be executed for 2 times, and there
are 1 sub process being created during i=3, which can be named as main-1-2-3.
6. For the sub process main-1-3, the function magic() will be executed for 1 time, and no sub
processes will be created.
7. For the sub process main-2-3, the function magic() will be executed for 1 time, and no sub
processes will be created.
-10-
8. For the sub process main-1-2-3, the function magic() will be executed for 1 times, and no
sub processes will be created.
Thus, in a total, there are 3+3+2+1+2+1+1+1=14 times executions of the function magic().
Solution 2: Let the total number of executions of the function magic() with loop number i be
F(i), we have F(i)=2*(F(i-1)+1), F(0)=0, so
F(1)=2(F(0)+1)=2
F(2)=2(F(1)+1)=6
F(3)=2(F(2)+1)=14
, thus the answer is 14.
Question:What is the possible output of the right code example? If there are multiple possible outputs,
please list them all.
Answer:
Two possible answers. ABBCC or ABCBC.
image text in transcribed

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

Data Infrastructure For Medical Research In Databases

Authors: Thomas Heinis ,Anastasia Ailamaki

1st Edition

1680833480, 978-1680833485

More Books

Students also viewed these Databases questions

Question

Describe how romantic love typically changes as time passes.

Answered: 1 week ago

Question

ARP poisoning is usually the precursor of a attack.

Answered: 1 week ago

Question

2. What efforts are countries making to reverse the brain drain?

Answered: 1 week ago