Write a solution for the producer/consumer problem using processes instead

Write a solution for the producer/consumer problem using processes instead of threads. Refer to the solution worked out in the demo and make sure you fully understand what is going on there before beginning this one (source file is attached to this assignment). Turn in all code and a text file called README containing instructions for building and running your programs. All programs must compile and run on os.cs.siue.edu. Descriptions of functions listed below in bold can be found in the man pages (e.g. man fork), though sometimes you may need to specify the correct section of the manual to get the correct page (e.g. man 3 printf). Approach the homework in phases and incrementally grow your solution: start with process creation (e.g. if there’s one producer and one consumer specified, one process -the parent- will fork two others, a producer program and a consumer program), then move on to shared memory stuff (making sure that the children can read what the parent is placing in there), and only then finish up the producer/consumer portion (pretty much the same as the threaded version).

Use the following functions for process creation, etc:

fork – create a new process

execlp – replace current process image with a new process image (i.e. execute a file)

waitpid – allows parent to wait for a child with specified pid

Use the following functions for sharing stuff between processes:

shm_open – create a named chunk of shared memory

ftruncate – to change the size of the named chunk of shared memory

mmap – to map the shared memory chunk into current process’ address space

Example:

Let’s say you want to share a struct, like:

typedef struct shared{

   int some_int_to_share;

   int some_other_int_to_share;

   …

}shared;

In the parent process (the one that starts everything):

int fd = shm_open(“prodconshare”, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);

ftruncate(fd, sizeof(shared));

shared* sharedstruct = mmap(NULL, sizeof(shared), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

In the child process it is similar, but the child process would not create the named chunk if it doesn’t exist and the child process has no need to resize the chunk (so, no ftruncate):

int fd = shm_open(“prodconshare”, O_RDWR, S_IRUSR | S_IWUSR);

shared* sharedstruct = mmap(NULL, sizeof(shared), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

Use the following functions to synchronize the producers and consumers:

sem_init – initialize a semaphore

sem_wait – decrement a semaphore

sem_post – increment a semaphore

(remember that decrementing a semaphore below zero will put the calling process to sleep and sem_post will have to be called by another process to wake it up. You might think about stuffing some semaphores into the shared memory, using a struct to arrange the shared memory chunk’s contents.)

The producers can exit when they’ve produced their whole string, e.g. “hello world”.

For simplicity, the consumers may run indefinitely and be terminated with ctrl+c.

Other useful functions:

malloc – allocate memory

sizeof – get the size of things

printf – print stuff

perror – print error stuff

Share This Post

Email
WhatsApp
Facebook
Twitter
LinkedIn
Pinterest
Reddit

Order a Similar Paper and get 15% Discount on your First Order

Related Questions

Q.1. Explain the differences among various concepts of yield such

   Q.1. Explain the differences among various concepts of yield such as yield to maturity, yield to call, and anticipated realized yield. ( 2 Marks) Q.2. Explain the effect that duration has on bond price sensitivity to interest rate changes and relate zero-coupon bonds to the concept of duration.  (

Rommel Lantajo Posted Date May 26, 2022, 6:13 AM Unread

 Rommel Lantajo Posted Date May 26, 2022, 6:13 AM Unread Injuries resulting from an accident or trauma are directly associated with cellular death (Ahmadinejad et al., 2021). In adults less than 44 years old, trauma remains the leading cause of death (Ahmadinejad et al., 2021). According to Ahmadinejad et al.

Intro to Co-Design What we want you to do For your Nursing Assignment Help

Intro to Co-Design What we want you to do For your individual project, assemble a co-design team, using selected principles of design justice. In your response, answer the following questions: 1) If Intro to Co-Design What we want you to do  For your individual project, assemble a co-design team, using

Post one thread of at least 1,000-1,500 words. For each

Post one thread of at least 1,000-1,500 words. For each thread, students must support their assertions with scholarly citations in APA format. Any sources cited must have been published within the last five years. Submit a thread in response to the following questions:  · Chapter 1: Why is shared information

The development of nursing knowledge is an ongoing process. Discuss

The development of nursing knowledge is an ongoing process. Discuss the case for the ongoing development and use of nursing grand theories and conversely, make a case for the obsolescence of nursing grand theories for today’s practice and research. Requirements: APA 7th edition 400 words minimum Less than 10% At

Consider the differences between Agile and waterfall. Select 1 methodology

Consider the differences between Agile and waterfall. Select 1 methodology to use for a project plan for this initiative. Create a simplified project plan such as the examples listed in the “Tips” section below. Include, at least, the following criteria: (the predecessor and notes are frequently missed) Name of task 

This discussion thread covers Joel Mokyr’s book “A Culture of

This discussion thread covers Joel Mokyr’s book “A Culture of Growth.” After you read the book, and watch the presentation videos, you are expected to (1) post an original comment addressing one of the prompts below and (2) comment on one other student’s existing post on the topic. In doing

A strong mentorship program provides an opportunity for experienced health care workers to share their knowledge and offer guidance to colleagues. As

A strong mentorship program provides an opportunity for experienced health care workers to share their knowledge and offer guidance to colleagues. As a manager at a health care organization, you have been asked to develop a personal leadership philosophy as an example for a mentorship program’s participants that your leadership team has instituted for developing new

5 pages Write a research paper based on contingency planning

5 pages   Write a research paper based on contingency planning and the scenario-planning process. Be sure to include the following: Define contingency planning. How does contingency planning differ from scenario planning? Provide an overview of the scenario-planning process. Why is a clearly defined scenario-planning process important?

Research your company’s (CVS) financial reports for 2017. Complete a

Research your company’s (CVS) financial reports for 2017. Complete a 2- to 3-page FAQ/Shareholder Analysis. Evaluate economic conditions that influence company performance. Consider political, environmental, currency (money), global economics, and government influences on economic conditions. Compare market conditions with the company’s performance for 2017. Conclude how the market conditions that

Read carefully Chapter 17-Persuasive Writing: Strategies for Argumentation from your

  Read carefully Chapter 17-Persuasive Writing: Strategies for Argumentation from your course textbook. Part III  Create your outline for your second research paper. Please use the outline worksheet provided. Remember you should choose one of the following topics: Should gene-editing be abolished? OR Should the penalty for possession of prescription opioids be lessened?

Judicial Review- Fairness in the law

OBJECTIVE • To gain an understanding of American government through study and research of individually given topic • To further perfect proper term paper format through the use of citations and bibliography REQUIREMENTS • Student will be assigned specific topics relating to American Government. • Paper must be TYPED with

Question 9. Discuss the two main reasons liquidity risk may

Question 9. Discuss the two main reasons liquidity risk may develop and the advantages and disadvantages of the two main ways a depository institution may attempt to offset its effects. [20 marks] Question 10. Explain the factors influenced the off-balance-sheet activities growth prior to the 2008/9 financial crisis and their

As a principal, you will be responsible for observing and

  As a principal, you will be responsible for observing and evaluating special education teachers. This process will include pre-conferences, observations, and feedback. To maximize effectiveness, this process must be collaborative, clear, and complete. Allocate at least 1 hour in the field to support this field experience. In collaboration with

You will create this assignment following the Assignment Detail instructions

  You will create this assignment following the Assignment Detail instructions below. Review the tutorial How to Submit an Individual Project.  Using the company research you conducted in your Unit 3 assignment,  write a paper about the company you chose that describes the firm and  its strategy. Using information from AIU’s

What role does the media play in shaping public opinion?

Candidates who run for office are well aware of the impact the media has on their campaign. In fact, without the media, most people would know little, if anything, about the people who run for office, much less those who are elected. So, their role is critical, because whether they