Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсакажите как раборать с виртуальной памятью 
:(
    Опции темы
_Eugene_
Дата 3.11.2006, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Нужно срочно написать прогу:

Цитата

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


1.Подскажите какие функции API нужны?
2.Как вы думаете что значить в задании фраза:" в системной области виртуального адресного пространства"? На сколька я знаю в среде Win32 каждый процесс имеет собственное 32-разрядное виртуальное адресное пространство объемом до 4 Гбайт. Пользователю доступны 2 Гбайт в области нижней памяти (от 0x00000000 до 0x7FFFFFFF), a 2 Гбайт в области верхней памяти (от 0x80000000 до 0xFFFFFFFF) зарезервированы для ядра.
3.И надо ли перед заполнением выделять страницы с помощью VirtualAlloc?

Короче вопросов масса а лабу надо здавать и очень скора!!! smile 
PM MAIL   Вверх
archimed7592
Дата 3.11.2006, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



2. они самые 2 верхних гига и есть системная обл. правда не всегда 2. можно сделать так, чтобы был только 1 smile
а вообще тебе в Центр помощи


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
_Eugene_
Дата 3.11.2006, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Ладно, с центром помощи учту на будущее. А что касается проги, насколько я понимаю, эти 2 гига зарезервированы под систему и недоступны пользователю. Так что тогда от меня хотят? Или я в чем то ошибаюсь??? И вот ника не могу понять, необходимо ли выделять страницы в виртуальном адресном пространстве перед заполнением? Нет, ну я конечно догадываюсь, что надо, но хотелось бы уточнить. В принципе в функции VirtualAlloc первый параметр является базовый адрес, будет ли функция работать если в первом параметре указать значение от 0x80000000 до 0xFFFFFFFF??? Плиз, нужна срочно помощь!!! 
PM MAIL   Вверх
archimed7592
Дата 3.11.2006, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



тебе не нужно ничё выделять...тебе нужно попытаться заполнить...всё что могу тебе посоветовать:
Код
const int page_size=  4096;
char *base_start = (char *)0x80000000;
char *base_end = (char *)0xFFFFFFFF - page_size + 1;
int set_value = '\0';
for (char *page = base_start; page < base_end; page += page_size)
    memset (page, set_value, page_size);
но этот код не делает никаких проверок на запрет доступа.

Цитата(_Eugene_ @  3.11.2006,  03:37 Найти цитируемый пост)
 Плиз, нужна срочно помощь!!! 
Как правильно задавать вопросы.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.