Стан гонитви

Стан гонитви (англ. race condition, race hazard) — стан електроніки, програмного забезпечення або іншої системи, де поведінка системи залежить від того, в якій послідовності, або ж з якою тривалістю виконуються окремі інструкції коду. Це стає помилкою, коли одна або кілька можливих дій є небажаними.

Стан гонитви є специфічною помилкою проектування системи, трапляється в багатопотокових і розподілених програмах. Проявляється неконтрольовано у випадкові моменти часу і досить часто симптоми стану гонитви зникають, якщо спробувати її злокалізувати.

Свою назву отримала від схожої помилки проектування електронних схем та поняття «перегонів сигналів».

Програмне забезпечення

Стани гонитви проявляються в застосунках, де окремі процеси або потоки виконання залежать від одного спільного стану. Дії над спільним станом є критичними секціями, що мають бути несумісними. Невдача в цьому призводить до можливості пошкодження спільного стану.

Стани гонитви горезвісно складні для відтворення і зневадження, бо кінцевий результат не є детерміністичним і дуже залежить від відносного перебігу виконування процесів, що взаємодіють. Проблеми, що зустрічаються в готових системах можуть зникнути при запуску в режимі зневадження, коли відбувається додаткове журналювання і перевіряння або коли приєднується зневаджувач. Часто такий стан називають гайзенбагом. Дуже радять уникати станів гонитви через уважне розробляння програми, а не через виправляння проблеми потім.

Приклад

Як простий приклад розглянемо два потоки, що хочуть збільшити на одиницю глобальну цілочисельну змінну. В ідеалі, потрібна така послідовність операцій:

Потік 1 Потік 2 Ціле
0
прочитати 0
збільшити 0
записати 1
прочитати 1
збільшити 1
записати 2

так ми отримаємо 2, як і очікували. Однак, якщо два потоки запустяться одночасно без блокування або синхронізації:

Потік 1 Потік 2 Ціле
0
прочитати 0
прочитати 0
збільшити 0
збільшити 0
записати 1
записати 1

Кінцеве значення 1, а не 2. Це станеться через те, що операції збільшення виконуються сумісно. несумісні дії — це такі, які не можна перервати під час доступу до деяких ресурсів, таких як пам'ять. У першому випадку, Потік 1 не переривали під час доступу до змінної, отже його операція була несумісною.

Data race

Термін зазвичай стосується ситуації, коли операція з пам’яттю в одному потоці потенційно може спробувати отримати доступ до місця пам’яті, в яку записуються дані в іншому потоці в контексті, де це небезпечно. Це означає, що data race відрізняється від стану гонитви, оскільки можливий недетермінізм через синхронізацію навіть у програмі без data race, наприклад, у програмі, у якій усі звернення до пам’яті використовують лише атомарні операції.

Це може бути небезпечно на багатьох платформах тому, що якщо два потоки записують у область пам’яті одночасно, можливо, що область пам’яті зрештою буде містити довільну комбінацію бітів, що представляють значення, які кожен потік намагався записати. Це може призвести до пошкодження пам’яті, якщо отримане значення жоден з потоків не намагався записати. Подібним чином, якщо один потік читає з певного місця у той час, як інший потік записує в нього, для читання можливо повернеться значення, яке є довільною комбінацією бітів, що представляють значення, яке місце пам’яті зберігало до запису, і бітів, що представляють значення, що записується.

На багатьох платформах передбачені спеціальні операції (атомарні операції, або операції синхронізації) з пам'яттю для одночасного доступу; у таких випадках зазвичай одночасний доступ із використанням цих спеціальних операцій є безпечним, на відміну від інших операцій (операцій з даними).

C++

Стандарт С++11 у параграфі 1.10 визначає стан гонитви так:

  • Обчислення двох виразів конфліктує якщо один з виразів змінює ділянку пам'яті, а другий читає або також змінює ту саму ділянку пам'яті.
  • Перебіг програми має стан гонитви, якщо він містить в різних потоках дві дії, що конфліктують, щонайменше одна з яких не атомарна і жодна не відбувається перед іншою.

Див. також

Посилання


Read other articles:

Ylipormestari (Mayor Tinggi)Teuvo AuraTeuvo Aura Perdana Menteri FinlandiaMasa jabatan14 Juni 1970 – 15 Agustus 1970WakilPäiviö Hetemäki PendahuluMauno KoivistoPenggantiAhti KarjalainenMasa jabatan29 Oktober 1971 – 23 Februari 1972WakilPäiviö Hetemäki PendahuluAhti KarjalainenPenggantiRafael Paasio Informasi pribadiLahir28 Desember 1912RuskealaMeninggal11 Januari 1999(1999-01-11) (umur 86)Partai politikPartai Rakyat LiberalSunting kotak info • L �...

 

