988
pakeitimai
Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
(Naujas puslapis: '''Forkas''' - nuo angl. ''fork'' - išsišakojimas. Tai toksai veiksmas, kai open source programuotojai dėl kažkokių priežasčių susipeša, nepasidalina ko nors ir tada atsiskiria. Atsiskyrę programuotojai pradeda programuoti kokią nors savo produkto versiją. Tuo tarpu senoji versija kartais toliau ima gyventi savo gyvenimą, vis labiau toldama nuo forko, o forkas vis labiau tolsta nuo pradinės versijos. Kitais gi atvejais būna, kad tos versijos visgi persim...) |
|||
| 15 eilutė: | 15 eilutė: | ||
Bendrai forikinimasis yra natūralus programavimo procesas, nes kartais prireikia palaikyti kelias produkto versijas, kurios nelabai tarpusavy susiderina. Tačiau dažniausiai forkinimas sukelia daug bėdų, išsklaido resursus ir kartais išvis baigiasi tuo, kad nustoja egzistuoti ir bazinė, ir išsiforkinusi versijos. Žodžiu, programos kūrėjai susipjauna, viskas pasidaro tarpusavy nesuderinama, palaikymui pritrūksta energijos ir viskas baigiasi. | Bendrai forikinimasis yra natūralus programavimo procesas, nes kartais prireikia palaikyti kelias produkto versijas, kurios nelabai tarpusavy susiderina. Tačiau dažniausiai forkinimas sukelia daug bėdų, išsklaido resursus ir kartais išvis baigiasi tuo, kad nustoja egzistuoti ir bazinė, ir išsiforkinusi versijos. Žodžiu, programos kūrėjai susipjauna, viskas pasidaro tarpusavy nesuderinama, palaikymui pritrūksta energijos ir viskas baigiasi. | ||
== Kita rūšis forkų programavime == | |||
Yra dar kita rūšis forkų programavime - tai toksai [[UNIX]] sistemoms bendras programų vykdymo mechanizmas, kuris labai paprastas, bet kartu prikuriantis visokių problemų tais atvejais, kai reikia labai labai daug programų paleidinėjimų daryti. | |||
UNIX sistemose, norint paleisti naują programą, reikia sukurti jai ir aplinką, o aplinka kuriama tokia, kokia buvo pas paleidžiančią programą. O kadangi ta paleidžianti programa gali prikurti neaišku ko ir neaišku kiek (visokių aplinkos kintamųjų ir panašiai), tai UNIX tam yra labai parastas sprendimas: [[OS]] nukopijuoja seną programos procesą su viskuo ir sukuria naują. Gaunasi du absoliučiai vienodi procesai, kurie yra toje pačioje būsenoje. Toks kopijavimas gaunamas, iškvietus OS funkciją fork(). | |||
Paskui po to forkinimo galima iškviesti kitą funkciją - exec(). Šiai tiesiog nurodoma, kokį programą užkrauti į buvusios programos vietą. Tada gaunasi taip, kad naujai paleista programa turi visą ankstesnės programos aplinką, įskaitant ir visokius kintamuosius. | |||
Toksai mechanizmas yra labai geras, nes leidžia lengvai atsiriboti nuo kitų procesų ir viską padaryti labai paprastai, pvz., kokia nors paleidžianti programa sukuria aplinką (pvz., serverio startavimo programa), o paskui gali likti procesas, kuris nei neturi kažkokių konfigūravimo priemonių, todėl yra mažas ir greitas. | |||
Problema iš forkinimo yra tik viena - jei reikia labai dažnai pakraudinėti kokią tai kitą programą, tai tas programų tarpusavio kopijavimasis labai jau daug resursų ėda, kartais netgi šimtus kartų daugiau, nei pats tos paleidžiamos programos vykdymas. Todėl dabar atsiranda visokie kitokie būdai, pvz., vykdyti per gijas (threadus), bibliotekines funkcijas ar panašiai. Bet tai jau atskira ir nelabai susijusi tema. | |||
[[Category:Programavimas]] | [[Category:Programavimas]] | ||
pakeitimai