Assignment
CS 5500 Advanced Operating Systems
Part-1
Please refer to the syllabus for expectations of homework professionalism and appearance. Your homework is expected to be an individual effort. It is also expected to be neat and clearly organized. The University provides access to many software applications. Use them. Hand written papers and poorly drawn diagrams are not acceptable. You must submit the softcopy of your homework in a Word file by the specified due date and time. You can find the submission link in the Blackboard.
This homework is due: May 31, 2021, 11:59 PM Total points: 16
The cover page of your homework will contain only the following information in the format given below:
Name: E-mail: Course #: CS 5500 Homework #: Homework 1 Semester: Summer 2021
1. [3 pts] Write at least two main purposes of an operating system.
2. [3 pts] What is the purpose of interrupts? Research the differences between a trap and an interrupt.
3. [3 pts] What are the two models of interprocess communication? What are the strengths and weaknesses of the two approaches?
4. [4 pts] Check out the source code on the next page and explain what the output will be at lines X and Y.
5. [Programming warming up] [3 pts] Write a program with two functions. One function will create a new file and write some content in it. The second function will read the contents after the first function has completed.
Source code for Q6
Part-2
[16 pts] Write a multithreaded program that calculates various statistical values for a list of numbers. This program will be passed a series of numbers via either the command line or an array in the code. Once it receives those numbers, it will then create three separate worker threads. One thread will determine the average of the numbers, the second will determine the maximum value, and the third will determine the minimum value. For example, suppose your program is passed the integers:
12 75 30 91 49 52 76 The program will report
The average value is 55 The maximum value is 91 The minimum value is 12
The variables representing the average, maximum, and minimum values will be stored globally. The worker threads will set these values, and the parent thread will output the values once the workers have exited.