Вниз
Скачать: CL | DM;

Выделение физической памяти   Найти похожие ветки 

 
Ishmael   (2005-09-25 23:30) [0]

Надо выделить область ФИЗИЧЕСКОЙ памяти с конкретного адреса и конкретного размера, причём так, чтобы ни одно приложение (и система) более не имело доступа к этой области. Пример (может и неудачный, но смысл такой): выделил я себе 384 из 512Mb оперативки - комп тормозит так же, будто у него вовсе 128.
Каким образом это можно реализовать?


 
Eraser ©   (2005-09-26 00:39) [1]


> Ishmael   (25.09.05 23:30)

Без драйвера ядра тут никак, да и с драйвером конкретные адреса может оказаться получить проблематично.
Драйвер ядра надо писать на MS VC++ и MS DDK, а не на делфи.


 
Ishmael   (2005-09-26 08:42) [2]

По сравнению с WinAPI NativeAPI я вообще не знаю. Что именно в нём использовать?


 
alpet ©   (2005-09-26 10:45) [3]

Тебе нужно прикупить достаточно памяти. Если обращения к выделенному региону памяти (хоть 1Гб) будут достаточно частыми, он не будет выгружаться на диск. В дополнение рекомендую ознакомится с функцией SetProcessWorkingSetSize(Ex). А так требования у тебя поставлены практически несовместимые с системой, такое разве что в DOS можно реализовать, но в этом случае Delphi тебе не помощник.


 
miek ©   (2005-09-26 11:22) [4]

Выдели сколько надо памяти и залочь ее. По идее, все должно лежать в физ.памяти.


 
Ishmael   (2005-09-27 18:45) [5]

Дело не в количестве памяти, а в необходимости ещё выделения и залочивания.
VirtalAlloc - выделяет. Хорошо выделят: GlobalAlloc её не перешибает, но (!!!) два экземпляра одного приложения с VirtualAlloc прекрасно уживаются, только своп растёт. SetProcessWorkingSetSize(Ex) - знаю, без неё на основе VirtalAlloc проги не работают. Дошёл до AllocateUserPhysicalPages, но прототипов в Delphi нет. Кажется, самый простой случай, это VirtualAlloc с флагом MEM_PHYSIC, но его не ни в одном дельфийском хидере, а численное значение не упоминается и в одном доступном мне источнике. :(


 
Игорь Шевченко ©   (2005-09-27 18:47) [6]


> Дошёл до AllocateUserPhysicalPages, но прототипов в Delphi
> нет


http://www.delphi-jedi.org


> Кажется, самый простой случай, это VirtualAlloc с флагом
> MEM_PHYSIC, но его не ни в одном дельфийском хидере, а численное
> значение не упоминается и в одном доступном мне источнике


const MEM_PHYSICAL  = $400000;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
3-1129253591
fedor
2005-10-14 05:33
2005.11.27
Инсталляция вместе с драйверами InterBase


4-1127652712
Vitaliy
2005-09-25 16:51
2005.11.27
Ввод (вывод) информации на поры(LPT,com,usb)


3-1129631803
Андрей__
2005-10-18 14:36
2005.11.27
Interbase и кириллица


9-1121008941
NewWonder
2005-07-10 19:22
2005.11.27
DirectX: Help me!


14-1131295569
Turbid
2005-11-06 19:46
2005.11.27
Набор компонентов




   Наверх