Предлагаемая книга не является заменой существующим учебникам по традиционному параллельному программированию и ориентирована больше на практический подход - как собственно в программировании, так и в требуемых математических основах, которым в книге уделяется значительное внимание. Обсуждаются вопросы основ аппаратного и программного обеспечения, связанных с работой параллельных программ на разделяемой памяти, методики организации корректного выполнения параллельных программ с точки зрения высоко- и низкоуровневых примитивов синхронизации аппаратной платформы. Вводятся формальные понятия, необходимые для математического описания проблем; рассматривается математическая задача о консенсусе в системах со сбоями. На конкретных примерах проводится обзор методов и подходов (неблокирующие алгоритмы, алгоритмы с быстрым и медленным путями исполнений и др.), рассматриваются практические алгоритмы из таких систем, как ядро ОС Linux. Представлены методики доказательства...
Predlagaemaja kniga ne javljaetsja zamenoj suschestvujuschim uchebnikam po traditsionnomu parallelnomu programmirovaniju i orientirovana bolshe na prakticheskij podkhod - kak sobstvenno v programmirovanii, tak i v trebuemykh matematicheskikh osnovakh, kotorym v knige udeljaetsja znachitelnoe vnimanie. Obsuzhdajutsja voprosy osnov apparatnogo i programmnogo obespechenija, svjazannykh s rabotoj parallelnykh programm na razdeljaemoj pamjati, metodiki organizatsii korrektnogo vypolnenija parallelnykh programm s tochki zrenija vysoko- i nizkourovnevykh primitivov sinkhronizatsii apparatnoj platformy. Vvodjatsja formalnye ponjatija, neobkhodimye dlja matematicheskogo opisanija problem; rassmatrivaetsja matematicheskaja zadacha o konsensuse v sistemakh so sbojami. Na konkretnykh primerakh provoditsja obzor metodov i podkhodov (neblokirujuschie algoritmy, algoritmy s bystrym i medlennym putjami ispolnenij i dr.), rassmatrivajutsja prakticheskie algoritmy iz takikh sistem, kak jadro OS Linux. Predstavleny metodiki dokazatelstva...