CIS 552 Advanced Unix Programming Professor Spiegel Kutztown University
Interprocess Communication Threads? (maybe) Process Coordination Topics: Concurrency Unix Internals pipe, fork, exec, wait, signals, etc; Interprocess Communication Shared Memory, Semaphores, Message Queues? Threads? (maybe) Process Coordination Critical Sections Deadlock Topic List
Here’s where we start Time – used to order events Event – A (potentially) sensed change Process – An executing program Is a program an executing process? No. A program can, when executed, cause the occurrence of multiple processes
A Couple of Definitions n. union; concurrence of events Concurrent – adj. acting in conjunction; agreeing; taking place at the same time; accompanying; n. a joint or contributory cause Concurrently – adv. to run together Parallel – adv. continuously at equal distance apart; precisely corresponding; similar; n. a line equidistant from another at all points; a thing exactly like another
Precedence Graphs Directed Edge – Arrow from one node to another e.g. B Assume A & B are processes A occurs before (precedes) B, OR, B occurs after (follows) A A A B C D Sequential Facts: A precedes B A precedes C A precedes D B precedes D C precedes D Question: What is B’s relationship to C? B D A C
Compiling & Debugging Run gdb under emacs to debug your programs Manual is available at URL: http://faculty.kutztown.edu/spiegel/Debugging/DebugPrimer.htm You must also be able to write makefiles on your own Manual is available at URL: http://faculty.kutztown.edu/spiegel/Makefile/Makefile.htm There is a link to each of these on my faculty home page