A UNIX computer system handles printing in the following manner:
-3 USER processes submit print jobs of various sizes at random intervals to a VALIDATION QUEUE.
-jobs are taken from the validation queue by a single VALIDATOR process which will check for a user entry on a USER STATUS file.
-the validator will take ONE of the following actions, according to the presence or absence of a user entry and the user status:
a. for valid jobs, the validator submits the print job to the PRINT LIST.
b. for invalid jobs, the validator sends a message to the LOGFILE explaining why the print job has been rejected.
-print jobs are taken from the print queue by 2 PRINTER processes.
-after printing, printers send a message to the LOGFILE reporting that the print job has been executed.
-a single REPORT process reads the log file and copies new entries to the screen.
1. Create a simulation of the scenario in PERL:
-you must simulate all the aspects of the scenario.
-the simulation must contain a suitable number of instances of each of the scenario processes to represent the full complexity of the system simulated.
-you must use "flock" to simulate critical regions etc.
-you must submit a working system.
-for development and assessment purposes, verbose reporting of process activity is advisable.
-diagrams which show process interaction.
-descriptions of the interaction of the processes, queues and list.
-explanations of the operating system utilities used (included PERL commands e.g by using commented code snippets).
-code listing with appropriate comments.
-commented test runs and test data.