Portál AbcLinuxu, 10. května 2025 06:42
hmm... uz mi to pekne dlouho vrta hlavou. aneb linux/Documentation/filesystems/tmpfs.txt
2) glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for POSIX shared memory (shm_open, shm_unlink). Adding the following line to /etc/fstab should take care of this: tmpfs /dev/shm tmpfs defaults 0 0 Remember to create the directory that you intend to mount tmpfs on if necessary (/dev/shm is automagically created if you use devfs). This mount is _not_ needed for SYSV shared memory. The internal mount is used for that. (In the 2.3 kernel versions it was necessary to mount the predecessor of tmpfs (shm fs) to use SYSV shared memory)
v cem se vlastne lisi POSIX shm od SYSV shm?
je SYSV sdilena pamet to, ze kdyz se spusti proces, tak jeho stranky nacteny z bloku z disku sou v pameti pro vsechny procesy te same binarky ty samy (a obdobny situace)? kdezto POSIX shm je chapany jako prostredky IPC?
jestli sem se priblizne trefil, tak mi aspon na to kyvnete, jestli ne tam me nakopnete spravnym smerem pls.
sakra beru zpet... mam v tom jeste vetsi mismas, takze zacneme rozdilem shm_get a shm_open. ja vzdy myslel, ze vsechno shm_* a jeste neco vic patri pod posix ipc, je to tak?
kdyz si das ipcs, tak Shared Memory Segments je to co asi dela jak shmget, tak asi i shm_open prenositelnejsim zpusobem s odpovidajicima parametrama, ale shm_open navic dokaze jeste ty semafory, fronty zprav(mutex?)
ad 0 u shared memory, jak v df, tak /proc/meminfo a odpovidajici user space nastroje, ktery to pouzivaj, tak v 2.4 je ta nula u shared docela dlouho. sice ne od zacatku ale po nejake te zmene VMM co byla nekdy ze zacatku. proste je to citelnejsi a rychlejsi kdyz se neudrzuji vselijaky dalsi informace, aby se to dalo spocitat rozumnym zpusobem a nikomu se nechtelo implementovat nejakej silenej pocitaci algoritmus jen proto aby se admin uspokojoval cisilkama kolik usetril vhodnejma programama na pameti ;)
aha. tak uz mi to asi konecne docvaklo.
sys4/5 nebo jaka pamet (shmget) kterou poskytuje jadro, je normalne oznacena ponekud krytickou informaci, ktera je skoro nepouzitelna, (1)mimo potomky, ktery vzniknou forkem nebo clone, (2)pripadne procesy, ktere nemaji spolecneho predka a pouzivaji jine metody IPC, aby se informovaly o prostredku ipc - sdilenym segmentu, cily skoro hovadina ta dvojka.
kdezto posix tomu pridava namespace, aby dva naprosto nezavisle spusteny procesy mohly pouzivat sdilenou pamet, takze rozsiruje tu dvojku, tak aby se dala rozume pouzit.
snad sem to aspon tedka trefil.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.