4,732 research outputs found

    Higher levels of process synchronisation

    Get PDF
    Four new synchronisation primitives (SEMAPHOREs, RESOURCEs, EVENTs and BUCKETs) were introduced in the KRoC 0.8beta release of occam for SPARC (SunOS/Solaris) and Alpha (OSF/1) UNIX workstations [1][2][3]. This paper reports on the rationale, application and implementation of two of these (SEMAPHOREs and EVENTs). Details on the other two may be found on the web [4]. The new primitives are designed to support higher-level mechanisms of SHARING between parallel processes and give us greater powers of expression. They will also let greater levels of concurrency be safely exploited from future parallel architectures, such as those providing (virtual) shared-memory. They demonstrate that occam is neutral in any debate between the merits of message-passing versus shared-memory parallelism, enabling applications to take advantage of whichever paradigm (or mixture of paradigms) is the most appropriate. The new primitives could be (but are not) implemented in terms of traditional channels, but only at the expense of increased complexity and computational overhead. The primitives are immediately useful even for uni-processors - for example, the cost of a fair ALT can be reduced from O(n) to O(1). In fact, all the operations associated with new primitives have constant space and time complexities; and the constants are very low. The KRoC release provides an Abstract Data Type interface to the primitives. However, direct use of such mechanisms still allows the user to misuse them. They must be used in the ways prescribed (in this paper and in [4]) else their semantics become unpredictable. No tool is provided to check correct usage at this level. The intention is to bind those primitives found to be useful into higher level versions of occam. Some of the primitives (e.g. SEMAPHOREs) may never themselves be made visible in the language, but may be used to implement bindings of higher-level paradigms (such as SHARED channels and BLACKBOARDs). The compiler will perform the relevant usage checking on all new language bindings, closing the security loopholes opened by raw use of the primitives. The paper closes by relating this work with the notions of virtual transputers, microcoded schedulers, object orientation and Java threads

    Slavery At Sea: Terror, Sex, And Sickness In The Middle Passage

    Get PDF
    Diving into the Wreck For a century, docile mainstream American historians managed to dismiss race-based enslavement as the central cause of the Civil War -- an amazing feat. And they also managed, for the most part, to avoid looking hard at the huge and long-lived Atlantic Slave Trade. But with ...

    \u3cem\u3e Tacito predicatore\u3c/em\u3e: The Annunciation Chapel at the Madonna dei Monti in Rome

    Get PDF
    Trent could not have been clearer. Images were permitted in churches to instruct the faithful and confirm their faith. And bishops should approve only those commissions and depictions that would serve such purposes. Late in 1563, the council\u27s twenty-fifth and final session explicitly advised that stories of the mysteries of our redemption . . . in paintings and other representations enable visitors to reflect on articles of the faith challenged at that time by Protestants less well disposed to the use of images. Trent, to be sure, issued guidelines. Nudity was frowned on. Ambiguity ought to be avoided. Scriptural stories should be presented simply, as they had been told. The council aimed to answer reformers\u27 complaints and to counter Reformation iconoclasm. Prelates in attendance echoed Pope Gregory I\u27s sanction of images—his characterization of art as scripture for the illiterate—while instructing artists on their religious obligations. And no bishop took the council\u27s decrees on images more seriously than did Gabriele Paleotti, who attended the last session before returning to his see of Bologna

    Rapidly Converging Activity Expansions For Representing The Thermodynamic Properties Of Fluid Systems: Gases, Non-Electrolyte Solutions, Weak And Strong Electrolyte Solutions

    Get PDF
    For dilute gases and non-electrolyte solutions in the McMillan–Mayer standard state, an activity expansion due to Mayer has great advantages over the normal concentration expansion (virial equation) for strongly associating species. For weakly interacting systems, both approaches are suitable. The activity expansion eliminates the need to differentiate between strong “chemical” interactions and weak “physical” interactions since the same equation is used in each situation. The equation has been modified to represent electrolyte solutions in the McMillan–Mayer standard state by requiring that it be consistent with the Debye–Hückel and higher order limiting laws for strong electrolytes and that it be equivalent to a chemical association model for weak electrolytes. The result is a compact equation which contains no arbitrary ion-size parameters and which does not require the classification of an electrolyte as strong or weak. For 2:2 electrolytes, the equation gives a very good fit to the anomalous low concentration region. For practical thermodynamic calculations, similar equations for molal activity coefficients are proposed; good fits of the data are obtained
    • …
    corecore