Ф'ютекс (англ. futex, скорочення від англ. fast userspace mutex) — у програмуванні спосіб реалізації семафорів і м'ютексів POSIX у Linux. Вперше введені в ядро з версії 2.5.7 (development); вироблена стабільна семантика з 2.5.40; включаються в стабільні версії серії 2.6.x (stable).
Розроблено Уберті Франке (Hubertus Franke) (з дослідницького центру IBM імені Томаса Ватсона), співробітниками технологічного центру IBM з Linux Меттью Кирквудом (Matthew Kirkwood) і Рості Расселом, а також розробником в компанії Red Hat Інго Молнаром (Ingo Molnar).
Ф'ютекс являє собою вирівняне ціле в загальній пам'яті (для декількох процесорів). Це ціле може бути збільшене або зменшене на одиницю за одну асемблерну інструкцію. Процеси, «зав'язані» на цей ф'ютекс, чекають, коли це значення стане позитивним. Всі операції з ф'ютексами практично повністю проводяться в просторі користувача, відповідні функції ядра задіюються лише в обмеженому наборі спірних випадків. Це дозволяє підвищити ефективність використання синхронізуючих примітивів, оскільки більшість операцій не використовують арбітраж, а значить і уникнути використання відносно дорогих системних викликів (англ. system calls).
Подібним чином оптимізовані об'єкти CRITICAL_SECTION у Win32 API, а також FAST_MUTEX в ядрі Windows.
Виноски
- Break Free of Code Deadlocks in Critical Sections Under Windows
Посилання
- - futex() system call
- - futex semantics and usage
- Hubertus Franke, Rusty Russell, Matthew Kirkwood, Fuss, futexes and furwocks: Fast Userlevel Locking in Linux, 2002.
- Futex manpages
- Ingo Molnar, "Robust Futexes", Linux Kernel Documentation
- "Priority Inheritance Futexes", Linux Kernel Documentation
Ця стаття потребує додаткових для поліпшення її . (січень 2016) |
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про операційні системи. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
F yuteks angl futex skorochennya vid angl fast userspace mutex u programuvanni sposib realizaciyi semaforiv i m yuteksiv POSIX u Linux Vpershe vvedeni v yadro z versiyi 2 5 7 development viroblena stabilna semantika z 2 5 40 vklyuchayutsya v stabilni versiyi seriyi 2 6 x stable Rozrobleno Uberti Franke Hubertus Franke z doslidnickogo centru IBM imeni Tomasa Vatsona spivrobitnikami tehnologichnogo centru IBM z Linux Mettyu Kirkvudom Matthew Kirkwood i Rosti Rasselom a takozh rozrobnikom v kompaniyi Red Hat Ingo Molnarom Ingo Molnar F yuteks yavlyaye soboyu virivnyane cile v zagalnij pam yati dlya dekilkoh procesoriv Ce cile mozhe buti zbilshene abo zmenshene na odinicyu za odnu asemblernu instrukciyu Procesi zav yazani na cej f yuteks chekayut koli ce znachennya stane pozitivnim Vsi operaciyi z f yuteksami praktichno povnistyu provodyatsya v prostori koristuvacha vidpovidni funkciyi yadra zadiyuyutsya lishe v obmezhenomu nabori spirnih vipadkiv Ce dozvolyaye pidvishiti efektivnist vikoristannya sinhronizuyuchih primitiviv oskilki bilshist operacij ne vikoristovuyut arbitrazh a znachit i uniknuti vikoristannya vidnosno dorogih sistemnih viklikiv angl system calls Podibnim chinom optimizovani ob yekti CRITICAL SECTION u Win32 API a takozh FAST MUTEX v yadri Windows VinoskiBreak Free of Code Deadlocks in Critical Sections Under WindowsPosilannya a rel nofollow class external text href http man7 org linux man pages man2 futex 2 html futex 2 a futex system call a rel nofollow class external text href http man7 org linux man pages man7 futex 7 html futex 7 a futex semantics and usage Hubertus Franke Rusty Russell Matthew Kirkwood Fuss futexes and furwocks Fast Userlevel Locking in Linux 2002 Futex manpages Ingo Molnar Robust Futexes Linux Kernel Documentation Priority Inheritance Futexes Linux Kernel Documentation Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2016 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi