C++ Part 1: Working With Process IDs Modify the getProcessID() function in the file named Processes.cpp The function must find and store the process's own process id The function must return the process id to the calling program. Note that the function currently returns a default value of -1. Hint: search for “process id” in the “System Calls” section of the Linux manual.   Take a screenshot of a sample output and upload the picture as part of your assignment submission. Part 2: Working With Multiple Processes    Modify the createNewProcess() function in the file named Processes.cpp as follows: The child process must print the message I am a child process! The child process must then return a string with the message I am bored of my parent, switching programs now The parent process must print the message I just became a parent! The parent process must then wait until the child process terminates, at which point it must return a string with the  message My child process just terminated! and then terminate itself. Hint: search for “wait for process” in the “System Calls” section of the Linux manual. Part 3: Working With External Commands Modify the replaceProcess() function in the file named Processes.cpp as follows: The parent process will use the fork() function to create a child process. This step has been done for you. The child process must then change its memory image to a different program by using the execvp system call (http://linux.die.net/man/3/execvp). The parameter args that has been passed to the replaceProcess() function is the array of parameters to be passed to execvp, telling it which program to execute and what parameters to pass to that program.    For example, the test code provided to you executes the “ls” (directory list) program with the parameter “-l” by setting the args array as follows: char * args[3] = {(char * )"ls", (char * )"-l", NULL}; Finally, in the parent process, you must make sure to invoke the necessary system call to wait for the child process to terminate. Once the child terminates, exit the program. OUTPUT IN IMAGES

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

C++

Part 1: Working With Process IDs

  1. Modify the getProcessID() function in the file named Processes.cpp
  1. The function must find and store the process's own process id
  2. The function must return the process id to the calling program. Note that the function currently returns a default value of -1.
    Hint: search for “process id” in the “System Calls” section of the Linux manual.

 

Take a screenshot of a sample output and upload the picture as part of your assignment submission.

Part 2: Working With Multiple Processes 

 

  1. Modify the createNewProcess() function in the file named Processes.cpp as follows:
    1. The child process must print the message I am a child process!
    2. The child process must then return a string with the message I am bored of my parent, switching programs now
    3. The parent process must print the message I just became a parent!
    4. The parent process must then wait until the child process terminates, at which point it must return a string with the  message My child process just terminated! and then terminate itself. Hint: search for “wait for process” in the “System Calls” section of the Linux manual.

Part 3: Working With External Commands

  1. Modify the replaceProcess() function in the file named Processes.cpp as follows:
    1. The parent process will use the fork() function to create a child process. This step has been done for you.
    2. The child process must then change its memory image to a different program by using the execvp system call (http://linux.die.net/man/3/execvp). The parameter args that has been passed to the replaceProcess() function is the array of parameters to be passed to execvp, telling it which program to execute and what parameters to pass to that program. 

 

For example, the test code provided to you executes the “ls” (directory list) program with the parameter “-l” by setting the args array as follows:

char * args[3] = {(char * )"ls", (char * )"-l", NULL};


  1. Finally, in the parent process, you must make sure to invoke the necessary system call to wait for the child process to terminate. Once the child terminates, exit the program.

OUTPUT IN IMAGES

Part 1: Working With Process IDs
Process ID: 3329
Part 2: Working With Multiple Processes
I just became a parent!
I am a child process!
I am bored of my parent, switching programs now
My child process just terminated!
Part 3: Working With External Commands
total 52
-rwxr-xr-x 1 ubuntu ubuntu 14570 Jan 20 20:21 Assignment_3_2
-rw-r--r-- 1 ubuntu ubuntu 1124 Jan 20 20:18 Assignment_3_2.cpp
-rw-r--r-- 1 ubuntu ubuntu 4984 Jan 20 20:21 Assignment_3_2.o
-rw-r--r-- 1 ubuntu ubuntu 378 Jan 20 20:18 Makefile
-rw-r--r-- 1 ubuntu ubuntu 1466 Jan 20 20:20 Processes.cpp
-rw-r--r-- 1 ubuntu ubuntu 495 Jan 20 20:18 Processes.h
-rw-r--r-- 1 ubuntu ubuntu 5088 Jan 20 20:21 Processes.o
-rw-r--r-- 1 ubuntu ubuntu
905 Jan 20 20:18 Processes_SK.cpp
Transcribed Image Text:Part 1: Working With Process IDs Process ID: 3329 Part 2: Working With Multiple Processes I just became a parent! I am a child process! I am bored of my parent, switching programs now My child process just terminated! Part 3: Working With External Commands total 52 -rwxr-xr-x 1 ubuntu ubuntu 14570 Jan 20 20:21 Assignment_3_2 -rw-r--r-- 1 ubuntu ubuntu 1124 Jan 20 20:18 Assignment_3_2.cpp -rw-r--r-- 1 ubuntu ubuntu 4984 Jan 20 20:21 Assignment_3_2.o -rw-r--r-- 1 ubuntu ubuntu 378 Jan 20 20:18 Makefile -rw-r--r-- 1 ubuntu ubuntu 1466 Jan 20 20:20 Processes.cpp -rw-r--r-- 1 ubuntu ubuntu 495 Jan 20 20:18 Processes.h -rw-r--r-- 1 ubuntu ubuntu 5088 Jan 20 20:21 Processes.o -rw-r--r-- 1 ubuntu ubuntu 905 Jan 20 20:18 Processes_SK.cpp
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 8 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY