Implement a system of three concurrent processes which read and write sequence numbers to a file. Each of the three processes must obtain 200 integers from the file. The file only holds one integer at a given time. Given a file, F, containing a single integer, each process must perform the following steps: 1. Open F 2. Read an integer N from the file 3. Close F 4. Output N and the process ID (PID) (either on the screen or an output file) 5. Increment N by 1 6. Open F 7. Write N to F (overwriting the current value in F) 8. Close F a) Will the numbers that are read by the processes always be unique? Or do you observe duplicates of numbers being obtained by different processes? That is, does a particular integer N appear in the output of more than one process? b) Rewrite your implementation of these 3 processes to guarantee that no duplicate numbers are ever obtained by the processes. In other words, each time the file is read by any process, that process reads a distinct integer. The processes must run concurrently. c) Briefly describe why the code sequence above can lead to duplication of integer values and discuss how your solution will avoid these duplicates. Note: Processes MUST be independent and concurrent. You may NOT run one process after another (serially). Please try to do this in C or C++!

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
Question

Please help with parts a b and c for this question! Also, I use mac terminal so please give the instructions on how to compile and run the code too! 

Implement a system of three concurrent processes which read and write sequence
numbers to a file. Each of the three processes must obtain 200 integers from the file.
The file only holds one integer at a given time. Given a file, F, containing a single
integer, each process must perform the following steps:
1. Open F
2. Read an integer N from the file
3. Close F
4. Output N and the process ID (PID) (either on the screen or an output file)
5. Increment N by 1
6. Open F
7. Write N to F (overwriting the current value in F)
8. Close F
a) Will the numbers that are read by the processes always be unique? Or do you
observe duplicates of numbers being obtained by different processes? That is,
does a particular integer N appear in the output of more than one process?
b) Rewrite your implementation of these 3 processes to guarantee that no duplicate
numbers are ever obtained by the processes. In other words, each time the file
is read by any process, that process reads a distinct integer. The processes
must run concurrently.
c) Briefly describe why the code sequence above can lead to duplication of integer
values and discuss how your solution will avoid these duplicates.
Note: Processes MUST be independent and concurrent. You may NOT run one process
after another (serially). Please try to do this in C or C++!
Transcribed Image Text:Implement a system of three concurrent processes which read and write sequence numbers to a file. Each of the three processes must obtain 200 integers from the file. The file only holds one integer at a given time. Given a file, F, containing a single integer, each process must perform the following steps: 1. Open F 2. Read an integer N from the file 3. Close F 4. Output N and the process ID (PID) (either on the screen or an output file) 5. Increment N by 1 6. Open F 7. Write N to F (overwriting the current value in F) 8. Close F a) Will the numbers that are read by the processes always be unique? Or do you observe duplicates of numbers being obtained by different processes? That is, does a particular integer N appear in the output of more than one process? b) Rewrite your implementation of these 3 processes to guarantee that no duplicate numbers are ever obtained by the processes. In other words, each time the file is read by any process, that process reads a distinct integer. The processes must run concurrently. c) Briefly describe why the code sequence above can lead to duplication of integer values and discuss how your solution will avoid these duplicates. Note: Processes MUST be independent and concurrent. You may NOT run one process after another (serially). Please try to do this in C or C++!
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
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