tage@staff.cs.uit.no (Tage Stabell-Kuloe) (01/25/91)
0) While I wait for the sources - how is mutex_lock and mutex_unlock implemented in c-threads ? 1) To what extent does ISIS use the mechanisms provides by MACH ? -- //// Tage Stabell-Kuloe |e-mail : tage@staff.cs.uit.no //// ///Dept. of Computer Science, University|Official : postmaster@cs.uit.no /// //of Tromsoe, N-9000 TROMSOE, NORWAY |Phone/Fax: +47-83-44053/44580 // / "'oe' is '\o{}' in TeX" |#include : <disclaimer.std> /
ken@gvax.cs.cornell.edu (Ken Birman) (01/25/91)
In article <1991Jan25.083046.17960@mack.uit.no> tage@staff.cs.uit.no (Tage Stabell-Kuloe) writes: > ... question for the Mach people to answer, followed by: >1) To what extent does ISIS use the mechanisms provides by MACH ? > Under Mach, ISIS maps all its operations into the cthreads equivalents; in fact, our interface is based on Eric Cooper's. A consequence is that ISIS allows you to mix direct calls to the native threads routines and calls to the ISIS routines -- a plus in applications that need to mix code from several sources. If you have been following ISIS, you probably are aware that we are now starting a redesign/reimplementation activity to arrive at a lightweight port-groups mechanism for systems like Chorus, Mach, Ameoba, etc., with the rest of ISIS presented as a set of toolkits that talk to this lower-level facility. We are doing this mostly for performance and to simplify our system. But, multithreading is also an issue. In this new system, ISIS won't have its own private threads package at all. Under Mach, users will will just see the normal threads primitives. However, ISIS will need to make stylized use of mutex locks, since this is how one controls event orderings under Mach and Chorus. One of our goals is to make better use of pthreads (parallel version of cthreads). Currently you can do this in ISIS, but it is a bit clumsy: you need to be very aware of parallelism and use an ISIS macro called ISIS_THREAD_LEAVE/ISIS_THREAD_ENTER to release or re-acquire the ISIS mutex. The new system will be designed to exploit multiple threads from the outset and will have some constructs, like causal domains, to make this quite a bit easier for the user. When our interface specifications document comes out, we'll post a pointer. Ken