рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Функции компилятора для контроля стека. - раздел Образование, Определение операционной системы ОС. Назначение и основные функции ОС. В Случае Dos При Компиляции Программ Нужно Было Включать Дополнительный Прогр...

В случае DOS при компиляции программ нужно было включать дополнительный программный код для конроля размера стека. В Windows 95, 98, NT этой проблемы нет, но возникает проблема контроля за выделением страниц физической памяти. Например,

VOID SomeFunc(…)

{

int Values[4000];

Values[0]=0;

}

переменная локальная

Физическая память   Физическая память   Зарезервированная страница Зарезервированная страница

 


четыре страницы

 

 

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

 

 


nByteNeeded = nByteNeeded – размер страницы
ОС выделяет физическую память
Запись на страницу
Указатель стека смещается на страницу вниз
Выход
nByteNeeded > размера страницы
Определение положения указателя стека
Определение размера страницы

 

Ф.С.   Ф.С.   Ф.С.

 


9. Кучи в Windows NT (2000). Структура кучи в Win32. Функции управления кучей Win32.

– Конец работы –

Эта тема принадлежит разделу:

Определение операционной системы ОС. Назначение и основные функции ОС.

Операционная система ОС комплекс программ обеспечивающих управление ресурсами вычислительной системы и процессами использующие эти ресурсы при... Ресурсы любой физический или логический компонент компьютера это процессор... Функции ОС...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Функции компилятора для контроля стека.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Эволюция ОС.
I. 1945-1955 г.г. В восемнадцатом веке английский математик Чарльз Бэббидж изобрёл компьютер (теоретически). ОС он не имел. С середины 40-х годов были изобретены первые ламповые вычислительн

Краткий обзор архитектуры Windows.
  Процессы поддержки системы Процессы сервисов

Основные системные файлы Windows 95, NT, 2000.
ntoskrnl.exe - исполнительная система и ядро hal.dll - уровень абстрагирования от оборудования win32k.sys - часть подсистемы win32, работающий в режиме ядра. kernel32.dll

Страничная или сегментно-страничная организация памяти.
Память процессора разбивается на страницы, размер которых зависит от типа процессора (обычно 4 - 8 Кб). 1) С помощью сегментной организации из логического адреса формируется линейный. Начи

В физическом адресном пространстве выбрана страница. Выбранная страница 1.
Каждый процесс имеет свой каталог страниц. Как только процесс (программа) загружается на выполнение в системный регистр CR3 записывается адрес каталога страниц. Индекс каталога страниц требуется дл

Алгоритм NRU (Not Recently Used - не использовавшаяся в последнее время страница)
Используются биты обращения (R-Referenced) и изменения (M-Modified) в таблице страниц. При обращении бит R выставляется в 1, через некоторое время ОС не переведет его в 0. M перев

Алгоритм FIFO (первая прибыла - первая выгружена)
Недостаток заключается в том, что наиболее часто запрашиваемая страница может быть выгружена. 7.1.3 Алгоритм "вторая попытка" Подобен FIFO, но

Алгоритм LRU (Least Recently Used - использовавшаяся реже всего)
Первый метод: Чтобы реализовать этот алгоритм, можно поддерживать список, в котором выстраивать страницы по количеству использования. Эта реализация очень дорога. Второй м

Регионы в адресном пространстве.
4 Гб адресное пространство выделяется процессу в момент создания и является практически свободным, незарезервированным. Для того, чтобы воспользоваться адресным пространством нужно выделить регион,

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

Механизм выделения страниц физической памяти.
  СФ – страничный файл. Если данные в страничном файле есть. LIFO. LRU - менеджер виртуальной памяти отмечает и выгружается та страница, к которой наиболее длительно

Выделение физической памяти под программный код.
Физическая память выделяется в страничном файле. При запуске приложения ОС открывает его исполняемый файл и определяет объем кода и данных приложения. ОС резервирует регион адресного пространства и

Атрибуты защиты страниц.
Отдельные страницы имеют различные атрибуты защиты: 1) PAGE_NOACCESS. Попытка чтения, записи, исполнения в этом регионе памяти вызовет нарушение доступа. 2) PAGE_READONLY. Попытка

