Exam 1: Oct 12 - Take home style. Runs total 2 hours between end of class and next morning (11 AM?) =============================================================== General Notes to Precede the next section Process - Executing program A Couple of Definitions Wrt processes - Parallel: Correspond precisely - Concurrent: Lifetimes overlap, possibly by as little as a nanosecond - Background process can write to terminal, but must come to foreground in order to read. ========================================================== Unix IPC & Synchronization Communicating Sequential Processes - C.A.R. Hoare - One of the pre-eminent papers in the history of our discipline. - Link is on forum IPC - Threads are lightweight * Use mutex locks to synchronize - Processes are heavyweight * Use semaphores or other constructs (e.g. CCR, monitor) to synchronize ========================================================== Project 1 Notes Command lines should give error feedback for proper usage: e.g. Usage: p1 createBin printRec <# recs> D2L: Submit .txt, .doc(x), .xls(x), pdf, etc, known file type. Makefile: Must write correctly: Example: all: p1 createBin printRecs p1: p1. $(compiler) p1. -o p1 Doxygen: - newlines end \brief ======================================================== IPC - Interprocess Communication Constructs - Intra-machine: Only accessible where created. - In the ctl functions, often not all arguments are used, e.g. removing via RMID leaves other arguments (except id) blank or 0. - Beware that msgsiz should be the size of the message itself, not the struct.