Holtpont vs éhezés
A holtpont és az éhezés közötti fő különbség az ok-okozati viszony közöttük; a holtpont okozza az éhezést. Egy másik érdekes különbség a holtpont és az éhezés között az, hogy a holtpont problémát jelent, míg az éhezés néha segíthet kijutni a holtpontból. A számítógépes világban, amikor egy számítógépes programot írnak, egynél több folyamat / szál lesz, amelyek egyidejűleg futnak egymás után a program szükséges szolgáltatásának teljesítése érdekében. Ezért a tisztességes rendszer érdekében a programozónak biztosítania kell, hogy az összes folyamat / szál elegendő hozzáférést kapjon vagy hozzájusson a szükséges erőforrásokhoz. Ha nem, akkor holtpont lesz, és ez később éhezéshez vezet. Általában a tisztességes rendszer nem tartalmaz holtpontokat vagy éhezést. A holtpontok és az éhezések főleg akkor fordulnak elő, amikor sok szál verseng a korlátozott erőforrásokért.
Mi az a holtpont?
A holtpont egy olyan állapot, amely akkor következik be, amikor két szál vagy folyamat megvárja a feladat befejezését. Csak leteszik a telefont, de soha nem hagyják abba vagy fejezik be feladatukat. A számítástechnikában holtpontok láthatók mindenhol. Egy tranzakciós adatbázisban, amikor két folyamat a saját tranzakcióján belül ugyanazt a két információs sort frissíti, de ellentétes sorrendben, holtpontot okoz. Az egyidejű programozás során holtpont következhet be, amikor két versengő akció megvárja, míg egymás előre haladnak. A távközlési rendszerekben holtpont következhet be a jelek elvesztése vagy sérülése miatt.
Jelenleg a holtpont a többprocesszoros rendszerek és a párhuzamos számítástechnika egyik fő problémája. Megoldásként a szoftver szinkronizálásnak nevezett zárórendszert valósítják meg a szoftverek és a hardverek számára.
Mi az éhezés?
Az orvostudomány szótárából az éhezés az élet fenntartásához szükséges tápanyagok súlyos vagy teljes hiányának következménye. Hasonlóképpen, a számítástechnikában az éhezés olyan probléma, amely akkor fordul elő, amikor több szál vagy folyamat várja ugyanazt az erőforrást, amelyet holtpontnak neveznek.
A holtpontról való kijutáshoz az egyik folyamatnak vagy szálnak le kell mondania vagy vissza kell állnia, hogy a másik szál vagy folyamat felhasználhassa az erőforrást. Ha ez folyamatosan történik, és ugyanazon folyamatnak vagy szálnak minden alkalommal feladnia vagy visszagurulnia kell, miközben hagyja, hogy más folyamatok vagy szálak felhasználják az erőforrást, akkor a kiválasztott folyamat vagy szál, amely visszagördült, éhezésnek nevezhető helyzetben lesz. Ezért a holtpontból való kilépés érdekében az éhezés az egyik megoldás. Ezért néha az éhezést egyfajta megélhetésnek nevezik. Ha sok magas prioritású folyamat vagy szál van, akkor egy alacsonyabb prioritású folyamat vagy szál mindig éhezik egy holtpontban.
Sok éhezés lehet, például éhezik az erőforrásokat és éheztetik a CPU-t. Számos gyakori példa van az éhezésre. Olvasói-írói és étkezési filozófusok problémája, amely híresebb. Öt csendes filozófus ül egy kerek asztalnál spagettitálakkal. A szomszédos filozófuspárok között villákat helyeznek el. Minden filozófusnak felváltva kell gondolkodnia és ennie. A filozófus azonban csak akkor ehet spagettit, ha bal és jobb villája is van.
Az „étkező filozófusok”
Mi a különbség a holtpont és az éhezés között?
• Folyamat:
• Holtpontban a két szál vagy folyamat megvárja egymást, és mindkettő nem halad előre.
• Éhezéskor, amikor két vagy több szál vagy folyamat megvárja ugyanazt az erőforrást, az egyik visszagurul, és hagyja, hogy a többiek először használják az erőforrást, és a következő lépésben az éhező szál vagy folyamat megpróbálja újra. Ezért minden szál vagy folyamat így is tovább halad.
• Visszagörgetni:
• Holtpontban mind a magas prioritású szálak / folyamatok, mind az alacsony prioritású szálak / folyamatok végtelenül várják egymást. Sose ér véget.
• De éhezés esetén az alacsony prioritásúak várnak vagy visszagurulnak, de a kiemeltek folytatják.
• Várakozás vagy zárolás:
• A holtpont kör alakú várakozás.
• Az éhezés egyfajta megélhetés, és néha segít kijutni a holtpontról.
• Holtpont és éhezés:
• A holtpont éhezést okoz, de az éhezés nem okoz holtpontot.
• Okoz:
• Holtpont következik be a kölcsönös kizárás, a várakozás és a várakozás, az előzetes döntéshozatal vagy a körkörös várakozás miatt.
• Az éhezés az erőforrások szűkössége, az erőforrások ellenőrizetlen kezelése és a folyamat prioritásai miatt következik be.
Összegzés:
Holtpont és éhezés
A holtpont és az éhezés jelent néhány olyan problémát, amely a programozás során fellépő adatversenyek és versenykörülmények miatt, valamint a hardver megvalósításakor jelentkezik. Holtpontban két szál végtelenül várja egymást, végrehajtás nélkül, míg éhezés közben az egyik szál visszagurul, és hagyja, hogy a másik szál használja az erőforrásokat. A holtpont éhezést okoz, míg az éhezés segít egy szálnak kiszabadulni a holtpontról.
Képek jóvoltából:
- Steve Jurvetson számítógépe az Menlo Parkból, USA (CC BY 2.0)
- Bdesham „Étkező filozófusai” (CC BY-SA 3.0)