Kuil I di Tikal Piramida Mesoamerika atau struktur yang berbentuk piramida merupakan unsur yang penting dalam arsitektur Mesoamerika. Walaupun bentuknya terkesan mirip, piramida di Dunia Baru tidak sama dengan piramida Mesir. Piramida di Mesoamerika biasanya merupakan piramida bertingkat yang lebih mirip dengan ziggurat di Mesopotamia daripada piramida di Mesir Kuno. Piramida terbesar di Mesoamerika berdasarkan volume adalah Piramida Agung Cholula di negara bagian Puebla di Meksiko. Beberapa ...

 

Charity Shield FA 1998TurnamenCharity Shield FA Arsenal Manchester United 3 0 Tanggal9 Agustus 1998StadionStadion Wembley, London← 1997 1999 → Charity Shield FA 1998 adalah pertandingan sepak bola antara Arsenal dan Manchester United yang diselenggarakan pada 9 Agustus 1998 di Stadion Wembley, London. Pertandingan ini merupakan pertandingan ke-76 dari penyelenggaraan Charity Shield FA. Pertandingan ini dimenangkan oleh Arsenal dengan skor 3–0.[1] Pertandingan Arsenal v M...

Jalan Tol Kallang-Paya Lebar, Singapura, berwarna ungu tua dalam sistem jalan tol Singapura. KPE saat konstruksi tahun 2005 Jalan Tol Kallang–Paya Lebar (Singkatan: KPE; Hanzi Sederhana: 加冷-巴耶利峇高速公路; pinyin: Jiālěng Bāyēlìbā Gāosù Gōnglù; Bahasa Melayu: Lebuhraya Kallang-Paya Lebar; Bahasa Tamil: கலாங் பாயலேபார் விரைவுச்சாலை)adalah sebuah jalan tol di Singapura yang berbentuk terowongan. Bagian selatan jalan...

 

