{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,17]],"date-time":"2023-09-17T06:40:52Z","timestamp":1694932852601},"reference-count":33,"publisher":"Wiley","issue":"14","license":[{"start":{"date-parts":[[2014,8,20]],"date-time":"2014-08-20T00:00:00Z","timestamp":1408492800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"funder":[{"name":"Comunidad de Madrid (CAM)","award":["S2009\/TIC-1692"]},{"name":"Spanish Government","award":["TIN2010-17344"]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Concurrency and Computation"],"published-print":{"date-parts":[[2015,9,25]]},"abstract":"Summary<\/jats:title>The Nix operating system permits different roles to be assigned to the cores. One of the roles is to be able to run user\u2010space code with no interrupts from the operating system, which is particularly useful for high\u2010performance computing. System calls are especially expensive to a core playing this role. This paper presents a new implementation of optimistic semaphores that avoid performing expensive system calls in an uncontended scenario. The implementation is straightforward and somewhat unorthodox: a semaphore is based on a data structure and a lock that are shared between user space and kernel space. This study aims at evaluating if such an approach is viable. In addition, the implementation includes a non\u2010deterministic choice operation over a collection of semaphores, altsems<\/jats:italic>. This novel operation facilitates the creation of higher\u2010level communication mechanisms, such as sockets and channels. To support this claim, we implemented a new kind of buffered communication channels named tubes<\/jats:italic>, tailored for communicating processes running on different (heterogeneous) cores. The paper describes the implementation of the semaphores and the tubes, a comparative analysis of optimistic and non\u2010optimistic semaphores on Nix, and a comparative analysis of tubes and other kinds of communication channels that are available on the Nix operating system. Copyright \u00a9 2014 John Wiley & Sons, Ltd.<\/jats:p>","DOI":"10.1002\/cpe.3363","type":"journal-article","created":{"date-parts":[[2014,8,21]],"date-time":"2014-08-21T02:49:21Z","timestamp":1408589361000},"page":"3676-3701","source":"Crossref","is-referenced-by-count":0,"title":["Optimistic semaphores with non\u2010deterministic choice operation for heterogeneous manycore systems"],"prefix":"10.1002","volume":"27","author":[{"given":"Enrique","family":"Soriano\u2010Salvador","sequence":"first","affiliation":[{"name":"LSUB, GSyC, ETSIT Universidad Rey Juan Carlos Madrid Spain"}]},{"given":"Gorka Guardiola","family":"Muzquiz","sequence":"additional","affiliation":[{"name":"LSUB, GSyC, ETSIT Universidad Rey Juan Carlos Madrid Spain"}]},{"given":"Francisco J.","family":"Ballesteros","sequence":"additional","affiliation":[{"name":"LSUB, GSyC, ETSIT Universidad Rey Juan Carlos Madrid Spain"}]}],"member":"311","published-online":{"date-parts":[[2014,8,20]]},"reference":[{"key":"e_1_2_9_2_1","doi-asserted-by":"publisher","DOI":"10.1002\/bltj.21543"},{"key":"e_1_2_9_3_1","unstructured":"PikeR PresottoD ThompsonK TrickeyH.Plan 9 from Bell Labs.Proceedings of the Summer 1990 UKUUG Conference London UK 1990;1\u20139."},{"key":"e_1_2_9_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/SBAC-PAD.2012.14"},{"key":"e_1_2_9_5_1","volume-title":"Operating Systems: Design and Implementation","author":"Tanenbaum AS","year":"1997"},{"key":"e_1_2_9_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/563517.563477"},{"key":"e_1_2_9_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/363095.363143"},{"key":"e_1_2_9_8_1","volume-title":"The Art of Unix Programming","author":"Raymond ES","year":"2003"},{"key":"e_1_2_9_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/322344.322352"},{"key":"e_1_2_9_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/122572.122574"},{"key":"e_1_2_9_11_1","unstructured":"SchillingsB.Be engineering insights: Benaphores. (Available from:http:\/\/www.haiku\u2010os.org\/legacy\u2010docs\/benewsletter\/Issue1\u201026.html#Engineering1\u201026) [Accessed on 31 July 2014]."},{"key":"e_1_2_9_12_1","volume-title":"AUUG Conference Proceedings","author":"Franke H","year":"2002"},{"key":"e_1_2_9_13_1","unstructured":"MullenderS CoxR.Semaphores in Plan 9.3rd International Workshop on Plan 9 Volos Greece 2008;53\u201361."},{"key":"e_1_2_9_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_2_9_15_1","unstructured":"The Go programming language 2013."},{"key":"e_1_2_9_16_1","unstructured":"Semacquire. Plan 9 Programmer's Manual Section 2: Library Functions 2012."},{"key":"e_1_2_9_17_1","unstructured":"Lock. NIX Programmer's Manual Section 2: Library Functions 2012."},{"key":"e_1_2_9_18_1","unstructured":"Amd64 Architecture Programmer's Manual Volume 3: General Purpose and System Instructions 2011."},{"key":"e_1_2_9_19_1","unstructured":"Soriano\u2010SalvadorE GuardiolaG.Atomic Increments.7th International Workshop on Plan 9 Dublin Ireland 2012;56\u201363."},{"key":"e_1_2_9_20_1","unstructured":"RitchieDM.The Limbo Programming Language Inferno Programmer's Manual Vol. 2 2000."},{"key":"e_1_2_9_21_1","doi-asserted-by":"publisher","DOI":"10.1002\/bltj.2028"},{"key":"e_1_2_9_22_1","unstructured":"WinterbottomP.Alef Language Reference Manual. Plan 9 Programmer's Manual Vol. 2 1995."},{"key":"e_1_2_9_23_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380200703"},{"key":"e_1_2_9_24_1","unstructured":"Thread. Plan 9 Programmer's Manual Section 2: Library Functions 2012."},{"key":"e_1_2_9_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/230908.250717"},{"key":"e_1_2_9_26_1","volume-title":"The Magic Garden Explained: The Internals of UNIX System V Release 4: An Open Systems Design","author":"Goodheart B","year":"1994"},{"key":"e_1_2_9_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.30733"},{"key":"e_1_2_9_28_1","volume-title":"Advanced Programming in the UNIX(R) Environment","author":"Stevens RW","year":"2005"},{"key":"e_1_2_9_29_1","volume-title":"Unix Systems Programming: Communication, Concurrency, and Threads","author":"Robbins KA","year":"2003"},{"key":"e_1_2_9_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/40.521"},{"key":"e_1_2_9_31_1","volume-title":"Futexes Are Tricky","author":"Drepper U","year":"2005"},{"key":"e_1_2_9_32_1","volume-title":"The Linux Programming Interface: A Linux and UNIX System Programming Handbook","author":"Kerrisk M","year":"2010"},{"key":"e_1_2_9_33_1","unstructured":"AldinucciM DaneluttoM KilpatrickP TorquatiM.Fastflow: high\u2010level and efficient streaming on multi\u2010core. Programming Multi\u2010core and Many\u2010core Computing Systems ser. Parallel and Distributed Computing S. Pllana 2012;13.http:\/\/eu.wiley.com\/WileyCDA\/WileyTitle\/productCd\u20100470936908.htmlISBN:978\u20100\u2010470\u201093690\u20100."},{"key":"e_1_2_9_34_1","unstructured":"CoxR.Bell labs and CSP threads. (Available from:http:\/\/swtch.com\/~rsc\/thread) [Accessed on 31 July 2014]."}],"container-title":["Concurrency and Computation: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fcpe.3363","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cpe.3363","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,16]],"date-time":"2023-09-16T22:45:43Z","timestamp":1694904343000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cpe.3363"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,8,20]]},"references-count":33,"journal-issue":{"issue":"14","published-print":{"date-parts":[[2015,9,25]]}},"alternative-id":["10.1002\/cpe.3363"],"URL":"https:\/\/doi.org\/10.1002\/cpe.3363","archive":["Portico"],"relation":{},"ISSN":["1532-0626","1532-0634"],"issn-type":[{"value":"1532-0626","type":"print"},{"value":"1532-0634","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,8,20]]}}}