- log69 blogja
- A hozzászóláshoz be kell jelentkezni
- 998 megtekintés
Hozzászólások
Mondjuk azt sose értettem, hogy az ilyen SystemV-IPC-s erőforrások (shm, sem) miért élik túl az utolsó használó processzt... BS2000-ben fejlődött agyamnak az lenne logikus, ha automágikusan eltakarítaná őket a kernel.
- A hozzászóláshoz be kell jelentkezni
Igazad van, én sem értettem. Vagy ez, vagy reboot kellett.
- A hozzászóláshoz be kell jelentkezni
En pl azt sem ertem h egy enterprise software a nagy kek altal miert probal torolni olyan IPC-t ami nem hozza tartozik :) Vannak furcsa dolgok az IPC teruleten ...
- A hozzászóláshoz be kell jelentkezni
Nekem a másik véglet volt szintén nagy kéknél (lótusznótusz kliens AIX-en) sipákolt, hogy már fut, lépjek ki belőle vagy indítsam újra a gépet. Ja, persze... Na ott is az ipc-beragadás volt a probléma.
- A hozzászóláshoz be kell jelentkezni
Hint: minek a rövidítése az IPC...?
- A hozzászóláshoz be kell jelentkezni
inter-processs communication.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
És az SVR4?
- A hozzászóláshoz be kell jelentkezni
System V. Release 4. A "hint"-tel arra próbáltam utalni, hogy az IPC arra van kitalálva, hogy processzek között lehessen egyszerűen kommunikálni. Nomostan ha a létrehozó processz kihalásakor a kernel kipucolná azt, amit ő más folyamatokkal való kommunikációra létrehozott, akkor az a tervezett működéssel erősen szembe menne.
IPC használata esetén tessék úgy megírni a kódot, hogy legyen, aki tudja, hogy mit lehet kitakarítani, és mit nem.
- A hozzászóláshoz be kell jelentkezni
Sejtettem, hogy ilyesmi a félreértés tárgya; az én felvetésem az volt, hogy az utolsó használó processz kilépésénél kellene megsemmisüljenek.
- A hozzászóláshoz be kell jelentkezni
Honnan kell tudnia a kernelnek, hogy ez az utolsó processz, senki sem fog később példányt indítani belőle?
- A hozzászóláshoz be kell jelentkezni
Anélkül, hogy alaposan utánanéznék én úgy képzelem, mint pl. egy már letötörölt file-t is is akkor enged el a kernel, ha egy process sem tart nyitva file descriptort rá.
Esetleg tudja valaki, hogy miért nem így működik?
- A hozzászóláshoz be kell jelentkezni
L. lentebb.
- A hozzászóláshoz be kell jelentkezni
Ha a referencia-számláló nullára csökken, akkor ez volt az utolsó. Hogy később mi lesz, azt egyrészt nem tudjuk, másrészt nincs jelentősége.
- A hozzászóláshoz be kell jelentkezni
Pont van. Miből gondolod, hogy adott pillanatban bárkinek használnia kell egy IPC erőforrást?
Miből gondolod, hogy nincs olyan use case, ahol alkalmazás elindul, berámol üzenetet MQ-ba, utána kilép, aztán később valami felébred (pl. cron job), és feldolgozza?
Közte nincs felhasználója az erőforrásnak, de mégis van benne fontos adat.
- A hozzászóláshoz be kell jelentkezni
Biztos van, de erre igazából fájlokat szokás használni, azok még az újraindítást is túlélik. Egy szemafornak vagy shared-memoriának szerintem nem kellene léteznie a memóriában, ha senki sem használja.
- A hozzászóláshoz be kell jelentkezni
Igazabol nem az szamit, hogy mi miben hiszunk, hanem hogy az idevago referenciak szerint minek kellene tortennie.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Van amire a fájl is jó, ebben igazad van, de az ipc célja picivel több/más. Hint: fájl létrehozása és abba valamilyen tartalom beleírása hány rendszerhívás? És ugyanez shm használatával? Mindez végrehajtási időben, processz ütemező általi megszakíthatóságban hogy is néz ki?
- A hozzászóláshoz be kell jelentkezni
Igen, nagyon gyors lehet egy memory-only üzenet sor, de miért is indokolja ez az a gyorsaság azt, hogy amikor nem fut senki, akkor is megmaradjon az üzenetsor?
Egyébként engem még mindig inkább a szemafor és főleg az osztott memória zavar: minek megy rájuk az erőforrás, ha egyszer nem használja senki.
- A hozzászóláshoz be kell jelentkezni
Hint: atomi művelet. Szerintem olvass utána, mit és miért csináltak meg így az IPC-ben, és ha utána sem érted, akkor kérdezz.
- A hozzászóláshoz be kell jelentkezni
Szerintem itt hagyjuk is abba. (Hint: ha akarsz valamit mondani, csak mondjad simán 'hint' nélkül.)
- A hozzászóláshoz be kell jelentkezni
Igen, miután elolvastad, felfogtad, mi is az IPC célja, hogyan működik (és miért pont úgy), és maradt még kérdésed, akkor folytassuk.
- A hozzászóláshoz be kell jelentkezni
+1
Meg nem ártana tudnia, mi a különbség egy message queue, egy shared memory és egy file között.
- A hozzászóláshoz be kell jelentkezni
> minek megy rájuk az erőforrás, ha egyszer nem használja senki.
Az alkalmazás is tudja magának törölni, ha biztos benne, hogy más már nem akar később hozzáférni. Ha nem teszi meg, az az alkalmazás helytelen működése.
Egyszerűen arról van szó, hogy valahogyan biztosítani akarták, hogy az IPC olyan processzek közt is működhessen, amelyek esetleg nem is ugyanabban az időben működnek.
Az egész sztoriról amúgy beej jókat írogat.
http://beej.us/guide/bgipc/output/html/multipage/shm.html
- A hozzászóláshoz be kell jelentkezni
Természetesen, amit csak egy bizonyos módon lehet használni, azt azon az egy bizonyos módon kell használni, akkor is, ha az kényelmetlen, ügyetlen. Esetünkben: mivel nincs referencia-számlálással egybekötött automatikus felszabadítás (opcionálisan sem), kézileg kell felszabadítani. Aztán ha rosszkor jött a 'kill -9', akkor jöhet az ipcrm(1).
Mondjuk kiváncsi lennék, hogyan kell egy SystemV-s szemafor felszabadítását korrektül megcsinálni, vagyis eldönteni, hogy én vagyok-e az utolsó használója, mert ha igen, akkor jöhet a 'semctl(IPC_RMID)' egyébként viszont nem.
- A hozzászóláshoz be kell jelentkezni
Jól tervezett alkalmazással. Az IPC nem hátulgombolósoknak lett kitalálva :-P
- A hozzászóláshoz be kell jelentkezni
(No offence, de ugye nem azt jelenti ez más szavakkal, hogy fogalmad sincs, a gyakorlatban még nem programoztál ilyesmit?
Szerk: mielőtt rávágnád, hogy 'de te sem' kattints ide: https://hup.hu/node/130946 )
- A hozzászóláshoz be kell jelentkezni
De csináltam - és a saját hátsóm lett rugdalva, mert voltak állapotok, amikre nem gondoltam. Úgyhogy alaposan megtanultam, mit, mire, miért és hogyan, és hogy legyen az egész olyan szinten hibatűrő, amennyire csak lehet.
- A hozzászóláshoz be kell jelentkezni
Ha van egy komplett IPC megoldásod, csak nem olyan bonyolult lekommunikálni, hogy vége a dalnak...
- A hozzászóláshoz be kell jelentkezni
A for-ban levo parancsot ird at erre:
ipcs -s | awk '$2 ~ /^[0-9]/ { print $2 }'
ugyanis igy nem fog raszaladni arra, hogy nincs olyan IPC, hogy "szem.az".
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
watta pakk
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni