Xref: utzoo comp.lang.c:10528 comp.arch:5057 Path: utzoo!attcan!uunet!husc6!bbn!mit-eddie!ll-xn!ames!lll-tis!lll-winken!lll-crg.llnl.gov!brooks From: brooks@lll-crg.llnl.gov (Eugene D. Brooks III) Newsgroups: comp.lang.c,comp.arch Subject: Re: volatile (in comp.lang.c) Message-ID: <8061@lll-winken.llnl.gov> Date: 1 Jun 88 18:04:11 GMT References: <20345@pyramid.pyramid.com> <833@mcdsun.UUCP> <1988May23.003847.1114@utzoo.uucp> <21821@amdcad.AMD.COM> <206@gannet.cl.cam.ac.uk> Sender: usenet@lll-winken.llnl.gov Reply-To: brooks@lll-crg.llnl.gov.UUCP (Eugene D. Brooks III) Organization: Lawrence Livermore National Laboratory Lines: 15 In article <206@gannet.cl.cam.ac.uk> scc@cl.cam.ac.uk (Stephen Crawley) writes: >A more recent solution to the mutual exclusion is NOT expensive for multiple >processors: > > "A Fast Mutual Exclusion Algortithm" > Leslie Lamport, Nov 14 1985. > Report #5, DEC Systems Research Centre > I have coded Lamports algorithm on the Sequent Balance and it actually beat the performance of their ALM hardware that lives on the Multibus. Lamports algorithm is a good practical algorithm for machines that done have test_and_set support which runs at the same speed as main memory. If a collision for the lock occurs the algorithm is order Nprocessors in time, which is why you do want test and set hardware support. Lamport's paper is very recommended reading for those interested in shared memory multiprocessing.