|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.11.2012, 23:47 | #1 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 88
|
Помещение процеса в память
Здраствуйте. Каким образом с помощью winapi можно поместить процес в определенный участок памяти на выполнение?(если это вообще возможно)
|
26.11.2012, 06:28 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
какой памяти? чьей?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
26.11.2012, 09:17 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Загрузив процесс вручную.
Только вот вопрос - зачем это нужно? |
26.11.2012, 20:33 | #4 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 88
|
в универе лаба такая по спо(системное програмное обеспечение). нужно сделать менеджер управления памятью который согласно с заданой стратегией распредиления памяти берет из очереди задачу на выполнение и помещает ее в соответственный участок свободной памяти.
пол беды если б это было только моделирование. но ведь тут реальные процесы, правда они используют определенное количество памяти в (1-20% общего количества памяти). вобщем в раних лабах нужно было сделать диспетчер управления процесами согласно указаной стратегии. это я сделал без проблем. теперь вот говорят что этот диспетчер управления процесами нужно привязать к менеджеру распеределния памяти, и слепить их воедино. собсно по этому спрашиваю как выделить процесу память и поместить его туда средставми winapi. если это не возможно то так и скажите. и я с чистой совестью пойду моделировать. Последний раз редактировалось lowercase; 26.11.2012 в 20:41. |
26.11.2012, 20:45 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Если я вас правильно понял, вы берете exe фаил и проецируете его в память и запускаете оттуда?
Или вы хотите взять уже запущенный exe и скопировать его в др. область памяти? Первый вариант возможен. На вскидку, в гугле вбейте "Запуск процесса из памяти" 2 и 3 ссылки - там есть много инфы, и далее по гуглу тоже. wasm.ru - та так же много полезного. А вот второй из ring3 вам просто система не даст выполнить, т.к. существует реальная физическая связь между запущенной программой и её exe файлом. Сделать дамп памяти процесса - возможно, и ввернуть этот дамп обратно в память - так же возможно. Но никак не переместить и не запустить из др. области. Система не даст, не из ring3 уж точно. |
26.11.2012, 21:24 | #6 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 88
|
скорее всего нужно делать второй вариант. тогда уж походу только моделирование, если система не позволит переместить процесс в другую область памяти, ибо по заданию менеджер памяти должен уметь:
1) поместить процесс в память 2) освободить выделенную под процесс память 3) делать уплотнение памяти(по сути дефрагментация свободной памяти) Последний раз редактировалось lowercase; 26.11.2012 в 21:31. |
26.11.2012, 22:18 | #7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Тогда либо вам дали "Mission Impossible", либо вы не так поняли задачу.
Думаю что, Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
2 процеса одновременно..? на Си | pufystyj | Общие вопросы C/C++ | 16 | 30.03.2011 19:17 |
Программное завершение процеса | Vladya | Помощь студентам | 2 | 07.05.2010 15:51 |
Ускорение процеса проверки данных! | $T@LKER | БД в Delphi | 0 | 25.04.2010 02:03 |
Проверка и востанавление процеса %( | Pirotexnik | Общие вопросы Delphi | 5 | 27.03.2009 14:27 |
Завершение процеса | aesoem | Общие вопросы Delphi | 10 | 28.08.2008 16:44 |