Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [MS Access] Программ, которая заполняет память


Автор: metamfetamin 11.11.2007, 11:44
Люди нужна помощь!!!!
Как в среде Access разработать программу, которая заполняет память в достаточном для подкачки объеме. Наблюдение за процессом подкачки через системный монитор!!!!
 
Требование к конфигурации : Windows NT/98, Access, наличие системного монитора sysmon.exe. 
Пояснения : Процессор Intel, начиная 80386, позволяют отобразить область физической памяти на любую область (в том числе и диск) 32-разрядных адресов. Приложения обращаются к памяти с помощью 32-разрядных адресов. Диспетчер виртуальной памяти преобразует виртуальные адреса физического ОЗУ или в файл на диске. Физическое и фиртуальное адресное пространство разделено на страницы (для x86 размер страницы 4кб). ОС может перемещать страницы памяти в страничный файл на диске и обратно. Если ядру требуется место в физической памяти, оно вытесняет самые старые страницы физической памяти в страничный файл. 

1.В среде Access разработать форму с тремя кнопками: ЗАГРУЗИТЬ ПАМЯТЬ, ОСВОБОДИТЬ ПАМЯТЬ, ЗАКРЫТЬ ФОРМУ 
2.Вставить следующий код: 
Код

Option Compare Database 
'Обьявление системной функции для определения пути к папке Windows 
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
Private HugeArray(10000) As Variant 
Option Explicit 
Private Sub Form_Load() 
Dim WinDir As String 
Dim Length As Long 
WinDir = String(255, vbNullChar) 'заполнение переменной для пути нулевыми кодами < /EM > 
Length = GetWindowsDirectory(WinDir, Len(WinDir)) 'чтение пути < /EM > 
WinDir = Left(WinDir, Length) < /EM > 
Shell WinDir & "\sysmon.exe", vbNormalFocus 'запускает исполняемую программу 
End Sub 
Private Sub ЗагрузитьПамять_Click() 
Dim Str As String 
Dim i As Integer 
Str = Space(1000) < /EM > 
For i = 0 To 9999 < /EM > 
HugeArray(i) = Str 'каждый элемент массива содержит 1000 пробелов < /EM > 
DoEvents 'Передает управление операционной системе для обработки других событий 
Next 
End Sub 
Private Sub ЗакрытьФорму_Click() 
DoCmd.Close , , acSaveNo 'Закрытие формы без сохранения 
End Sub 
Private Sub ОсвободитьПамять_Click() 
'Повторно инициализирует элементы массивов фиксированной длины 
'и освобождает память, отведенную для динамического массива. 
Erase HugeArray 
End Sub 


Автор: Akina 11.11.2007, 22:04
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)