
- •Системное по. Цели, задачи, классификация
- •Операционная система. Основные функции ос. Структура операционной системы.
- •Общая характеристика операционных систем Microsoft: семейства dos, Windows
- •Интерфейс прикладных программ (api). Apidos (программные прерывания) и Win32
- •Дисковая подсистема в архитектуре ibmpc
- •Низкоуровневая организация дисковой памяти. Сервис bios доступа к дисковой подсистеме.
- •Понятие файловой системы. Назначение, требования, функции. Способы организации фс.
- •Объекты файловой системы: файлы, директории, логические устройства, другие виды объектов.
- •Файловые системы на основе fat
- •X.2 Файловая система ntfs
- •Служебные структуры fat и их использование
- •Программный интерфейс файловой системы (функции для взаимодействия с фс, файлового ввода-вывода) – dos, Windows Функции общего назначения
- •Файловый ввод-вывод
- •14. Адресное пространство процесса (задачи).
- •15. Приложения Windows (Win 32), разновидности. Структура оконных приложений
- •1. Основные определения
- •2. Особенности приложений Win 32.
- •3. Событийное управление
- •4. Структура приложения
- •16. Окно Win32: назначение, виды, свойства. Оконные классы.
- •17. Создание и управление окнами.
- •18. Событийное управление в Win32. Сообщения и очереди сообщений Windows (Windowsmessages): назначение, структура, отсылка, доставка, обработка Сообщения и очереди сообщений.
- •19. Цикл обработки сообщений. Оконная процедура: назначение, выполнение, способы активизации и завершения.
- •20. Многозадачность, многозадачные операционные системы, особенности выполнения приложений в многозадачной среде. Модель многозадачности Win 32
- •21. Состояния процессов (многозадачная среда). Состояния процессов (потоков)
- •22. Многозадачность в win32. Планирование и выполнения программ в win32
- •23. Процессы win32. Атрибуты и состояния процессов. Порождение процессов и управление ими. Основы управления процессами Win32
- •24. Потоки и многопоточные приложения. Порождение потоков, состояние потоков, управление ими. Основы управления потоками Win32
- •25. Нити – альтернативное управление выполнением программы Управление нитями
- •26. Распределение времени выполнения программ в многозадачной системе. Приоритеты. Распределение времени между потоками (управление приоритетами)
- •27. Приоритеты процессов и потоков win32. Управление приоритетами.
- •28. Взаимодействие процессов/потоков, взаимное исключение, синхронизация (базовые сведения)
- •29. Реализация взаимного исключения. Механизм criticalsection.
- •30. Синхронизация при управлении процессами и потоками
- •31. Функция ожидания
- •32. Использование каналов и почтовых ящиков для обмена данными
- •33. Использование файловой системы для обмена данными
- •X.2.6. Использование сообщения wm_copydata
- •34. Графическая подсистема win32 – общая характеристика, основные принципы.
- •35. Основные объекты win32 gdi. Средства векторной и растровой графики
- •Растровая графика
- •36. Подсистема памяти. Основные задачи, функции, требования
- •37. Виртуальное адресное пространство, управление памятью.
- •38. Динамическое распределение памяти программами (heap). HeapApiWin32.
- •Функции работы с кучами (heap-область)
- •39. Подсистема памяти win32. Регионы(области) памяти. Группы функций api подсистемы памяти. Адресное пространство процесса.
- •40. Управление на уровне менеджера вирнуальной памяти. (vmm)
- •41. Отображение файлов в память Проецирование файлов в память
- •42. Системный реестр windows: назначение, организация, доступ
42. Системный реестр windows: назначение, организация, доступ
Реестр (Registry) — специальная системная база данных, в которой приложения и операционная система могут сохранять информацию о конфигурации.
Системный реестр служит для осуществления ряда функций:
– хранение конфигураций оборудования и об устройствах «Plug-and-Play»;
– хранение списка драйверов и их параметров;
– описания программных интерфейсов (например, интерфейсы COM-серверов);
– таблица ассоциаций файлов данных;
– хранение конфигурации и значений параметров программ;
– обслуживание различных административных программ, например, панель управления (Control Panel).
Реестр имеет иерархическую древовидную структуру. Узлы дерева называются ключами (key). Каждый ключ может содержать любое количество подключей (sub-key) и значений (values), причем и те, и другие организованы в виде неупорядоченных списков, элементам которых присвоены индексы начиная с нуля. Различие между ключами и подключами в действительности условно, фактически все ключи являются подключами различного уровня нескольких предопределенных ключей (см. ниже). Значения ключей могут быть строковыми, двоичными и числовыми; также ключ может быть ссылкой на другой ключ (см. ниже). Каждый ключ идентифицируется его именем, уникальным относительно вышестоящего ключа, открытые ключи идентифицируются описателем (номером), тип HKEY (Handle). Значения идентифицируются также именами и индексами в списке.
Данные в системном реестре хранятся в двоичном виде. Для работы с ними приложения должны использовать специальные системные функции. Различают hive (букв. «улей») ключей, то есть их двоичный образ в структурах в памяти, называемых собственно реестром, и файлы данных реестра.
Для работы с ключом приложение должно открыть его. При открытии ключа необходимо указать открытый ранее ключ в качестве вышестоящего. Система всегда предоставляет четыре предопределенных (predefined) ключа верхнего уровня, которые считаются открытыми всегда и могут использоваться как точки входа в реестр: HKEY_LOCAL_MACHINE — описание известных на этот момент конфигураций компьютера; HKEY_CLASSES_ROOT — описание текущей конфигурации машины, ссылка на одну из конфигураций HKEY_LOCAL_MACHINE); HKEY_USERS — описание всех имеющихся пользователей; HKEY_CURRENT_USER — описание текущего пользователя, ссылка на одного из пользователей HKEY_USERS; HKEY_CURRENT_CONFIG — текущий подключ Config (ссылка) ключа HKEY_LOCAL_MACHINE;
Система предоставляет ряд функций для доступа к реестру. Ниже перечислены некоторые из них.
RegCreateKey(), RegCreateKeyEx() — создание нового или открытие существующего ключа в реестре; создаваемый или открываемый ключ обязательно должен быть подключом уже открытого ключа.
RegOpenKey(), RegOpenKeyEx() — только открытие существующего ключа, в остальном аналогичны предыдущим.
RegCloseKey() — закрытие открытого ключа.
RegDeleteKey() — удаление ключа.
RegFlushKey() — выгрузка содержимого ключа в соответствующий файл реестра.
RegSaveKey(), RegLoadKey() — выгрузка содержимого ключа в отдельный файл и загрузка из него.
RegEnumKey(), RegEnumKeyEx() — получение (чтение) списка подключей.
RegEnumValue() — получение (чтение) списка значений.
RegQueryValue(), RegQueryValueEx() — чтение значения по его имени.
RegQueryMultipleValues() — чтение списка значений.
Ввиду относительной сложности и громоздкости обращений к реестру можно реализовать собственные «оберточные» функции для доступа по именам и «путям» реестре, аналогично работе с файловой системой.
На пользовательском уровне для работы с реестром служит утилита regedit, поддерживающая как интерактивный, так и командный (выполнение пакетных файлов) режимы.