Re: Linux process

kondel33

Как в linuxe можно сбросить образ процесса в файл, потом, например, создать другой процесс и смапить образ из файла на него ?

abrek

А что получить-то хочется в результате?

kondel33

ну если 1 процесс по какой-либо причине умрёт, мы перехватим сигнал, сольём его в файл, а потом восстановим
примерно так

abrek

А почему второй процесс окажется жизнеспособнее? Если скажем процесс получил SIGSEGV, то если восстановить контекст, он опять то же самое сделает, разве не так?
А вообще по-умному это называется checkpoint, кто-то этим занимается, я бы в гугле поискал. Самое сложное тут -- что делать с файловыми дескрипторами и подобной фигнёй.

kondel33

ну скажу ещё проще, процесс получает сигнал SIGXCPU, время у него вышло, пора уничтожаться
ты его льёшь, процесс умирает, ты делаешь другой, мапишь на него старый и вуаля, опять работает
к сожалению инета нет
может доки какие есть ?
был бы премного благодарен

abrek

это открытая проблема, тут не может быть доков, только research papers

kondel33

согласитсья с тобой не могу
ну вот опять же если брать пример с ограничением процессорного времени, ты там считаешь что нить, бла бла бла, и тут раз, время твоё вышло и процесс умираетю что тебе делать ?
что то должно быть

kanareykina

А не проще форкаться раз в n секунд, где n заведомо меньше квоты, но не слишком мало?

kanareykina

Или у тебя сырцов того, что ты пускаешь, нету?

bobking

хе-хе.

kondel33

ну ркз ты такой умный пусть у тебя ещё и ограничение на количество процессов стоит, хрен ты форнешься
вопрос был всё таки не об этом.

bobking

Дядя, а Вам не кажется, что Вы пытаетесь обойти защиту системы от безмазового пользователя и устроить DoS-атаку?
Если кажется, то хули Вы, дядя, паритесь?

kondel33

ёп та ! ну чё народ такое тупой пошёл
повторяю ещё раз, для даунов - ЧИТАЙ МОЙ ПЕРВЫЙ ПОСТ !

abrek

checkpointing - очень полезная вещь в расчётных задачах, которые могут выполняться длительное время
ибо бывают не только SIGXCPU, но и всякие аппаратные сбои, вынужденные перезагрузки и т.д.
Да и защита от SIGXCPU может быть использована не только для атаки: предположим, кто-то запускает нашу программу на своей системе и берёт деньги за машинное время, причём просит предоплату. А мы не знаем, сколько времени будет считаться наша задача. Поэтому мы встраиваем чекпоинт при окончании оплаченного времени, чтобы можно было доплатить и продолжить расчёт.
В случае расчётной задачи проще организовать это своими силами, то есть пусть программа сама сбрасывает промежуточные результаты в файл.
Системных средств для общего решения задачи нет, но вроде бы каких-то модификациях ядра для работы на кластерах есть средства, пригодные для каких-то классов программ.

bobking

На первый пост тебе ответили, интеллектуал бля.
А ёбнутые примеры ты сам выдумал.

kondel33

ладно, спасибо огромное
но это всё же не то, что я хотел

bobking

Да это всё понятно.
Однако если забить на дескрипторы и иметь доступ к сырцам (сценарий типа "захавали данные и жуём их" то задача решается почти элементарно.

bobking

Кстати, от аппаратных сбоев (и вообще от сбоев, затрагивающих всю систему) может помочь software suspend или как там его.

kondel33

помимо того что ты хам (гыыы) ты ещё и непонятно объясняешься
ты знаешь ответ на мой 1 пост ? (доступ к сырцам есть)

abrek

Гораздо хуже
Сбой может привести к замене какой-нибудь железки на не идентичную, и resume не будет
Чекпоинт, грамотно организованный подручными средствами выживет также при изменении версий библиотек, или вообще при переносе на другую машину, даже другой архитектуры.

bobking

Положим, кору в формате ELF (для определённости) ты получать умеешь.
Тебе нужно создать специальный загрузчик, взяв за основу ld.so (точнее, схему его работы).
Этот загрузчик должен прочитать кору, намапить секций как положено и передать управление во вновь созданный образ процесса.
С дескрипторами, конечно, жопа.
В качестве полумеры их можно переинициализировать по какому-нибудь флагу, который должен обнулить твой загрузчик.

ruler

Маленькая подсказка: чтобы тебе быстрее и правильнее ответили, недостаточно обозвать собеседника тупым. Нужно еще обязательно сразу послать его нахуй.

jupol

>ну чё народ такое тупой пошёл
А Скорпа задело, и он написал нормальный ответ

bobking

Маленькая подсказка вам обоим: чтобы получить больше информации, <ваш рецепт>.

bobking

Похоже, первоначальные участники треда умерли от смеха, прочитав такое "решение".
Какие слабонервные, однако.
Оставить комментарий
Имя или ник:
Комментарий: