Program of calculator and controller - fork, exec, and wait, Operating System

Assignment Help:

Program of Calculator and Controller with the fork, exec, and wait system calls

The objective of this assignment is to get you to be comfortable with the fork(), exec(), and wait() system calls

For this assignment you will be creating two programs: Controller and Calculator  

Controller: The controller is responsible for using the

(1) fork() command to launch another process

(2) exec() command to replace the program driving this process, while also supplying the arguments that this new program (Calculator) needs to complete its execution.

(3) wait() command to wait for the completion of the execution of the process.

The Controller is responsible for launching 4 processes that it will load with the Calculator program.

Calculator: This program requires two arguments to complete its task. This program performs a simple modulo operation on the two numbers supplied to it and prints out the result.   

All print statements must indicate the program that is responsible for generating them. To do this, please prefix your print statements with the program name i.e. Controller or Calculator. The example section below depicts these sample outputs.

Requirements of Task 

1. The Controller should spawn 4 processes using the fork() command. 

2. The Controller needs to ensure that it completes one full cycle of fork(),exec() and wait()  for a given process before it moves on to spawning a new process. 

3. Once it has used the fork()command, the Controller will then print out the process ID of the process that it created. This can be identified checking the id returned from the fork() command.

4. Child-specific processing immediately following the fork() command then loads the Calculator program into the newly created process using the exec() command. This ensures that the forked process is no longer a copy of the Calculator. This exec() command should also pass 2 arguments to the Calculator program.  For this assignment, it is recommended that you use the execlp() command.  The man page for exec will give details on the usage of execlp().

5. Parent-specific processing in the Controller should ensure that the Controller will wait()  for the child-specific processing to complete.

6. When the Calculator is executing it prints out its processID; this should match the one returned by the fork()command in step 3.

7. The Calculator then completes, and prints the result of, the modulo operation on the two arguments that were passed to it in step 4. The operation that it performs on these arguments is argOne modulo argTwo.

8. Once the Calculator completes, the Controller gets out of its wait()  and proceeds to repeat step 2. The goal is to ensure that 4 child processes are created in total.  

Figure 1 below depicts the assignment scenario.

1532_Program of Calculator and Controller -  fork, exec, and wait.png


Related Discussions:- Program of calculator and controller - fork, exec, and wait

Describe the file system architecture, Describe the file system architectur...

Describe the file system architecture. File System Architecture contains the subsequent components:- Device Driver 1 Device Driver 2 Device Driver 3 Basic fi

Batch system, what is a batch system give me answer in simple words so that...

what is a batch system give me answer in simple words so that i can understand

Why system calls have to be implementing by a interpreter, Q. What system c...

Q. What system calls have to be implementing by a command interpreter or shell in order to start a new process? Answer: In the UNIX systems a fork system call followed by an ex

What is an operating system process, What is an operating system process? H...

What is an operating system process? How is it different from a program? Why do we need the concept of a process, rather than simply talk about programs running in memory? The e

Process Management, In a table format, discuss the differences between th...

In a table format, discuss the differences between the fixed partition and the variable partition memory organization in terms of the basic idea, memory structure, advantages

Define the dosexecpgm function used in the os/2, Define the DosExecPgm Func...

Define the DosExecPgm Functions used in the OS/2 DosExecPgm (objBuffer, objLen, flags, cmdLine, env, &resultCode, execName) DosExecPgm function is designed to load an execut

Design a android application, As mentioned earlier, the game engine will b...

As mentioned earlier, the game engine will be used as the base of developing the Go game for the Android. This includes improving logic of the game, design good graphics and optim

Dynamic scheduling, Dynamic scheduling : The number of thread in a program...

Dynamic scheduling : The number of thread in a program may be changed during the course of operation. Dynamic priority scheduling is a kind of scheduling algorithm in which the pr

Explain the communications of request or response interface, Explain the Co...

Explain the Communications of Request or Response Interface The inter-application communication must provide four specific interface to the CSInterface() components. A client m

Protection scheme in unix, Q. Consider a system that holds 5000 users. Pre...

Q. Consider a system that holds 5000 users. Presume that you want to allow 4990 of these users to be able to access one file. a. How would you denote this protection scheme in

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