Read-Copy-Update for HelenOS
Read-Copy-Update pro HelenOS
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/51670Identifiers
Study Information System: 121000
Collections
- Kvalifikační práce [10690]
Author
Advisor
Referee
Podzimek, Andrej
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
9. 9. 2013
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
HelenOS, RCU, Read-Copy Update, concurrencyKeywords (English)
HelenOS, RCU, Read-Copy Update, concurrencyRozšírenie viacjadrových procesorov zvýšilo záujem o škálovateľné synchronizačné primitíva ako je Read-Copy Update. Zatiaľčo RCU je populárne v monolitických kerneloch operačných systémov, doposiaľ nebolo nasadené v prostredí mikrokernelov. V práci navrhneme a implementujeme RCU pre mikrokernelový operačný systém HelenOS. Navyše preskúmame možnosti použitia RCU v HelenOSe a demonštrujeme užitočnosť RCU tak v kerneli ako aj v user space. Merania ukazujú, že implementované RCU poskytuje lineárnu škálovateľnosť RCU čitateľov a RCU vyžaduje omnoho nižšiu réžiu pri vstupe do chránenej sekcie ako bežné zámky a to i v ideálnom prípade pre zámky. RCU sme využili v user space na 2.6 násobné zrýchlenie tradičných zámkov. V kerneli RCU zabezpečilo lineárnu škálovateľnosť futexového podsystému. Powered by TCPDF (www.tcpdf.org)
Multicore processors have become prevalent and spurred interest in scalable synchronization mechanisms, such as Read-Copy Update. While RCU is popular in monolithic operating system kernels it has yet to see an implementation in a microkernel environment. In this thesis we design and implement RCU for the microkernel operating system HelenOS. Moreover, we explore potential uses of RCU in HelenOS and illustrate its utility in both the kernel and user space. Benchmarks demonstrate that the RCU implementation provides linearly scalable read-sides and incurs significantly less overhead than traditional locking even if uncontended. Furthermore, RCU was used in user space to speed up traditional locking 2.6 times in the common case. In the kernel, RCU ensured linear scalability of a previously non-scalable futex subsystem. Powered by TCPDF (www.tcpdf.org)