КУЧИ (Heaps).
Мы рассматривали функции для работы с виртуальной памятью. Для работы с небольшими областями памяти используются кучи. В DOS кучей являлась вся свободная память. Каждая программа имеет сле

Особенности кучи в Windows 95, Windows NT.
1. В Windows максимальный размер кучи может быть практически равен размеру свободного адресного пространства. По умолчанию выделяется 1 Мб и передаются 2 страницы физической памяти. 2. В W

Структура кучи. Список(Заголовок и арена) кучи Win32.
… 2 блок 2 арена 1 блок 1 арена … критическая секция массив из 4-х заголовков размер   заголовок куч

Список свободных блоков
куча заголовок ////////////////////////////    

Структура арены.
Арена в занятых блоках. Начинается с поля длины блока. Затем в некоторых версиях Windows кроме длины блока могут указываться значения счётчика команд перед обращением к куче. Арена в свобо

Удаление кучи.
HeapDestroy(…). Проблема состоит в том, что 1.куча должна быть свободной, то есть CriticalSection=0. 2. куча может иметь подкучи. Необходимо удалить весь список связанных подкуч. Wi

Дополнительные кучи Win32 процесса.
Создаются по следующим причинам: 1. для защиты компонентов кучи. 2. для более эффективного управления памятью. 3. для локализации доступа. Рассмотрим вариант 1.

Создание дополнительных куч для эффективного управления памятью.
А3 А5 А4 х А6 В5 В1 А2 х

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

Файлы проецируемые в память (ФПВП).
Как и виртуальная память проецирование файлов в память позволяет резервировать регион адресного пространства и передавать ему физическую память, но физическая память берётся не из страничного файла

Проецирование в память exe и dll файлов.
Чтобы запустить ехе файл CreateProcess(…), где имя файла – это один из параметров. 1. Отыскивается ехе файл, вызванный функцией. 2. Создаётся объект ядра процесс. 3. Созд

Совместное использование статических данных несколькими экземплярами exe и dll модулей.
Например, имеется ехе файл, который состоит из ехе файл виртуальная память ВАП раздел кода 3 страницы   раздел данных 2 страницы

Иерархия функций работы с памятью.
Можно выделить 4 уровня функций работы с памятью, причём функции последнего уровня зависят от функций предыдущего уровня. 1. Функции управления памятью на уровне системных сервисов – 0 кол

Объекты kernel32.dll.
Объекты kernel32 являются ключевыми структурами данных ОС и находятся в куче, которой владеет kernel32. Например, в Windows 95,98 около 17 объектов, в Windows 2000 около 26 объектов. Примеры объект

Структура IMTE.
таблица модулей IMTE kernel32.dll pModuleTableArray user32.dll

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

Основные функции для работы с потоками.
1) CreateThread(…). Создаёт новый поток в текущем процессе. 2) CreateRemoteThread(…).Создаёт новый поток в другом процессе. 3) ExitThread(…). Нормальное завер

Уровни приоритета.
В Windows поддерживается 32 уровня приоритета от 0 до 31. Все приоритеты делятся на четыре класса. Класс приоритета присваивается процессу с помощью одного из флагов функции CreateProcess. Рассмотр

Функции Win32 связанные с планированием.
SuspendThread(…) – приостанавливает поток. ResumeThread(…) – возобновляет. SetPriorityClass(…) – установить класс приоритета процесса. GetPriorityClass(…) – получить. SetThreadPriority(…) – установ

Сценарий планирования.
1) Самостоятельное переключение потока 2) Вытеснение потоков 3) Завершение кванта времени 4) Завершение потока   1) Самостоятельное переключение

Динамическое повышение приоритета потока.
Windows может динамически повышать значение текущего приоритета потока в следующих случаях. 1. После завершения операций ввода/вывода. 2. По окончанию ожидания какого-либо события

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

Синхронизация потоков без использования объектов синхронизации.
Пусть есть 2 потока. Поток 1 синхронизирует себя завершением какой-либо задачи в другом потоке, постоянно просматривая значения некоторой переменной, доступной из обоих потоков.