Artikel ini bukan mengenai Hwang Hui. Ini adalah nama Korea; marganya adalah Kim. Pada nama panggung/nama pena, nama belakangnya adalah Hwang. Hwang HeeHwang pada 2019LahirKim Ji-soo18 Oktober 1988 (umur 35)Korea SelatanPendidikanUniversitas Kyung HeePekerjaanPemeranTahun aktif2010–kiniAgenCelltrion Entertainment Nama KoreaHangul황희 Alih AksaraHwang HuiMcCune–ReischauerHwang HǔiNama lahirHangul김지수 Alih AksaraGim Ji-suMcCune–ReischauerKim Chi-su Hwang Hee (nama ...

 

Election for the governorship of the U.S. state of Indiana For related races, see 2016 United States gubernatorial elections. 2016 Indiana gubernatorial election ← 2012 November 8, 2016 2020 →   Nominee Eric Holcomb John R. Gregg Party Republican Democratic Running mate Suzanne Crouch Christina Hale Popular vote 1,397,396 1,235,503 Percentage 51.4% 45.4% County results Precinct resultsHolcomb:      30–40%     ...

† Египтопитек Реконструкция внешнего вида египтопитека Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:Четвероно...

 

For the Favored Nations song, see The Music of Grand Theft Auto V. 2004 single by Obie Trice featuring Nate DoggThe Set Up (You Don't Know)Single by Obie Trice featuring Nate Doggfrom the album Cheers ReleasedJanuary 13, 2004 (2004-01-13)Recorded2003: Record One54 SoundGenreHip hopLength3:13LabelShadyInterscopeSongwriter(s)Obie TriceNathaniel HaleAndre YoungMike ElizondoProducer(s)Dr. DreMike Elizondo (co.)Obie Trice singles chronology Shit Hits the Fan (2003) The Set Up (Y...

 

Lagu Cinta NirmalaGenre Drama Roman Ditulis olehSerena LunaSkenarioSerena LunaSutradaraErlanda GunawanPemeran Alyssa Soebandono Baim Wong Cathy Sharon Dhini Aminarti Ibnu Jamil Cut Memey Lucky Alamsyah Dimas Seto Cut Keke Umar Lubis Fadly Penggubah lagu temad'MasivLagu pembukaJangan Pergi oleh d'MasivLagu penutupJangan Pergi oleh d'MasivNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode39ProduksiProduser eksekutifElly Yanti NoorProduserLeo SutantoPengaturan kameraMulti-...

Eurovision Song Contest 2014Country IsraelNational selectionSelection processArtist: Internal selectionSong: Kdam Eurovision 2014Selection date(s)Artist: 11 January 2014Song: 5 March 2014Selected entrantMei FinegoldSelected songSame HeartSelected songwriter(s)Rami TalmidFinals performanceSemi-final resultFailed to qualify (14th)Israel in the Eurovision Song Contest ◄2013 • 2014 • 2015► Israel participated in the Eurovision Song Contest 2014 with the...

 

Religious texts in the Mahayana Buddhist tradition Nepalese Thangka with Prajñāpāramitā, the personification of transcendent wisdom (prajñā), holding a Mahāyāna Prajñāpāramitā Sūtra A Tibetan depiction of Nagarjuna receiving Mahāyāna sūtras from the Nāgas (on the right) The Mahāyāna sūtras are a broad genre of Buddhist scripture (sūtra) that are accepted as canonical and as buddhavacana (Buddha word) in certain communities of Mahāyāna Buddhism. They are largely preserve...

 

Arronnes L'église Saint-Léger. Blason Administration Pays France Région Auvergne-Rhône-Alpes Département Allier Arrondissement Vichy Intercommunalité Communauté d'agglomération Vichy Communauté Maire Mandat François Szypula 2020-2026 Code postal 03250 Code commune 03008 Démographie Populationmunicipale 379 hab. (2021 ) Densité 15 hab./km2 Géographie Coordonnées 46° 03′ 32″ nord, 3° 34′ 10″ est Altitude Min. 330 mMax. 597...

الدوري الإسباني لكرة القدم للسيدات   الجهة المنظمة الاتحاد الملكي الإسباني لكرة القدم  تاريخ الإنشاء 1988  الرياضة كرة القدم  البلد إسبانيا  الموقع الإلكتروني الموقع الرسمي  تعديل مصدري - تعديل   الدوري الإسباني لكرة القدم للسيدات (بالإسبانية: Primera División de la...

 

この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典は脚注などを用いて記述と関連付けてください。(2017年10月) 古い情報を更新する必要があります。(2017年10月) 課税 財政政策のありさまのひとつ 政策(英語版) 医療貯蓄口座 (英語版) 課税境界 (英語版) 給付付き税額控除 減税 源泉徴収 控除 固定資産税の均等化 (�...

 

Division d'Honneur 1925-1926 Competizione Pro League Sport Calcio Edizione 26ª Organizzatore URBSFA/KBVB Date dal 13 settembre 1925al 13 giugno 1926 Luogo  Belgio Partecipanti 14 Risultati Vincitore Beerschot AC(4º titolo) Retrocessioni SC AnderlechtoisCS VerviétoisTilleur FC Statistiche Miglior marcatore Laurent Grimmonprez (28) Cronologia della competizione 1924-1925 1926-1927 Manuale La Division d'Honneur 1925-1926 è stata la 26ª edizione della massima serie del cam...

Early 5th-century King of the Suebi Not to be confused with Hermeneric. Later medieval representation of Hermeric Hermeric (died 441[1]) was the king of the Suevi from at least 419 and possibly as early as 406 until his abdication in 438. Biography Before 419 Suebic migrations across Europe. Nothing is known for sure about Hermeric before 419, the year in which he is first mentioned; namely, he became king of the Suebi (or Suevi) in the city of Braga (Bracara Augusta) according to bis...

 

Cet article est une ébauche concernant l’économie. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Le graphique de la formation des prix du marché dans un contexte de concurrence parfaite Le prix de marché est le prix des biens et services déterminés par l'offre et la demande dans les régimes d'économie de marché. La formation de ces prix de marché est l'un des domaines d'étude de la microéconomie....

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2016) شركة الفا دلتاالشعارمعلومات عامةالتأسيس سوريا (1995)النوع خدميّة، أكاديميةالشكل القانوني شركة المقر الرئيسي اللاذقية، سورياالمنظومة الاقتصاديةالصناعة خدم�...

First-level administrative division of Russia This article is about the republic of Russia. For the former state, see Bashkiria (1917–1919). For the newspaper, see Bashkortostan (newspaper). This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be c...

 

Irish brewer (1725–1803) This article is about the Irish brewer. For other uses, see Arthur Guinness (disambiguation). Arthur GuinnessPortrait of Guinness, dated 1759Born(1725-09-24)24 September 1725Celbridge, County Kildare, IrelandDied23 January 1803(1803-01-23) (aged 77)Dublin, IrelandResting placeOughter Ard, County Kildare, IrelandOccupationBrewerKnown forFounder of Guinness beerSpouse Olivia Whitmore ​(m. 1761)​Children10, including Arthur I...