#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 Нет, я имею в виду весь процесс миграции.