- •Минобрнауки россии
- •Е.В. Грачева Системное программное обеспечение персональных эвм
- •1 Программирование в операционной среде
- •1.1 Программирование в среде однозадачной операционной системы
- •1.2 Программирование в среде ос Windows
- •1.2.1 Основные понятия
- •1.2.2 Программный интерфейс
- •1.2.2.1 Сообщения, очередь сообщений
- •1.2.2.2 Процедура окна
- •1.2.3 Использование динамических библиотек
- •1.2.3.1.Описание api-функции LoadLibrary
- •1.2.3.2 Описание функции GetProcAddress
- •1.2.3.3 Описание функции FreeLibrary
- •1.2.4 Описание некоторых api-функций
- •1.2.4.1.Функции для создания пользовательского интерфейса
- •1.2.4.1.1 Ввод данных с клавиатуры
- •1.2.4.1.2 Ввод данных с помощью "мыши"
- •1.2.4.1.3 Диалоговые окна
- •1.2.4.2 Функции для получения информации о системе
- •1.2.4.2.1 Информация об аппаратной конфигурации
- •1.2.4.2.3 Конфигурация ос
- •1.2.4.2.4 Системные параметры
- •1.2.4.2.5 Внешний вид системных элементов
- •1.2.4.3 Функции управления памятью
- •1.2.4.3.1 Основные функции управления памятью
- •1.2.4.4.Функции управления файлами
- •1.2.4.4 Функции управления некоторыми устройствами
- •Контрольные вопросы
- •35. Охарактеризовать функцию для определения конфигурации ос
- •36. Охарактеризовать функции об установке системных параметров.
- •2.Ассемблеры
- •2.1 Архитектура процессоров ia-32
- •2.1.1.Основная исполнительная среда микропроцессора с архитектурой ia32
- •2.1.2 Режимы работы и используемая модель памяти процессоров с архитектурой ia32
- •2.1.3 Архитектура ia-32 системного уровня
- •2.2.Программирование на языке ассемблера
- •2.2.1 Метки
- •2.2.2 Директивы
- •2.2.3 Формат команды
- •2.2.4 Система команд микропроцессоров с архитектурой ia32
- •2.2.4.1 Команды пересылки данных
- •Ins строка, dx
- •2.2.4.2 Арифметические операции
- •2.2.4.3 Операции сдвига
- •2.2.4.4 Битовые операции
- •2.2.4.5 Команды для организации циклов
- •1.3.1.1 Команды сравнения
- •2.2.4.6 Команды передачи управления
- •2.2.4.7 Системные команды
- •2.2.4.8 Команды математического сопроцессора
- •2.2.5 Технология программирования
- •2.3 Макроязыки
- •3.Трансляторы
- •3.1 Структура компиляторов и интерпретаторов, лексический, синтаксический и семантический анализаторы, генератор кода
- •3.1.1.Распределение памяти, виды переменных
- •3.1.2.Статическое и динамическое связывание
- •3.2 Загрузчики
- •3.2.1 Функции загрузчика
- •3.2.1 Настраивающий и динамический загрузчики
- •3.3 Подключение библиотек
- •4. Формальные языки и грамматики
- •4.1 Типы грамматик
- •4.1.1 Вывод цепочек
- •4.1.2 Конечный и магазинный автоматы, распознаватели и преобразователи, построение автомата по заданной грамматике
- •Приложения Приложение а
- •Оглавление
- •4. Формальные языки и грамматики
1.2.4.3 Функции управления памятью
1.2.4.3.1 Основные функции управления памятью
Диспетчер памяти реализует механизм виртуальной памяти и реализует набор основных операций с памятью, таких как проецирование файлов на область памяти, поддержка больших объемов памяти и т.п.
Каждый процесс, работающий в среде 32-х разрядной Windows, имеет в своем распоряжении виртуальное адресное пространство, которое позволяет ему адресовать до 4 Гб памяти. Для процессов, работающих в среде 64-х битной Windows, виртуальное адресное пространство достигает 8 Тб. Все потоки процесса имеют доступ к его виртуальному адресному пространству.
В таблице 20 приведены лишь малая часть функций, которые могут быть использованы для управления памятью.
Таблица 20 -Функции управления памятью
Функция |
Описание |
CopyMemory |
Копирует блок памяти из одного участка в другой. В качестве входных параметров задаются: указатель на начальный адрес копируемого участка памяти, указатель на начальный адрес участка памяти, куда будет проведено копирование и размер копируемого блока в байтах. Все входные параметры имеют размер 32 бита. Функция работает под управлением ОС семейства Windows, начиная с версии Windows 2000 Professional |
FillMemory
|
Заполняет участок памяти указанным значением. В качестве входных параметров задаются: указатель на начальный адрес заполняемого участка памяти, размер участка памяти и значение, которым будет заполняться, указанный участок памяти. |
GetSystemFileCacheSize |
Возвращает текущее значение ограничения на размер рабочего набора системного кэша. Входных параметров эта функция не имеет, а в качестве выходных параметров выдает: указатели на минимальное и максимальное значение размера системного кэша, т.е. объема памяти, которое диспетчер виртуальной памяти пытается сохранить резидентной (минимальный размер) и указатель на флаг, который определяет, какое из ограничений используется в текущий момент времени. |
GlobalMemoryStatus
|
Позволяет получить информацию о текущем использовании операционной системой как физической, так и виртуальной памяти. В качестве выходного параметра эта функция выдает указатель на структуру данных MEMORYSTATUS, содержащую поля, отражающие текущее значение: процента использования физической памяти, общий объем физической памяти (в байтах), объем доступной физической памяти (в байтах), размер виртуальной памяти (в байтах, это значение для большинства 32-х разрядных процессов, запущенных на процессоре с архитектурой х86 равно примерно 2 Гб), объем доступной виртуальной памяти и т.п. Если приложение, использующее данную функцию, работает под управлением 64-х разрядной ОС, то возможно переполнение значений определяемых параметров. Происходит это потому, что поля структуры данных MEMORYSTATUS, используемой функцией GlobalMemoryStatus, являются 32-х разрядными. Поэтому, если существует опасность возникновения такой ошибки, следует использовать функцию GlobalMemoryStatusEx и, соответственно, структуру данных MEMORYSTATUSEX, поля которой аналогичны полям структуры данных MEMORYSTATUS, за исключением размера - в структуре данных MEMORYSTATUSEX поля являются 64-х разрядными. |
