Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты Системное прогр Сымбат.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
595.46 Кб
Скачать

Экзаменационный билет № 7

1. Получение статистической информации о задании.

2. Объекты синхронизации потоков.

3. Архитектура управления памятью в Win32.

Функция VirtualFree освобождает ряд страниц в виртуальном адресном

пространстве. А функция VirtualFreeEx освобождает ряд страниц в

виртуальном адресном пространстве указанного процесса.

BOOL VirtualFree(LPVOID lpvAddress, DWORD dwSize,

DWORD dwFreeType)

BOOL VirtualFreeEx(HANDLE hProcess, LPVOID lpvAddress,

36

DWORD dwSize, DWORD dwFreeType)

Функция VirtualLock блокирует область виртуального адресного

пространства в памяти. А функция VirtualUnLock дает возможность

разблокировать указанный ряд страниц в виртуальном адресном пространстве

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

необходимости.

BOOL VirtualLock (LPVOID lpvAddress, DWORD dwSize),

BOOL VirtualUnlock (LPVOID lpvAddress, DWORD dwSize)

Функция VirtualProtect изменяет установки защиты доступа к области

выделенных страниц в виртуальном адресном пространстве. Функция

VirtualProtectEx может действовать в виртуальном адресном пространстве

других процессов, тогда как VirtualProtect действует толька в рамках

вызывающего процесса.

BOOL VirtualProtect(LPVOID lpvAddress, DWORD dwSize, DWORD

dwNewProtect, DWORD pdwOldProtect)

BOOL VirtualProtectEx(HANDLE hProcess, LPVOID lpvAddress,

DWORD dwSize, DWORD dwNewProtect, DWORD pdwOldProtect)

Экзаменационный билет № 8

1. Структура программы. Цикл обработки очереди сообщений.

2. Создание событий управления консоли.

3. Ошибки и исключения.

Под ошибками понимаются исключительные ситуации, которые время от времени могут возникать в известных местах программы. Так, обнаружение ошибок, возникающих во время выполнения системных вызовов, и немедленный вывод сообщений о них должны предусматриваться логикой работы самой программы. Поэтому программисты, как правило, явно включают в программный код участки, ответственные, например, за тестирование успешности завершения операции чтения данных из файла. В главе 2 для диагностики ошибок и принятия соответствующих мер была разработана функция ReportError.

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

Вместе с тем, указанные различия между ошибками и исключениями являются довольно условными. Windows позволяет управлять генерацией исключений, возникающих в случае нехватки памяти при ее распределении с использованием функций НеарАllос и HeapCreate. Этот процесс описан в главе 5. Помимо этого, программы могут генерировать собственные исключения с кодами, определяемыми программистом, используя для этого функцию RaiseException, о чем далее будет говориться.

Обработчики исключений обеспечивают удобный механизм выхода из внутренних блоков или функций под управлением программы без использования операторов перехода goto или longjmp. Такая возможность оказывается особенно полезной, если блок получил доступ к таким, например, ресурсам, как открытые файлы, память или объекты синхронизации, поскольку обработчик может взять на себя задачу освобождения этих ресурсов. Возможно также продолжение работы программы после выполнения кода обработчика исключений, а не ее обязательное завершение. Кроме того, после выхода из блока программа может восстанавливать прежнее состояние системы, например маску FP-исключений. Именно в этом ключе обработчики используются во многих наших примерах.