Синхронизация потоков.
1. Объекты синхронизации могут находится в двух состояниях. 1) signaled – свободен 2) non-signaled – занят 2. Если состояние свободное, то работа потока разрешена, если в занятом,

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

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

Синхронизация объектов.
Для синхронизации с использованием объектов используются функции WaitForSingleObject(…), WaitForMultipleObject(…). Синхронизация с использованием таких объе

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

События с автоматическим сбросом.
Освобождаются с помощью SetEvent(…), переходят в занятое состояние с помощью WaitForMultipleObjects(…), как только событие освобождается.   WaitForMultipleObjects(…);

События со сбросом вручную.
При освобождении события со сбросом вручную из состояния ожидания могут выйти одновременно несколько потоков. Пример. Один поток считывает, другой эти данные обрабатывает. ResetEvent(…) –

События с автоматическим сбросом.
Освобождаются с помощью SetEvent(…), переходят в занятое состояние с помощью WaitForMultipleObjects(…), как только событие освобождается. WaitForMultipleObjects(…); . Set

Посылка асинхронных сообщений в очередь потока
Когда с потоком связывается структура THREADINFO, он получает свой набор очередей сообщений. Если процесс создает три потока и все они вызывают функцию Create Window, то и наборов очередей с

Формат PE-файла.
Фирма Microsoft разработала переносимый формат файла Portable Executable для использования во всех ОС. Эта же фирма разработала новый формат для объектных (obj) и для библиотечных (lib) фа

Особенности РЕ-формата.
1. Исполняемый файл на диске и модуль, получаемый после загрузки практически идентичны. Загрузчик должен создать из файла процесс без усилий механизмом проецирования в память. 2. Использов

