LINUX.ORG.RU

Shared memory


0

0

Priwet!

Pomogite!!!

1) Kakoi komandoi ja polutchu podrobnuju informaciju o pamjati
(skolko wsego, skolko ostalos, skolko ispolzuetsja, shared memory
i.t.d.). Tolko poschaluista /proc ne predlagaite, tak kak,
pardon za offt., retch idet o Solaris.

2) Programma sozdaet child-process (fork),
Parent process i child process obschajutsja tcherez
shared memory. Pritchem snatchala ja sozdaju pamjat,
prikrepljaju ee, a potom forkaju (fork).
Posle togo kak user naschimajet na Ctrl+C, wiziwaetsja
odna funkzija, kotoraja 1) ubiwaet child process ( kill (pid,9) ),
a potom "ubiwaet" shared memory ( shmdt ( smaddr ) ), totchnee
ne ubiwaer, a kak w knige stoit "funkcija otsojedinjaet shared memory
ot wirtualnogo adresa wiziwajuschego processa". Eto znatchit,
pamjat ostajetsja. Togda ja, glupaja golowa, naschel semctl!
Eta funkcija udaljaet shared memory. No k soschaleniju ja eto
slischkom pozdno zametil... Teper ja ne mogu sozdat ili
podsojedinitsja k pamjati, tak kak pamjat ne beskonetchna i
ee bolsche net. Kak sche mne ee teper udalit? Perezagruzit
maschinu ja ne mogu, tak kak ja ne odin rabotaju za nei i
kollega ostawil tut swoi processi, ja ne mogu ich ubit.
Dumaju dolschen bit kakoi - nibud wichod.
Wot wet durnaja situacija! Moschet bit est wozmoschnost
udalit pamjat iz shell? Kakoi komandoi?

Budu blagodaren wsem, kto dast hot kakoi sowet! Spasibo.


Насчет sun'a не уверен, но в линухе помогает ipcs,ipcrm. А почему ты не можешь удалить это с shmctl ?

timur
()
Ответ на: комментарий от timur

Spasibo, poprobuju. Ja ne mogu eto udalit potomu, schto usche net swobodnoi pamjati! To est sys call wozwraschaet wsegda -1, a perror goworit "No space left on device".

Igorek
() автор топика
Ответ на: комментарий от timur

Вот спасибо! Это как раз то, что я искал! Спасибо!!!

Igorek
() автор топика

И все таки непонятно. ipcrm использует тот-же shmctl. Если для твоего shmctl не хватает памяти, то почему ее хватает для ipcrm ?

timur
()
Ответ на: комментарий от timur

Да кто его знает? Я создавал при каждом запуске 32кб. Запускал много раз :) Вообщем я ничего не знаю, факт тот, что утилиты помогли (еще как!) и что после того, как я удалил все ненужное - программа заработала моментально. :) Теперь все работает и удаляется так как надо :) Спасибо!

Igorek
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.