- •Классификация системного программного обеспечения
- •Другая классификация
- •Требования к системному программному обеспечению
- •2. Операционная система. Основные функции ос. Структура операционной системы.
- •3. Интерфейс прикладных программ (api) ос. Api Win32 (системные функции).
- •Api операционных систем.
- •Структура api-программ
- •4. Дисковая подсистема в архитектуре ibm pc.
- •5. Низкоуровневая организация дисковой памяти. Сервис bios доступа к дисковой подсистеме.
- •Емкость Диска
- •Оглавление Диска (Каталог)
- •Основные Положения На Память
- •6. Понятие файловой системы. Назначение, требования, функции. Способы организации фс.
- •7. Объекты файловой системы: файлы, директории, логические устройства, другие виды объектов. Файловая система
- •Имена файлов
- •Типы файлов
- •Логическая организация файла
- •Физическая организация и адрес файла
- •Права доступа к файлу
- •Кэширование диска
- •Общая модель файловой системы
- •Отображаемые в память файлы
- •Современные архитектуры файловых систем
- •8. Файловые системы на основе fat (либо по желанию ntfs, s5fs, ufs, ext и т.Д.).
- •9. Служебные структуры файловых систем fat и их использование.
- •1.3.2. Файловые системы
- •Файловая система fat Краткие теоретические сведения
- •Обзор файловой системы fat
- •Имена файлов в fat
- •Преимущества файловой системы fat
- •Недостатки файловой системы fat
- •Обзор файловой системы hpfs
- •Суперблок
- •Запасной блок
- •Преимущества файловой системы hpfs
- •Недостатки файловой системы hpfs
- •Обзор файловой системы ntfs
- •Надежность
- •Дополнительные функции
- •Поддержка posix
- •Устранение ограничений
- •Преимущества файловой системы fat
- •Недостатки файловой системы ntfs
- •Соглашения именования в ntfs
- •10. Программный интерфейс файловой системы (функции для взаимодействия с фс, файлового ввода-вывода) - dos, Win32.
- •12. Вычислительный процесс. Состояния вычислительного процесса.
- •[Править]Создание программ
- •[Править]Использование программ
- •[Править]Правовые аспекты
- •13. Адресное пространство процесса (задачи).
- •20. Адресное пространство процесса
- •14. Приложения Windows (Win 32), разновидности. Структура оконных (windowed) приложений.
- •2. Особенности приложений Win 32.
- •17. Событийное управление в Win32. Сообщения и очереди сообщений Windows (Windows messages): назначение, структура, отсылка, доставка, обработка.
- •18. Цикл обработки сообщений. Оконная процедура: назначение, выполнение, способы активизации и завершения. Краткие теоретические сведения
- •19. Многозадачность, многозадачные операционные системы, особенности выполнения приложений в многозадачной среде.
- •Краткие теоретические сведения поток
- •Краткие теоретические сведения
- •27. Взаимодействие процессов/потоков, взаимное исключение, синхронизация (базовые сведения)
- •Синхронизация субъектов взаимодействия
- •Сравнительная характеристика механизмов взаимодействия
- •33. Графическая подсистема Win32 (gdi) - общая характеристика, основные концепции, объекты (инструменты).
- •Х.1 Общие сведения
- •Х.2 Системы координат и единицы измерения
- •Х.3 Цвета и палитры
- •Х.4 Основные инструменты графической подсистемы
- •Х.4 Растровая графика
- •Х.5 Управление областями вывода и отсечением
- •Х.6 Некоторые аспекты использования графической подсистемы
- •34. Подсистема памяти. Основные задачи, функции, требования. 35. Виртуальное адресное пространство, управление памятью с использованием виртуального адресного пространства.
- •37. Подсистема памяти Win32. Регионы (области) памяти. Группы функций api подсистемы памяти.
- •38. Распределение памяти на уровне менеджера виртуальной памяти (vmm api - Win32). In (35) 3. Архитектура памяти в Win32® api. 3.2. Управление виртуальной памятью. Vmm.
- •39. Отображение файлов в память (File mapping - Win32).
- •4.1 Адресное пространство процесса.
- •4.2 Функции работы с виртуальной памятью.
- •4.3 Проецирование файлов в память
- •4.4.1 Запуск исполняемых файлов и динамически связываемых библиотек
- •4.4.2 Проецирование файлов данных
- •4.4.3 Взаимодействие процессов через общую область данных
- •4.4 Функции работы с кучами (heap-область)
- •4.5 Глобальные и локальные объекты "память"
- •4.6 Функции crt Memory api
- •X.2. Структура подсистемы памяти Win 32 и группы функций
- •40. Системный реестр Windows: назначение, организация, доступ.
34. Подсистема памяти. Основные задачи, функции, требования. 35. Виртуальное адресное пространство, управление памятью с использованием виртуального адресного пространства.
Виртуальное адресное пространство процесса.
В Win32 API используется плоская 32- разрядная модель памяти. Каждому
процессу выделяется собственное “ личное” (private ) изолированное адресное
пространство , размер которого составляет 4 Гбайт. Это пространство разбива-ется на регионы , немного отличные для Windows 95 и Windows NT. Общим для
обеих систем является то , что нижние 2 Гбайт этого пространства отведены
процессу для свободного использования, а верхние 2 Гбайт зарезервированы
для использования операционной системой .
Регионы в адресном пространстве процесса Windows 95
Регионы в адресном пространстве процесса Windows NT
Windows NT лучше защищена от процессов пользователя , чем
Windows 95. Это обуславливает большую устойчивость ОС к ошибкам в при -кладной программе .
Пример. Программа пытается обнулить страницу за страницей в систем -ной области ( старший гигабайт адресного пространства ). Отметим , что опера-ция может завершиться неудачей по двум причинам: отсутствие реальной стра -ницы по указанному адресу либо нарушение прав доступа к существующей
странице .
void main()
{
DWORD SysAreaAddress = 0xC0000000; // начало старшего гигабайта
while (1) {
ZeroMemory ( (LPVOID)SystemAreaAddress, 0x1000); // запись
SysAreaAddress += 0x1000; // переход к следующей странице (4K)
}
}
Под Win 9x, где защита системной области памяти не предусмотрена, вы-полнение программы приводит к краху системы , так как жизненно важное со -держимое будет уничтожено. Windows NT такую защиту имеет, поэтому гене -рирует исключение и снимает программу как неправильную или вредоносную .
( В качестве самостоятельного упражнения предлагается модифицировать про -грамму таким образом, чтобы вместо аварийного завершения выводилось со -общение о возникшем исключении.)
Примечание. Помимо прочего, этот пример наглядно демонстрирует осо-бенность " плоского " виртуального адресного пространства : произвольное 32-разрядное число может использоваться в качестве á дреса.
Управление виртуальной памятью осуществляет Virtual Memory Manager
( VMM), являющийся неотъемлемой частью ядра операционной системы .
Организация памяти в Win32 страничная , размер страниц для платформ
Intel и MIPS составляет 4 K байт , для DEC Alpha – 8 K байт . Win32 использует
двухступенчатую схему страничного преобразования , поддерживаемую про -цессорами i386, 486 и Pentium, дополнительные схемы , поддерживаемые
Pentium Pro, не используются .
Организацией свопинга занимается VMM. При генерации системы на
диске образуется специальный файл свопинга , куда записываются те страницы,
которым не находится места в физической памяти. Процессы могут захватывать
память в своем 32- битном адресном пространстве и , затем, использовать ее .
При обращении потока к ячейке памяти могут возникнуть три различные си -туации :
– страница существует и находится в памяти;
– страница существует и выгружена на диск ;
– страница не существует .
Выделение памяти процессу означает выделение ее в файле подкачки .
Запуск на исполнение EXE- модуля происходит следующим образом.
EXE-файл проецируется на память . При этом он не переписывается в файл под -качки. Просто элементы каталога и таблиц страниц настраиваются так, чтобы
они указывали на EXE- файл, лежащий на диске. Затем передается управление
на точку входа программы . При этом возникает исключение, обрабатывая кото -рое стандартным образом, VMM загружает в память требуемую страницу и
программа начинает исполняться. Такой механизм существенно ускоряет про -цедуру запуска программ, так как загрузка страниц EXE- модуля происходит по
мере необходимости . Образно говоря , программа сначала начинает исполнять-ся , а потом загружается в память . Если программа записана на дискете, то она
перед началом исполнения переписывается в файл подкачки .
Для управления памятью прикладным программам предоставляются раз-личные интерфейсы ( API). Функции API могут быть разбиты на следующие ос -новные группы.
1) Virtual Memory API – набор функций , позволяющих приложению рабо -тать с виртуальным адресным пространством: назначать физические страницы
блоку адресов и освобождать их, устанавливать атрибуты защиты.
2) Memory Mapped File API – набор функций , позволяющий работать с
файлами , отображаемыми в память . Новый механизм, предоставляемый Win32
API для работы с файлами и взаимодействия процессов. Подробно рассматри-вается в подразд. 4.5.
3) Heap Memory API – набор функций , позволяющих работать с динами-чески распределяемыми областями памяти ( кучами). Подробно рассматривается
в подразд. 4.6.
4) Local, Global Memory API – набор функций работы с памятью , совмес -тимых с 16- битной Windows. Следует избегать их использования.
5) CRT Memory API – функции стандартной библиотеки периода исполне-ния ( runtime). 36. Динамическое распределения памяти программами (heap). Heap API Win32 (35)