Unix Systems Programming and Concurrency

Assignments and Projects
Spring 2010
http://grace.evergreen.edu/usp

Be sure to hit refresh on your browser to get the latest version.

Assignments and Projects

  • Assignments and projects are all from Unix Systems Programming by Robbins and Robbins, Prentice-Hall, 2003, ISBN 0130424110
  • Most assignments are programs. Some assignments may be papers to bring in for discussion and presentation.
  • Use Lab Report Guidelines for submitting your programming assignment and project work.
    asn1     asn2     asn3     asn4     asn5     asn6     asn7     asn8 - optional    

    Final Exam    
    Credit Requirements    

    Asn 1 - makeargv and Message Logs - Due Thursday Week 2

    For this assignment, you'll only electronically submit your message logging program as asn1. Do the makeargv exercises on paper and bring them to class.

    Asn 2 - Process Chains - Due Thursday Week 3

    Follow the steps listed in the Section 3.8 Process Chains Exercise p87 of Chapter 3. Your lab report should discuss and answer each of the listed questions. Please write your report so I can read it standalone, that is, include the question with your answer, or write a coherent paragraph discussing the idea raised by the question. You will have a directory with several variations of your source code, so label each code variation with the step number. Submit a tar file of your directory and include your lab report as a dot txt file (eg, Report.txt or README.txt) in the directory. Tar the whole directory, not just the files in the directory. Please include the substring asn2 in your handin tarfile name.

    Asn 3 - Process Fans - Due Thursday Week 4

    Follow the same instructions here as in the Process Chains assignment. You'll find that assignment in Section 3.9 p88 of Chapter 3.

    You must submit your work as a directory with a makefile. Include instructions on how to make and test the various versions of your program.

    Asn 4 - Shell Project Chapter 11 - Due Thursday Week 8

    The shell project in the USP textbook Chapter 11 is quite involved; more than I expect we can do in one quarter. What I'm looking for in this project is a chance for you to clean up the shell project you started in the fall quarter OS lab with simple, clean, and correct code that illustrates good system programming. You should aim to work through Section 11.1 to 11.4 covering redirection, pipes, and signal handling in the foreground. If you're ambitious you can do Section 11.6 on background processes to complete the shell lab assignment as specified in the Nutt lab 2 we did in Operating Systems.

    You're probably better off working through the code sequences in the USP textbook rather than trying to fix your code. On the other hand, it is always instructive to begin with your code and fix it by incorporating all the good coding from the textbook examples. I'll leave it up to you how to proceed, but remember, promise to achive good clean code in the end.

    You must submit your work as a directory with a makefile. Include instructions on how to make and test the various versions of your program.

    Asn 5 - Token Ring Project, Chapter 7 - Due Thursday Week 6

    1. Do the Ring Exploration in Section 7.3 p234. Try to get through step 9.
    2. Do the Simple Communication in Section 7.4 p236.
    3. Do the Mutual Exclusion with Tokens in Section 7.5 p237. Try to get this far in your programming because this is the first real concurrency application for the token ring architecture.
    You may need to make some choices as you do these exercises. Just make sure you are clear in your writeup about what you chose to do, what you observed and/or tested, and what you learned. The

    Please reference the work you do by textbook section and by the numbers in the exercises so I can more easily follow what you're doing.

    You must submit your work as a directory with a makefile. Include instructions on how to make and test the various versions of your program.

    Asn 6 - Parallel File Copy, Chapter 12.8 - Due Thursday Week 8

    Do as many of the steps as you can, at least the first 4 steps. No, just do the first 4 steps and move on the the Parallel Virtual Machine.

    You must submit your work as a directory with a makefile. Include instructions on how to make and test the various versions of your program.

    Asn 7 - Parallel Virtual Machine, Chapter 17 - Due Thursday Week 10

    Try to get through Part 4 of the project, Section 17.7.

    You must submit your work as a directory with a makefile. Include instructions on how to make and test the various versions of your program.

    Asn 8 - Multiple Barriers, Chapter 13.9 - Optional Assignment

    You may do the Multiple Barriers assignment of Section 13.9 as a replacement for one of assignments 4,6,7 (shell, parallel file copy, parallel virtual machine).

    Final Exam - Testing Report and Demo

    The final exam is a collection of annotated testing reports for 5 of your assignments. Submit all 5 reports as a single pdf file with the word final somewhere in the name. You must also be prepared to demonstrate any of your submitted assignments to the faculty.

    Your final exam testing report must include the following for each of the 5 testing programs you choose to report on.

    Here is the context of the evaluation of your testing report. Imagine that you are working for company X and that you are preparing this testing report to the project manager who will be releasing your product to the public. Your project manager wants to know EVERYTHING that the public might discover about the program BEFORE the program is released. The manager wants NO SURPRISES. Bugs or broken features are OK if they are on the list and explained. If certain things can't be feasibly tested, then those things should be noted in the buglist.

    Notes

    Expected Work for this class

    You are expected to submit 6 of the 7 assignments and the final exam. The shell assignment 4 is optional and you may replace the Parallel Virtual Machine assignment 7 with the Multiple Barrier assignment 8. You must also submit the final exam testing report.
    All work is due by Thursday of week 10

    Minimum Requirement for Credit

    In order to receive credit for Unix System Programming you must complete assignments 1,2,3,5 and one of assignments 4,6,7,8 for a total of 5 programs minimum. You must also complete and submit the final exam.

    Required for credit
    • Asn1 - Message logging,
    • Asn2 - Process Chains
    • Asn3 - Process Fans
    • Asn5 - Token Ring
    • Plus one of
      • Asn4 - Shell with redirection, pipes, and foreground signal handling
      • Asn6 - Parallel File Copy
      • Asn7 - Parallel Virtual Machine
      • Asn8 - Multiple Barriers
    • Final Exam