Unix Systems Programming: Lab 9 - pThreads

Due:          Friday, March 10, 2017 @ 5:00 pm.


Purpose and Rationale

The purpose of this lab is to allow students to become comfortable with Multithreaded Programming using the POSIX Pthreads API.

Primary Resouces:

FAQ (submission instructions and other useful stuff)
There are several references for this labs

All work should be done on a machine in the department's Linux cluster. You can refer to ssh for more information on how to log into a remote machine.

Marks Distribution

TOTAL 12 points

Lab 9 : Pthreads

Project

Your code for Lab 8 was designed to support multiple clients, but one client at a time. You kept clients waiting until your server finished handling the current client. In this lab you will extend your spell-checker to support multiple clients at the same time.

Your server should be able to support multiple client's simultaneously. We will test that it correctly handles up to three client's simultaneously.

You should use synchronization mechanisms (such as mutexes) to protect any shared data you might use.

Building

Be sure to confirm that your environment is configured correctly.  In general, to build pthread code on linux, you simply use the -pthread flag, as in:

gcc -pthread -o my_thread my_thread.c

You can use test by building the samples included in the following:

Deliverables

Carefully follow the 4 steps below.

  1. Create a directory:
           lab9
  2. This directory will contain:
  3. When you are finished with your directory you will create a compressed archive file using tar (this utility stores your directory as a single file, then compresses its size.)
           tar -czvf   username.lab9.tgz   username.lab9

  4. You will email your file to our TA as an attachment. He will send an acknowledgement that your assignment has been received.
  5. To  Nicholas Flees (nickflees@uchicago.edu)
    Attachment  username.lab9.tgz
    Subject  CSPP51081-lab9