As much class time as necessary can be devoted to discussing these programming
assignments. This must be initiated by you, not me.
All work is to be your own. You are not allowed to look at another person's code or allow another person to look at your code. Discussion of an approach is acceptable. If you don't know how to do something, check the man pages or ask me.
All programs are submitted via turnin. Your program must compile and not deadlock in order for me to see your source code. Any programs that do not compile will receive 0 credit. As you should all know by now, turnin deposits a .out file in the directory from which you executed it. It is up to you to examine the contents of the file to determine the success of the turnin operation.
In industry, you will learn very quickly that programs that do not produce correct output are not worth anything. You will find that submission of a program that does not work properly is highly frowned upon. Repeatedly submitting programs that do not work properly will probably result in your not keeping you job very long. Therefore, programs that are submitted that do not produce the correct output will be worth very little credit regardless of how trivial the error is. Learn to test your programs. I am happy to devote class time to program testing and program debug techniques, however, the students must initiate this discussion. If you do not bring it up in class, I assume you don't need the discussion.
Since all of the programs in this class involve concurrently executing entities, the test/debug techniques that you have used in the past may not be adequate.
If your program has been given shared memory, semaphores, or message queues by the OS and it does not voluntarily give them back, you can clean up by executing a utility on the command line called cs326clean. If you do not clean up after yourself, the system will run out and no one will be able to run.
In addition to code to be turned in, several assignments have a written report. The written report is due in D2L at the beginning of class on the due date for the assignment.
Note: Due dates are subject to change
Topic | Due Date | |
---|---|---|
Project 1 | Communication with Unix Pipes: calculator | February 11 |
Project 2 | Synchronization: Single Producer/ Single Consumer Bounded Buffer | March 11 |
Project 3 | Arm Wrestler: semaphores, shared memory, and chance | March 27 |
Project 4 | Message Queues - There Was an Old Lady | April 8 |
Project 5 | Signals - The Twelve Days of Christmas | Deliverable 1: April 15, Deliverable 2: April 22, and Deliverable 3: April 24 |