Végtelen ciklus helyett
A szoftverjavító szoftver
Egy új, még kísérleti stádiumban levő szoftverkörnyezet képes visszarántani tetszhalott állapotából a lefagyott programok jó részét.
2011.08.05 14:21Szilágyi Szabolcs - ma.huAz MIT kutatói előrukkoltak egy olyan szoftverkerettel, mely lehetővé teszi a lefagyott alkalmazások életre keltését bizonyos körülmények között. Jolt névre keresztelt megoldásuk arra kényszeríti a pórul járt szoftvert, ha észleli annak végtelen ciklusba ragadását, hogy hagyja el azt, és folytassa a kód végrehajtását.
És mindez nem csak elmélet! A kutatók le is tesztelték működését néhány jól ismert nyíltforrású szoftvereszközben található programhibán. Több kísérletet követően megállapítható, hogy a Jolt képes lehet visszarángatni az elvárt működés pályájára a lefagyott szoftver - olyan helyzetekben, amikor a felhasználónak már manuálisan kellene beavatkoznia, és az alkalmazás leállításával/újraindításával orvosolhatná csak a történteket.
Egy Microsoft Wordben található hiba inspirálta a fejlesztőket a Jolt létrehozására. Az MIT egyik professzora éppen dokumentumán dolgozott az egyik reggel, amikor az váratlanul lefagyott. Egy debugging - a hiba okát felderíteni képes - eszközzel felfedezett egy végtelen ciklust a programban, amiből az nem tudott kiszabadulni. Ebből az állapotból sikerült kikényszerítenie a redmondiak szövegszerkesztőjét, majd, miután elmentette dokumentumát, a program újraindításával onnan folytathatta az írást, ahol abbahagyta. A történteket aztán e-mailben megosztotta Martin Rinard professzorral, aki úgy döntött, hogy egy automatizált eszköz kifejlesztésébe kezd. Utóbbi gyakorlatilag ugyanarra képes, mint az ember, csak nem igényel humán beavatkozást.
Az elmélet elég egyszerű: a Jolt vizsgálja egy adott program futási állapotát; ha a benne zajló ciklusok ismétlődései alatt nem változnak a használt változóértékek, akkor valószínűleg baj van. Ebben az esetben a Jolt beavatkozik, és a végtelen ciklusból egy elágazással kikényszeríti a lefagyott alkalmazást, így az folytathatja az eredeti feladatát. Mindazonáltal nem mondható mindenhatónak a fejlesztés, mivel nem használható olyan hurkokban, amikor a program állapotát ugyan megváltoztatják a műveletek, de mégsem teljesül a hurokból való kilépés elvárt feltétele. Emellett azokat a végtelen ciklusokat sem tudja felismerni, melyeket rekurzív (önmagát ismétlő, újra és újra meghívó) függvények okoznak.
Ugyanakkor még így is nagyon hatásos eszköz kerekedett a kísérletből: a valós életben alkalmazott tesztek szerint nyolc esetből hétszer fél másodpercen belül azonosította a vizsgált nyíltforrású programokban felbukkanó végtelen ciklusokat, és lehetővé tette az alkalmazás számára az ezekből való kijutást. Sőt, nyolcból két esetben nem csak a programfutást sikerült előrébb lendíteni, de még a végeredmény is megegyezett az elvárttal: a kérdéses alkalmazás javított változatai két esetben is ugyanazt az eredményt hozták, mint a hibás példányok Jolttal továbbsegített futásakor.
Attól azonban még messze van a fejlesztés, hogy a hétköznapi felhasználó számára kiutat jelentsen a szoftverlefagyásokból (vagy legalábbis azok egy részéből). Viszont szépen demonstrálja a programhibákból való visszatérés automatizálhatóságát, ami a szoftverfejlesztők számára hasznos információval szolgálhat.
Kapcsolódó írások:
- Szövegelemző algoritmus fürkészi, hogy hányan írhatták a Bibliát
- NASA-szoftverrel fedeztek fel egy korai kelta kalendáriumot
- Sikeres a laptopok lopásgátló szoftvere
- Szoftverlopások Magyarországon
- Elrabolták Oroszországban egy híres szoftverfejlesztő fiát
- A Nemzeti Tankönyvkiadó nemzetközi díjakat kapott
Figyelem! A cikkhez hozzáfűzött hozzászólások nem a ma.hu network nézeteit tükrözik. A szerkesztőség mindössze a hírek publikációjával foglalkozik, a kommenteket nem tudja befolyásolni - azok az olvasók személyes véleményét tartalmazzák.
Kérjük, kulturáltan, mások személyiségi jogainak és jó hírnevének tiszteletben tartásával kommenteljenek!
ma.hu legfrissebb hírei:
- 23:30 Lázár János: fogunk még hozni gyárakat Gyulára
- 22:59 Az izraeli biztonsági erők megtaláltak a Gázai övezetben és hazaszállítottak három izraeli holttestet
- 21:30 Lengyelországban magas elismerést kapott Kovács Orsolya Zsuzsanna nagykövet
- 20:55 Ukrán főparancsnok: az oroszok a harkivi régióban hetven kilométerrel növelték a harci övezetet
- 19:08 Hetekig eltarthat a helyreállítás a Houstont sújtó vihar után, tovább kutatnak áldozatok után is
- 18:10 Donald Tusk: Lengyelország 2,5 milliárd dollárt fordít a keleti határvédelem megerősítésére
- 17:08 Vitézy Dávid: öt városligetnyi zöldterület hiányzik Budapesten a minőségi városi élethez
top fórum témák:
- Tanár Úr gyere, mindjárt lesz Lillád!2022.05.10 21:11
- AZ IGAZSÁG SOHA NEM KÉSŐ2022.05.10 21:07
- JólVanna2022.05.10 20:31
- Porvihar2022.03.29 16:11
- Mit szólsz? Ide minden baromságot...2022.03.29 16:06