Attente active

L’attente active, en génie logiciel, ou polling (parfois appelée aussi « scrutation ») est une technique de programmation que les processus utilisent lorsqu'ils vérifient de façon répétée si une condition est vraie, comme l'attente d'une entrée (clavier ou autre) ou encore la libération d'un verrou.

Cette technique peut également être utilisée pour mettre en attente un programme pour une durée déterminée. Cela était nécessaire sur d'anciens systèmes d'exploitation dont le matériel sous-jacent ne proposait pas de méthode spécifique pour suspendre l'exécution du flot d'instruction pendant une période déterminée. Sur les plateformes modernes proposant des horloges et plusieurs vitesses de processeur, cette forme de suspension du programme est souvent imprécise et signe de programmation naïve.

L'attente active peut, par contre, être une stratégie valide dans certaines circonstances, le plus souvent dans l'implémentation des spinlocks au sein de systèmes d'exploitation conçus pour fonctionner sur des systèmes à processeurs multiples. À part ce genre de cas, les attentes actives devraient être évitées, puisque le processeur pourrait être réattribué à une autre tâche.

Exemple de code en C

Le code en C plus bas montre deux threads qui partagent un entier global i. Le premier thread utilise une attente active pour surveiller un changement de la valeur de i.

Utilisation du processeur

Dans l'exemple ci-dessus, le second thread (t2) est endormi immédiatement pour 60 secondes. Pendant ce temps, le premier thread vérifie constamment si le second thread a modifié la valeur de i.

Vous pouvez utiliser les outils top ou uptime communément installé sur les systèmes de type Unix pour voir comment ce programme utilise le processeur. Lancez le programme comme indiqué :

$ uptime; ./a.out ; uptime
13:25:47 up 53 days, 23:50,  4 users,  load average: 0.00, 0.00, 0.00
t2 change la valeur de i à 99.
La valeur de i a changé pour 99.
Tous les threads ont terminé.
13:26:47 up 53 days, 23:51,  4 users,  load average: 0.75, 0.21, 0.07

Bien sûr, chaque système retournera des nombres plus ou moins différents, mais l'important est de remarquer qu'avant de lancer le programme, la charge moyenne du système sur la minute précédente était de 0.00. À la fin de l'exécution de ce programme, la charge moyenne de la dernière minute est montée à 0.75, ce qui est surprenant vu la faible complexité du programme.

Des alternatives à l'attente active

Une alternative est d'utiliser des signaux. La plupart des systèmes d'exploitation et autres bibliothèques de thread permettent d'endormir le premier thread, pour que celui-ci soit réveillé plus tard par un signal envoyé par le second thread lors du changement de la valeur de i. Cette méthode, connue comme programmation sur événement est plus efficace car le thread ne consomme pas de cycle CPU lorsqu'il est endormi.

L'attente active en elle-même peut être grandement améliorée en utilisant une fonction de pause (sleep) trouvable sur la plupart des systèmes d'exploitation. Ainsi le thread sera mis en pause de façon régulière avec un temps d'attente relativement court (une seconde voire moins) pendant lequel il ne gaspillera pas de temps CPU. Si la boucle se contente de tester quelque chose de simple, alors le thread passera la plupart de son temps endormi, et ne gaspillera pas une grande proportion du temps CPU, même si quelques cycles seront toujours consommés.

Cas où l'attente active est appropriée

En programmation bas niveau, dans le cas des pilotes matériels, quelquefois les attentes actives sont nécessaires. Il n'est en effet pas toujours pratique d'inclure un système de signal par interruption pour tous les dispositifs matériels, et en particulier pour ceux qui sont rarement utilisés. Parfois, il est nécessaire d'écrire des informations de contrôle dans un registre du matériel en question, et d'y lire ensuite l'état de ce matériel provoqué par l'écriture précédente. Ces dernières données ne sont parfois pas valides avant quelques cycles, ou dizaines de cycles d'horloges. Le programmeur pourrait utiliser une fonction fournie par le système, mais l'appel à cette fonction prendrait plus de cycles CPU que le temps que le matériel n'en met pour valider les données (en ne considérant pas le cas du changement de thread).

Dans ce genre de cas, il est habituel d'utiliser une attente active qui lit l'état du périphérique jusqu'à ce que celui-ci soit valide. Appeler une fonction du système, quelle qu'elle soit, serait dans ce cas bien moins efficace qu'une attente active de quelques cycles.

Voir aussi