Заголовок РЕ-файла.
Заголовок – это набор полей, который определяет, как будет выглядеть остальная часть файла. Несколько сотен байт РЕ-файлов заняты под заглушку (‘This program must be run u

Основные секции исполняемого PE-файла.
В ней (text.) обычно собран весь программный код общего назначения. BC++ помещает весь программный код в секцию CODE. Особенностью данной секции в РЕ-файле являетс

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

Экспорт в PE-файлах
Информация об экспортируемых функциях хранится в секции .edata (обычно в dll файлах). Таблица экспорта имеет следующую структуру:   Из dll экспортируется 3 ф

Базовые поправки РЕ-файла.
Компоновщик, создавая ехе файл предполагает, где в памяти будет создаваться РЕ-файл в соответствии с предполагаемыми адресами ячеек, в которых создаются данные, адреса переходов. Е

Особенности NTFS.
1. Восстанавливаемость. В случае отключения питания или какого-либо другого сбоя NTFS восстанавливает дисковые тома и возвращает их в целостное состояние. Восстановление происходит

Возможности NTFS.
1. Множественные потоки данных. В NTFS файл – это набор атрибутов, причём данные – это один из атрибутов файла. В файле можно создавать несколько атрибутов данных.

Тома в NTFS.
Структура NTFS начинается с тома. Том соответствует логическому разделу на диске и создаётся при форматировании диска или его части под NTFS. Оснастка Disk Management (Управ

Кластеры в NTFS.
Размер кластера на томе NTFS, или кластерный множитель (cluster factor), уста­навливается при форматировании тома командой

Назначение основных файлов NTFS.
Так, имя файла MFT –– $Mft. Остальные файлы NTFS-тома являются обычными файлами и каталогами. Обычно каждая запись MFT соответств

HKEY_LOCAL_MACHINESystemCurrentControlSetControlFileSystem
Windows NT не генерирует коротких имен для файлов, созданных приложениями POSIX в разделе NTFS. Это означает, что приложения MS-DOS и Wind

Структура файловых ссылок.
Файл на томе NTFS идентифицируется 64-битным значением, которое называ­ется файловой ссылкой (file reference). Файловая ссылка состоит из номера фай­ла и но

Атрибуты файла NTFS
NTFS рассматривает файл не просто как хранилище текстовых или двоичных данных, а как совокупность пар атрибутов их значения, одна из которых со­держит данные файла (соответствующий

Резидентные атрибуты.
Тело резидентного атрибута хранятся в файловой записи, расположенной внутри MFT. Если 8-разрядное поле, расположенное по смещению 08h байт от начала атрибутного заголовка, равно ну

Нерезидентные атрибуты.
Тело нерезидентного атрибута хранится вне MFT, в одном или нескольких кластерах, перечисленных в заголовке данного атрибута в специальном списке. Если 8-разрядное поле, расположенн

Структура каталогов в NTFS
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки,

Структура больших файлов в NTFS
Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие и сверхбольшие. Большие файлы (large). Если данн

Индексация файлов в NTFS.
Здесь мы будем говорить о структуре каталогов NTFS. Каталог в NTFS представляет собой индекс имён файлов, т. е список имён, упорядоченных по любому признаку. В нас

Битовая карта.
Используется для отслеживания того, какие VCN в индексных буферах заняты, а какие свободны. Каждый индексный буфер размером 2 Кб может содержать около 15 записей для имён файлов. Э

Восстанавливаемость NTFS.
NTFS представляет собой останавливающуюся файловую систему. Файловые системы делятся на: 1. Файловые системы с точной записью. 2. Файловые системы с отложенной записью или останав

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

Журнал транзакций.
Используется несколько типов записей. Это записи модификации и записи контрольной точки. Записи модификации. Большинство зап

Записи модификации.
Большинство записей в журнале – это запись модификации. Каждая запись модификации содержит два вида информации: 3. Информация для повтора, которая содержит сведения о том, как вновь примен

Восстановление данных в NTFS.
При выполнении операций NTFS ведёт две таблицы, которые записываются в журнал транзакций одновременно с записью контрольной точки. Эти таблицы следующие: 1. Таблица транза

Проход анализа.
При проходе анализа (analysis pass) NTFS просматривает журнал транзакций в прямом направлении, начиная с последней операции контрольной точки, чтобы найти записи м

Проход повтора.
На проходе повтора (redo pass) NTFS сканирует журнал транзакций в прямом направлении, начиная с LSN самой старой записи, которая была обнаружена на проходе анализа. Она ищет записи

Проход отмены.
Откатывает неподтверждённые транзакции. В таблице транзакций для каждой незавершённой транзакции хранится LSN.   Транзакция 1 – Транзакция 2 – – – – – – Каж

Переназначение плохих кластеров.
Не восстанавливает данные. Для восстановления используются три схемы избыточного хранения: 1. Зеркальные наборы. 2. Дуплексные наборы. 3. Чередование дис

Выбор операционной системы.
Во время загрузки Ntldr считывает файл Boot.ini. Если в этом файле за-Дан выбор одной из нескольких ОС, будет выведен запрос (Выберите операционную систему для запуска

Выбор конфигурации.
После окончания сбора информации об аппаратном обеспечении выводится сообщение (Меню выбора конфигурации оборудования). Оно содержит список аппаратных конфигураций, имеющихся на ко

Компоновка программы
TLINK [ключи] список_объектных_файлов [,имя_загрузочного_модуля] [,имя_файла_карты] [,имя_файла_библиотеки] [,имя_файла_определений] [,имя_ресурсного_файла] Ключ /v указывает на н

Листинг Копирование строки
<1> ; - Prg.asm - <2> masm <3>model small <4> .data <5> ... <6> str_l db "Асс

Команды циклического сдвига
К командам линейного сдвига относятся команды, осуществляющие сдвиг по следующему алгоритму. 1. Очередной «выдвигаемый» бит устанавливает флаг CF. 2. Бит, появляющийся с другого к

Команды циклического сдвига через флаг переноса CF.
К командам простого циклического сдвига относятся: rol перанд, счетчик_сдвигов — циклический сдвиг влево (Rotate Left). Содержимое операнда сдвигается влево на количество

Перечень команд условного перехода для команды cmp
Типы операндов Мнемокод команды услов­ного перехода Критерий условного перехода Значения флагов для перехода

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги