- •Задачи и интерфейсы Unix-подобных систем.
- •2.Структура ядра ос Linux.
- •3. Процессы в ос Linux. Общие понятия.
- •4. Процессы в ос Linux. Этапы создания процесса.
- •5. Взаимодействие процессов в ос Linux.
- •6. Реализация потоков в ос Linux.
- •7. Планирование в ос Linux.
- •8.Загрузка в ос Linux
- •13.Подкачка в ос Linux.
- •14.Алгоритм замещения страниц в ос Linux.
- •15.Ввод-вывод в ос Linux. Общие понятия.
- •17. Файловые системы в ос Linux. Общие понятия.
- •18. Файловые системы в ос Linux. Файловая система Ext2.
- •19. Файловые системы в ос Linux. Файловая система Ext3.
- •20. Файловые системы в ос Linux. Файловая система nfs.
- •21.Архитектура ос windows nt/2000/xp
- •22. Архитектура ос windows vista
- •23.Структура пользовательского режима. Программный интерфейс Win32 api.
- •24.Реестр ос Windows Vista.
- •25. Реализация объектов в oc windows Vista. Структура объектов.
- •26. Реализация объектов в oc windows Vista. Типы объектов.
- •27. Реализация объектов в oc windows Vista. Пространство имён.
- •Структура пространства имен
- •28. Задания, процессы, потоки, волокна в oc windows Vista.
- •29. Межпроцессное взаимодействие в oc windows Vista.
- •30. Реализация процессов и потоков в oc windows Vista.
- •31. Планирование в oc windows Vista. Условия вызова планировщика.
- •32. Планирование в oc windows Vista. Система приоритетов.
- •33. Планирование в oc windows Vista. Условия изменения приоритетов.
- •34. Технология dll. Структура dll-библиотеки. Наиболее важные dll-библиотеки.
- •35. Технология dll. Преимущества и недостатки dll. Win32 и dll
- •38. Конфигурация виртуального адресного пространства для пользовательского
- •39. Реализация, поддержка, особенности виртуальной памяти в oc windows Vista.
- •40. Реализация управления памятью в oc windows Vista. Обработка страничных
- •41. Алгоритм замещения страниц в oc windows Vista.
- •42. Управление физической памятью в oc windows Vista.
- •44. Файловая система fat. Загрузочный сектор.
- •45. Файловая система fat. Таблица размещения файлов.
- •46. Файловая система ntfs. Структура тома.
- •47. Файловая система ntfs. Структура главной файловой таблицы mft
- •48. Файловая система ntfs. Файловая запись mft для малого и большого файла.
- •49. Файловая система ntfs. Файловая запись mfTдля малого и большого каталога.
- •50. Файловая система ntfs. Файлы метаданных.
34. Технология dll. Структура dll-библиотеки. Наиболее важные dll-библиотеки.
DLL-библиотека состоит из нескольких специфических функций и произвольного набора функций, выполняющих ту работу, для которой разрабатывалась данная библиотека. DLL-библиотека может иметь (а может не иметь) сегмент данных и ресурсы.
В заголовке загрузочного модуля DLL-библиотеки описаны экспортируемые точки входа, соответствующие всем или некоторым определенным в ней функциям. Приложения могут вызывать только те функции DLL-библиотеки, которые экспортируются ею.
Состав DLL-библиотеки: До тех пор, пока ни одно приложение не затребовало функции из DLL-библиотеки, сама библиотека находится в файле на диске. В оперативной памяти ее нет. Однако, как только приложение затребует функцию из DLL-библиотеки или загрузит библиотеку явным образом, начнется процесс инициализации библиотеки. Этот процесс выполняется только один раз, так как в памяти может находится только одна копия DLL-библиотеки.
В процессе инициализации после загрузки библиотеки в память Windows вызывает функцию LibEntry, которая должна быть определена в каждой DLL-библиотеке. Можно считать, что функция LibEntry является точкой входа библиотеки, получающей управление при загрузке библиотеки в память. Задачей функции LibEntry является инициализация локальной области памяти, если она определена для DLL-библиотеки.
Функцию LibEntry не надо определять самостоятельно, так как при создании файла DLL-библиотеки редактор связей включит уже имеющийся в стандартной библиотеке модуль. Этот стандартный модуль выполняет всю необходимую работу по инициализации и затем вызывает функцию LibMain. Для нестандартной инициализации функцию LibEntry нужно разрабатывать самостоятельно.
35. Технология dll. Преимущества и недостатки dll. Win32 и dll
Динамические библиотеки DLL.
Одним из способов написания программ является описание всех возможных функций в тексте программы. В разных программах список функций может быть одинаковый, тем самым увеличивая повторяемость кода. Такой способ представляет собой статическую компоновку, однако в системе Windows существует другая технология, которая называется DLL (Dynamic Link Library). Суть заключается в следующем: часто повторяющиеся функции, вызовы переносятся в отдельный файл с расширением *.dll и далее данный файл загружается в оперативную память для того, чтобы использовать необходимые функции. Важной особенностью при создании DLL является подбор определённых функций, которые выносятся в DLL-файл. Работа программ в режиме пользователя тесно связана с взаимодействием интерфейсов WiinAPI и технологии DLL (можно сказать, что WinAPI построен на DLL). При этом некоторая работа мжет быть выполнена в режиме пользователя (особенности работы WinAPI, волокна). В DLL-библиотеках сосредоточены сами вызовы WinAPI.
38. Конфигурация виртуального адресного пространства для пользовательского
процесса в OC WINDOWS Vista.
Все пользовательские процессы в ОС Vista имеют своё виртуальное адресное пространство. Для 32-битной системы размер виртуального адресного пространства равен 4 гигабайтам. Два, из которых, отводятся для пользовательского режима, остальные два – для режима ядра. Для 64-битных систем виртуальные адреса могут быть как 32-битные (используются для совместимости) так и 64-битные. Также в таких системах 32-битные процессы могут получить 4 гигабайта (виртуальной) памяти.
Общая структура виртуального пространства 32-битной системы
Первые и последние 64 Кбайт виртуального адресного пространства не используются. Это делается для того, чтобы было проще отлавливать системные ошибки. Над 64 Кбайтами начинается область приватных данных и программ пользовательского процесса (данная область простирается до 2 Гбайт и является разной для разных процессов). Верхние 2 Гбайта – виртуальная память ядра. Она используется совместно всеми процессами, кроме таблиц страниц. Каждая виртуальная страница может находиться в одном из трёх состояний:
Недействительная страница (ссылка на такую страницу приводит к страничному прерыванию и нарушению доступа, т.е. такой страницы еще нет, она еще не загружена).
Зафиксированная страница (данное состояние возникает после того как на неё отображаются код или данные).
Зарезервированная страница (эта недействительная страница, но эти страница никогда не будут назначаться диспетчером памяти для других целей. Это используется для предотвращения излишнего роста из стека страниц).
Для поддержки виртуальной памяти используется механизм подкачки. Соответственно место на жестком диске - файл подкачки.
Windows использует следующую стратегию для выделения дискового пространства под страницы: зафиксированным страницам не выделяется место в файле подкачки до того момента когда их необходимо вытеснить в файл подкачки. Для тех страниц, которые никогда не вытесняются, дисковое пространство не выделяется.
Если суммарная виртуальная память меньше чем имеющаяся физическая, то файл подкачки не используется.
Для повышения производительности системы во время подкачки используются следующие механизмы:
страницы, которые подлежат вытеснению, группируются и затем сбрасываются на жёсткий диск большими частями за одну операцию ввода\вывода, при этом в файле подкачки выделяется сплошная часть дисковой памяти (Windows может поддерживать до 16 файлов подкачки, которые распределены по нескольким дискам, они имеют минимальный и максимальный размер); размер страницы чаще всего равен 4 Кбайта, однако в некоторых случаях 4 Мбайта;
