MIKRO KNJIGA
    od 1984. god.
    Конкурентно и дистрибуирано програмирање
    Dodaj u listu želja - Wish List
    Предговор

    Област конкурентног и дистрибуираног програмирања се већ дужи низ година проучава у оквиру редовне наставе на Електротехничком факултету у Београду на одсеку за рачунарску технику и информатику и на одсеку за софтверско инжењерство. Проучавањем ове области прикупљен је и анализиран већи број практичних проблема синхронизације и комуникације. Ови проблеми су јединствени и омогућавају генерализацију честих проблема у пракси Сваком од проблема носи јединствено име ради лакшег праћења, али у упоређивања са постојећим решењима из ове области. Неки проблеми су тако конципирани да на шаљив начин обраде доста сложене механизме синхронизације и комуникације.

    Као полазна основа за формирање ове књиге послужила је књига "Конкурентно програмирање: Теоријске основе са збирком решених задатака" аутора Игора Икодиновића и Зорана Јовановића. Та књига је допуњена и проширена новим проблемима и областима, уочене грешке су исправљене, али је начин излагања и обраде задатака остао исти.

    Први део књиге је посвећен конкурентном програмирању помоћу дељен их променљивих. Други део књиге обухвата област дистрибуираног програмирања Трећи део је посвећен моделу програмирања коришћењем виртуелних простора. Четврти део се бави програмским нити ма, као координационом моделу који се данас најчешће примењује код писања конкурентних програма. Пери део књиге се односи на мрежно програмирање,

    Програмске парадигме су представљене на Један од три начина: 1) коришћењем постојећих програмских библиотека и језика за конкурентно програмирање, 2) проширивањем секвенцијалних програмских језика одговараЈућим синтаксним елементима и 3) преко формалних програмских модела. Избор начина на који су одређене парадигме представљене бази ран је пре свега на критеријумима њихове једноставности, разумљивости и општости. У случају да пракса захтева примену одговарајућих парадигми коришћењем неких других имплементација од оних одабраних за њихов приказ у књизи, у већини случајева је могуће извршити директну синтаксну транслацију. Разумевање основних концепата из књиге ће чак и у случајевима када директна синтаксна транслација није могућа тај посао знатно олакшати.

    Од постојећих програмских језика за конкурентно програмирање у оквиру ове књиге су коришћени: Ada за демонстрацију механизма рандевуа, Java за демонстрацију концепта програмских нити, као конкретан пример имплементације монитора, и као пример мрежног програмирања користећи размену порука и удаљене позиве метода и CONIC за демонстрацију парадигме асинхроног прослеђивања порука са индиректним именовањем процеса помоћу портова, У другим случајевима су коришћена проширења постојећих секвенцијалних програмских језика: проширени Pascal за демонстрацију концепта семафора, условних критичних региона и монитора и C-Linda за демонстрацију програмирања помоћу виртуелних простора. Од формалних програмских модела, BSP је коришћен за демонстрацију парадигме прослеђивања порука путем јавног емитовања, а CSP за демонстрацију парадигме прослеђивања порука са синхроним слањем и пријемом.

    Један од проблема код упознавања са облашћу конкурентног и дистрибуираног програмирања је што читалац мора значајан део своје пажње да усмери на учење синтаксе и семантике везаних за имплементације разних парадигми. Да би се тај проблем ублажио, у уводном делу сваког поглавља jе поред прегледа карактеристика одговарајуће парадигме, дат и опис и анализа коришћене синтаксе. Након уводног дела дати су и задаци. Задаци који се налазе на почетку обично су изабрани тако да демонстрирају неке од главних особина парадигме и да покажу како се помоћу ње решавају типични проблеми. Они су посебно детаљно размотрени, како са теоријског тако и са практичног аспекта, јер представљају основ за разумевање материје у оквиру поглавља. Иза њих следе задаци који су по природи нешто сложенији и чија решења обично захтевају дубљу и дуготрајнију анализу, синтетишући стечено знање на вишем нивоу и дајући адекватну представу о величини и сложености реалних проблема. Након појединих задатака и на крају поглавља се могу наћи и задаци за самосталан рад. Препоручује се њихоsо решавање као најбоља вежба за проверу усвојеног знања.

    Књига је писана на ћирилици, што је допринос очувању нашег језика и писма у области где су енглески језик и латиница често доминантни. Није се, међутим, могло избећи коришћење специфичних страних стручних израза и назива. У том смислу корИШћена терминологија одражава затечено стање у овој области код нас. Где је то било сврсисходно и могуће коришћени су термини нашег језика, уз навођење одговарајућих израза који се користе у страној литератури. Програми и примери су писани са именима променљивих, процедура и програмским коментарима који се ослањају на речи енглеског језика, јер је то данас већ стандардна пракса уведена због потребе за комуникацијом у широј стручној јавности Ово не би требало да има утицаја на разумљивост решења, с обзиром да су она праћена детаљним објашњењима ..

    Захваљујемо рецензентима - наставницима ЕТФ-а - Јелици Протић и Драгану Милићеву и колеги Милошу Глигорићу на сугестијама којима су помогли да се текст књиге поправи и допуни пре издавања.

    У Београду, фебруара 2008. године


    Садржај

    Увод, 1
    Програмирање помоћу дељен их променљивих, 7
    Семафори, 8

    Проблем критичне секције, 10
    Произвођач и потрошач: условна синхронизација процеса, 12
    Произвођачи и потрошачи: комуникација помоћу кружног бафера, 15
    Филозофи за ручком, 30
    Читаоци и писци, 45
    Недељиво емитовање, 53
    Људождери за ручком, 60
    Медвед и пчеле, 63
    Одгајање птића, 65
    Брига о деци, 68
    Вожња тобоганом, 72
    Изградња молекула воде, 74
    Проблем преласка реке, 80
    Студектска журка, 83

    Условни критични региони, 85
    Проблем критичнНе секције, 87
    Произвођач и потрошвч синхронизација процеса, 89
    Мост који има само једну коловозну траку, 92
    Филозофи за ручком, 97
    Анализа различитих варијанти решења проблема читалаца и писаца, 101
    Претрага-уметање-брисање, 105
    Дељени рачун, 109
    Нервозни пушачи, 113
    Проблем избора, 118

    Монитори, 121
    Улазак у авион, 124
    Улазак у школу, 125
    Читаоци и писци, 126
    Тајмер, 132
    Кружни FIFO бафер, 134
    Сакупљање гајбица, 135
    Прање веша, 137
    Филозофи за ручком, 141
    Недељива емитовање, 143
    Алокација ресурса, 148

    Дистрибуирано програмирање, 150
    Увод у програмирање прослеђивањем порука, 152

    Синхрона, асинхрона и условна комуникација, 153
    Јавко емитовање, 155
    Откривање топологије, 158
    Филозофи за ручком, 160
    Вожња тобоганом, 164
    Игра живота, 166
    Двоелемектни бафер, 169
    Комуникација са поузданим везама, 171

    Синхроно прослеђивање порука (CSP), 173
    Реализација семафора, 177
    Реформатирање текста (Conay-ов проблем), 178
    Пријем, обрада и слање низа знакова, 179
    Потпрограми: Остатак при дељењу, 181
    Рекурзија: Факторијел, 182
    Epaтocтeново сито, 183
    Множење матрица, 185
    Филозофи за ручком, 187
    Бикарко стабло, 190
    Скупови, 195
    Израчукавање интеграла, 207
    Изградња молекула воде, 209
    Читаоци и писци, 211
    Дељени рачун, 212

    Јавно емитовање (BSP), 215
    Стек, 218
    Скуп, 219
    Филозофи за ручком, 223
    Радио такси, 225
    Гониометарски систем, 227

    Асинхроно прослеђивање порука (CONIC), 229
    Бафер разделник, 232
    Произвођачи и потрошачи: комуникација помоћу кружног бафера, 233
    Промена конфигурације: звезда у прстен, 234
    Бидирекциоки прстен типа FDDI, 235
    Клијенти и сетвери, 237
    Обрада података, 242
    Филозофи за ручком, 244
    Читаоци и писци, 246

    Рандеву (Ada), 248
    Селективна наредба, 253
    Тimeout опција код селективне наредбе, 255
    Реализација рандевуа помоћу примитива за слање и пријем порука, 256
    Једноелементни бафер _ проблем коректног завршетка процеса, 259
    Монитор, 261
    Кружни FIFO бафер, 266
    Произвођачи и потрошачи: комукикација помоћу кружног бафера, 268
    Читаоци и писци, 271
    Филозофи за ручком, 274
    Нервозни пушачи, 276

    Виртуелни простори, 280
    Простор торки (С.Lindа), 281

    Филозофи за ручком, 283
    Клијенти и сервери _ обрада захтева по FIFO принципу (случај са једним cepвepoм), 284
    Клијенти и сервери - обрада захтева по FIFO принципу (случај са више сервера), 286
    Клијенти и сервери - селекција сервера по round robin редоследу, 288
    Нервозни пушачи, 291
    Читаоци и писци, 295
    Проблем избора, 297
    Проблем лифтова, 298
    Заједнички тоалет, 301
    Проблем пијаних филозофа, зоз
    Израчунавање интеграла, 305
    Проблем тела у гравитационом пољу, 307

    Програмске нити, 311
    Java, 313

    Семафор, 315
    Произвођач и потрошач: условна синхронизација процеса, 316
    Произвођач и потрошач, 320
    Филозофи за ручком, 322
    Мост који има само једну коловозну траку, 327
    Читаоци и писци, 333
    Берберин који спава, 339
    Вожња тобоганом, 342
    Вожње аутобусом, 345
    Брига о деци, 348
    Јавни тоалет, 351
    Деда Мраз, 355

    Мрежно програмирање, 361
    Java - Net, 362

    Ћаскање, 365
    Клијент сервер, 368
    Java - RMI, З83
    Дељени рачун, 387
    Игра живота, 391

    Литература, 395


    Детаљни подаци о књизи
    Наслов: Конкурентно и дистрибуирано програмирање
    Издавач: Akademska misao
    Страна: 396 (cb)
    Povez: meki
    Писмо: ćirilica
    Формат: 18x25.5 cm
    Година издања: 2008
    ИСБН: 978-86-7466-318-9
    RASPRODATO
    Nije u planu obnavljanje izdanja





    Kupljeno uz ovu knjigu

    Objektno orijentisano modelovanje na jeziku UML Skripta sa praktikumom
    720 din.

    JavaScript 24-časovna obuka + DVD
    1780 din.

    UML za projektovanje baza podataka
    950 din.

    Konkurentno programiranje teorijske osnove sa zbirkom rešenih zadataka
    860 din.

    Računarske mreže, prevod četvrtog izdanja (Tanenbaum)
    1440 din.

    SPSS: priručnik za preživljavanje: Prevod 4. izdanja
    1280 din.

    Android: Izrada aplikacija pomoću paketa Android SDK
    400 din.

    Uvod u statističku teoriju telekomunikacija
    1410 din.

    Misliti na jeziku C++ (+ CD)
    1840 din.

    Delphi 2005 bez tajni
    972 din.

    JavaScript: sveobuhvatni vodič
    1450 din.

    Operativni sistemi: teorija, praksa i rešeni zadaci
    1840 din.

    ECDL 5.0 Modul 4: Tabelarni proračuni, Microsoft Office Excel 2007: Udžbenik za pripremu ECDL ispita
    560 din.

    Excel 2007 Biblija (+ CD)
    1840 din.

    Objektno orijentisano programiranje na jeziku C++ Skripta sa praktikumom
    720 din.

    C++ jasnim jezikom
    720 din.

    Naučite Perl, prevod 4. izdanja
    960 din.

    Testiranje softvera u praksi
    950 din.

    Sertifikat Security+ (+CD)
    600 din.

    Projektni obrasci
    1040 din.

    Ocene i mišljenja čitalaca
    Budite prvi koji će svoje mišljenje podeliti sa drugima (morate biti prijavljeni)


    Pitanja, odgovori, mišljenja...
    Prijavite se ovde i pošaljite vaša mišljenja i pitanja našim urednicima i čitaocima

    Poruku poslaoPoruka
    MIKRO KNJIGA D.O.O.
    Kneza Višeslava 34, 11030 Beograd, Srbija
    e-pošta: prodaja(а)mikroknjiga.rs
    Komercijalna banka: 205-33117-65
    Matični broj: 07465181
    Šifra delatnosti: 5811
    PIB: 100575773
    Dokumenti o identifikaciji

    © Mikro knjiga 1984-2020