(Latest Revision: Wed Nov 1 21:04:31 PDT 2017 ) setupDirections




Login to a lab mac

Go to Finder (First Icon on the Left in the 'Dock')
  Go to Finder preferences
  In preferences, go to the top where it says "Sidebar" and click on that
  Under Favorites, make sure there's a check mark next to the 'little house'
    (This makes sure that an icon representing your home directory will be
      displayed in the sidebar when you select files.)
  Click on "General" and make sure to select your home directory (little house) 
      in the drop-down menu under "New Finder windows show:"
  Click on "Advanced"
      Make sure "show all filename extensions" is checked
  Dismiss the preferences window by clicking on the red dot

Start up TextEdit (Blank paper and pen icon in the Dock, 
                     or Finder Window -> Applications -> TextEdit.app)
  Go to preferences.
     Click on "NewDocument" at the top
        Make sure "Plain Text" is selected under "Format"
        Also make sure "correct spelling automatically is un-checked"
     Click on "Open and Save" at the top
        Make sure that 'Add ".txt" extension to plain text files' is NOT checked.
  Dismiss the preferences window by clicking on the red dot

Start up Safari or Firefox
Create a new file with TextEdit (File -> New)
Navigate in the web browser to the assignment cover page
Select "Program Skeleton (Shell)" on the assignment cover page.
Follow the directions to select and copy the text to the clip board 
   (Edit -> Copy works, or command-c on keyboard)
Paste the clipboard contents into the new file window (Edit -> Paste, or command-v)
Enter the save command in TextEdit (File -> Save)
Click on the sidebar on the 'little house' icon for your home directory
Click on the bottom left where it says "NewFolder"
Type Prog01 or some such name for the name of the directory and click on the "Create" button
In the "Save As" panel at the top, type sequence.cpp for the name of the file.
Then click on bottom right where it says "Save"

Create three more files with TextEdit, and using procedures like you did for 
  sequence.cpp, make copies of files sem.cpp, sem.h and Makefile.
  (Those are the exact names the files need to have.)  
  Save all the files to the same directory where you saved sequence.cpp 
  (Of course, you only need to create the directory once.)


Start up Terminal (Click on the icon that looks like a computer screen in the Dock,
     or Finder -> Applications -> Utilities -> Terminal.app)
'cd' to the directory where you put the files - you would enter 
cd Prog01
if you named the directory Prog01
Enter the ls command
The shell should print the names of all the files - like this

john@lucifer: ls
./              Makefile        sem.h
../             sem.cpp         sequence.cpp

now enter the single command 


You should see something like this

john@lucifer: make
g++ -c sequence.cpp
g++ -c sem.cpp
g++ -o sequence sequence.o sem.o

(except your shell prompt is something different from "john@lucifer")

Now do another ls

john@lucifer: ls
./              Makefile        sem.h           sequence       sequence.o
../             sem.cpp         sem.o           sequence.cpp

The file called sequence is your compiled program.  Enter its name to execute it

Something like this happens

john@lucifer: sequence

Welcome to The Child Thread Workplace!

Mother Begins Spawning Threads.

Child # 1 has completed its assignment.
Child # 5 has completed its assignment.
Child # 4 has completed its assignment.
Child # 2 has completed its assignment.
Child # 0 has completed its assignment.
Mother Finishes Spawning Threads.

All children have now reported that they finished.
The value of the thrds_finished counter is: 1.
BAD COUNTER VALUE!! - Critical Section Problem Failure!!
Mother exiting ... 

Child # 3 has completed its assignment.


You will want to edit the sequence.cpp file.  
If you find sequence.cpp using the Finder and double click 
on its icon, the Xcode application will probably open it.
You can use Xcode to edit sequence.cpp.  (I don't particularly
like that idea.)  Another option, which I personally like better,
is to use TextEdit or some other simple text editor to edit sequence.cpp.
If you have an editor you like, feel free to use it.  To use TextEdit, just
go to the File menu in TextEdit, choose "Open", navigate to sequence.cpp in
the browser, and click on "Open" in the bottom right of the window.  
Then you can make whatever changes you want.  
Pico is an editor that you can use from a terminal window, either the Terminal app
or the terminal window you get when you do remote access from, say, your computer 
at home.  

(So pico is awesome because it allows you to edit the file on the remote 
lab computer while you are at home.) 

To run pico, cd to the directory containing sequence.cpp, and then enter

pico sequence.cpp

Pico will start up, and you can edit the file.  There will be a little menu at the
bottom of the screen telling you what the editor commands are that you need to know.