Возможность запуска уже запущенного процесса в память какого-либо другого запущенного процесса

#c #operating-system #exec

Вопрос:

Может ли текущий запущенный процесс (скажем prcssA ) быть перенесен и запущен в память другого запущенного процесса (скажем prcssB )?

Я думал, что что-то вроде PID prcssA может быть передано функции (аналогично имени исполняемого файла программы, переданному в exec качестве аргумента), вызванной в prcssB amp; затем память prcssA может быть скопирована в память, prcssB а затем память prcssA может быть освобождена.

спросил просто из любопытства

Комментарии:

1. мне кажется, что вы размываете границы того, что отличает процесс. Любая современная ОС будет запускать каждый процесс в своей собственной песочнице, где им не разрешается касаться памяти друг друга. Если вы» загрузите » prcssA в prcssB (именно то, что это означает, нужно было бы уладить), я бы сказал, что это все часть prcssB, а prcssA не существует.

2. Вы имеете в виду, может ли поток в процессе перейти в другой процесс?

3. Вам следует уточнить, спрашиваете ли вы обо всем адресном пространстве или только о некоторых его частях. Для первого ответ-нет, это, как правило, невозможно. Для последнего ответ-да.

4. @Nolan, о котором я упоминал prcssA , столкнулся с prcssB похожим на то, как exec работает — это означает, что все адресное пространство должно быть скопировано.

5. @tstanisl Нет, я имею в виду весь процесс миграции.