Please Code this in C. Purpose is to show shared memory in Unix environment. In this assignment, you will create 4 processes. Each of these processes will share a variable called "total". Each will increment the variable “total” by one to 100,000, 200,000, 300,000 and 500,000 respectively. Make sure that only the newly created child calls the function “process#()” After all the children have finished, the parent process should release the shared memory and terminate. Use the "wait" function so that the parent knows precisely when each of the children finishes. The parent should print the process id of each child as the child finishes execution. Then it should release shared memory and print "End of Program".   Sample output   From Process 1: counter = 270547. From Process 2: counter = 347860. From Process 3: counter = 400001. From Process 4: counter = 500000.     Child with ID: 2412 has just exited. Child with ID: 2411 has just exited. Child with ID: 2413 has just exited. Child with ID: 2415 has just exited.                   End of Simulation. *If possible utilize these items below. #include #include #include #include #include #include #include key for identifying shared memory segments cnd be down manaully or by using ftok(). typedef struct { int value; } shared_mem; l shared_mem *total;

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Topic Video
Question

Please Code this in C. Purpose is to show shared memory in Unix environment.

In this assignment, you will create 4 processes. Each of these processes will share a variable called "total". Each will increment the variable “total” by one to 100,000, 200,000, 300,000 and 500,000 respectively. Make sure that only the newly created child calls the function “process#()”

After all the children have finished, the parent process should release the shared memory and terminate. Use the "wait" function so that the parent knows precisely when each of the children finishes. The parent should print the process id of each child as the child finishes execution. Then it should release shared memory and print "End of Program".

 

Sample output

 

From Process 1: counter = 270547.

From Process 2: counter = 347860.

From Process 3: counter = 400001.

From Process 4: counter = 500000.

 

 

Child with ID: 2412 has just exited.

Child with ID: 2411 has just exited.

Child with ID: 2413 has just exited.

Child with ID: 2415 has just exited.

 

                End of Simulation.

*If possible utilize these items below.

#include <stdio.h>

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/shm.h>

#include <stdlib.h>

#include <unistd.h>

#include <errno.h>

key for identifying shared memory segments cnd be down manaully or by using ftok().

typedef struct

{

int value;

} shared_mem;

l

shared_mem *total;

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 4 images

Blurred answer
Knowledge Booster
Instruction Format
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education