Complex programs, even those that are moderately so, are usually broken down into logically and functionally separate constituents, rather than being monolithic programs that do "everything." This allows for easier development, maintenance, and flexibility, as well as better comprehensibility of software. Although such division could be done in numerous ways, several of them formal and standardized, one general outcome is that on a typical operating system, there might be multiple entities performing related operations. Such entities often need to share information, synchronize, and otherwise communicate with each other. This chapter explores several means of information sharing and synchronizationinterprocess communicationin Mac OS X. |