Liens externes (en anglais)

Read other articles:

Gereja di Chernyakhovsk Eparki Chernyakhovsk adalah sebuah eparki Gereja Ortodoks Rusia yang terletak di Chernyakhovsk, Federasi Rusia. Eparki tersebut didirikan pada tahun 2016.[1] Referensi ^ http://www.patriarchia.ru/db/text/4646392.html lbsKeuskupan Gereja Ortodoks RusiaPatriark MoskwaEparki di Rusia Abakan dan Khakassia Akhtubinsk Alapayevsk Alatyr Alexdanrov Almetyevsk Amur Anadyr Ardatov Arkhangelsk Armavir Arsenyev Astrakhan Balashov Barnaul Barysh Belgorod Belyov Bezhetsk Birobi…

Lameroo redirects here. For other uses, see Lameroo (disambiguation). Town in South AustraliaLamerooSouth AustraliaLameroo Catholic ChurchLamerooCoordinates35°19′52″S 140°30′57″E / 35.331247°S 140.515932°E / -35.331247; 140.515932[1]Population567 (UCL 2021)[2]Established17 November 1904 (town)2 August 1999 (locality)[1][3][4]Postcode(s)5302Elevation98 m (322 ft)(railway station) [5]Time zoneACST (UTC+9:…

For other ships with the same name, see USS Raymond. History United States NameRaymond NamesakeReginald Marbury Raymond BuilderConsolidated Steel Corporation, Orange, Texas Laid down3 November 1943 Launched8 January 1944 Commissioned15 April 1944 Decommissioned22 September 1958 Out of service31 May 1960 Stricken1 July 1972 Honors andawards Presidential Unit Citation 5 battle stars for World War II FateSunk as target off Florida on 22 January 1974 General characteristics Class and typeJohn C. But…

Cet article est une ébauche concernant les récompenses et distinctions. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Médaille d’honneur des travaux publics Conditions Décerné par France Type Médaille Détails Statut Toujours décernée Statistiques Création 1er mai 1897 Ordre de préséance Inférieur Équivalent Supérieur Ruban de la médaille d’honneur des travaux publics modifier  La médaille…

中曾根康弘中曽根 康弘 日本第71、72、73任內閣總理大臣任期1982年11月27日—1987年11月6日君主昭和天皇副首相金丸信前任鈴木善幸继任竹下登 日本第45任行政管理廳長官(日语:行政管理庁長官)任期1980年7月17日—1982年11月27日总理鈴木善幸前任宇野宗佑继任齋藤邦吉(日语:斎藤邦吉) 日本第34、35任通商產業大臣任期1972年7月7日—1974年12月9日总理田中角榮前任田…

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁地…

Non-rotary cutting tool used in machining This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Tool bit – news · newspapers · books · scholar · JSTOR (November 2009) (Learn how and when to remove this message) In machining, a tool bit is a non-rotary cutting tool used in metal lathes, shapers, and planers. Such cutt…

1993 live album by Ozzy Osbourne For other uses, see Live and Loud. Live & LoudLive album by Ozzy OsbourneReleased15 June 1993Recorded1991–92GenreHeavy metalLength117:16LabelEpicOzzy Osbourne chronology No More Tears(1991) Live & Loud(1993) Ozzmosis(1995) Singles from Live & Loud Changes (live)Released: June 1993[1] Live & LoudVideo by Ozzy OsbourneReleased28 June 1993Recorded1991–92GenreHeavy metalLength112 minutes LabelEpic/SonyDirectorJeb BrienProducerJeb B…

Cemetery in Washington County, Pennsylvania National Cemetery of the AllegheniesEntrance to the National Cemetery of the AllegheniesDetailsEstablished2005Location1158 Morgan Road Bridgeville, PA 15017 Cecil Township, PennsylvaniaCountry United StatesCoordinates40°19′00″N 80°09′13″W / 40.31667°N 80.15361°W / 40.31667; -80.15361TypeUnited States National CemeteryOwned byU.S. Department of Veterans AffairsSize292 acres (118 ha) (90 acres developed as of…

This article is about the type of dictionary in ancient China. For the type of Western reference work used in poetry, see Rhyming dictionary. Ancient type of Chinese dictionary that collates characters by tone and rhyme This article should specify the language of its non-English content, using {{lang}}, {{transliteration}} for transliterated languages, and {{IPA}} for phonetic transcriptions, with an appropriate ISO 639 code. Wikipedia'…

Частина серії проФілософіяLeft to right: Plato, Kant, Nietzsche, Buddha, Confucius, AverroesПлатонКантНіцшеБуддаКонфуційАверроес Філософи Епістемологи Естетики Етики Логіки Метафізики Соціально-політичні філософи Традиції Аналітична Арістотелівська Африканська Близькосхідна іранська Буддійсь…

Local museum, history museum, art Museum, kite museum in Paldi, AhmedabadSanskar Kendraકર્ણાવતી : અતીતની ઝાંખીSanskar Kendra City MuseumLocation of Sanskar Kendra in Ahmedabad, Gujarat, IndiaShow map of AhmedabadSanskar Kendra (Gujarat)Show map of GujaratSanskar Kendra (India)Show map of IndiaEstablished9 April 1954 (1954-04-09)LocationOpp. Tagore Hall, near NID, Sardar bridge corner, Paldi, AhmedabadCoordinates23°00′47″N 72°34′10…

Sovereign people redirects here. For the Curaçaoan political party, see Sovereign People. Idea that the people are the source of all power Popular sovereignty is the principle that the leaders of a state and its government are created and sustained by the consent of its people, who are the source of all political legitimacy. Popular sovereignty, being a principle, does not imply any particular political implementation.[a] Benjamin Franklin expressed the concept when he wrote that In fre…

「離島」、「飛地」、あるいは「自治州」とは異なります。 海外領土・自治領の一覧(かいがいりょうど・じちりょうのいちらん)は、世界に存在する「独立国家以外の地域」の一覧である。 海外領土・自治領を示した世界地図       豪       智       丁       仏      &…

United States historic placePoppleton BlockU.S. National Register of Historic PlacesOmaha Landmark LocationOmaha, NebraskaCoordinates41°15′26.15″N 95°55′44.89″W / 41.2572639°N 95.9291361°W / 41.2572639; -95.9291361Built1880[2]ArchitectHenry VossArchitectural styleItalianateNRHP reference No.82000606[1]Significant datesAdded to NRHPOctober 7, 1982Designated OMALJuly 13, 1982[2] The Poppleton Block is located at 1001 F…

British Indian civil servant (1851–1926) SirKrishna Govinda GuptaKCSIস্যার কৃষ্ণগোবিন্দ গুপ্তBorn(1851-02-28)28 February 1851Bhatpara, Narsingdi,[1] British IndiaDied20 March 1926(1926-03-20) (aged 75)Calcutta, British IndiaOccupationCivil servantSignature Sir Krishna Govinda Gupta KCSI (Bengali: স্যার কৃষ্ণগোবিন্দ গুপ্ত; 28 February 1851 – 20 March 1926) was a British Indian civil …

عثمان بن أبي شيبة معلومات شخصية تاريخ الوفاة 14 يونيو 853   الأولاد أبو جعفر بن أبي شيبة  إخوة وأخوات أبو بكر بن أبي شيبة  الحياة العملية تعلم لدى عبد الرحمن بن مهدي  [لغات أخرى]‏  المهنة مُحَدِّث  تعديل مصدري - تعديل   أبو الحسن عثمان بن محمد بن القاضي أبي شي…

В Википедии есть статьи о других людях с такой фамилией, см. Алексеева; Алексеева, Елена. Елена Алексеева Личная информация Пол ж Страна  Россия Специализация натурбан Дата рождения 14 июля 1990(1990-07-14) (33 года) Место рождения Кандалакша Мурманская область Елена Евгеньевна А…

Antidepressant NialamideClinical dataAHFS/Drugs.comInternational Drug NamesRoutes ofadministrationOralATC codeN06AF02 (WHO) Legal statusLegal status AU: S4 (Prescription only) BR: Class C1 (Other controlled substances)[1] Identifiers IUPAC name N-benzyl-3-(N-(pyridine-4-carbonyl)hydrazino)propanamide CAS Number51-12-7 YPubChem CID4472DrugBankDB04820 YChemSpider4317 YUNIIT2Q0RYM725KEGGD07337 YChEBICHEBI:94510ChEMBLChEMBL1256841CompTox Dashboard (EPA…

Consonantal sound represented by ⟨sʼ⟩ in IPA This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Alveolar ejective fricative – news · newspapers · books · scholar · JSTOR (November 2017) (Learn how and when to remove this message) Alveolar ejective fricativesʼIPA Number132 401Audio sample source ·&#…