
- •Системное по. Цели, задачи, классификация
- •Операционная система. Основные функции ос. Структура операционной системы.
- •Общая характеристика операционных систем 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: назначение, организация, доступ
Интерфейс прикладных программ (api). Apidos (программные прерывания) и Win32
Интерфейс прикладного программирования (иногда интерфейс программирования приложений) (англ. applicationprogramminginterface, API [эй-пи-ай])[1] — набор готовых классов, процедур функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.
Прерывания в DOS – механизм оперативного реагирования на происходящие события. Являются средством выхода за рамки однозадачного режима и унифицированным интерфейсом между программами. Типы прерываний:
– внешние аппаратные (маскируемые и немаскируемые) – от аппаратных узлов ЭВМ, действительно прерывают нормальное выполнение программ;
– исключительные ситуации ЦП – возникают вследствие выполнения тех или иных инструкций;
– программные – активизируются программами в произвольные моменты инструкциями int, служат межпроцессного взаимодействия.
Аппаратная поддержка системы прерываний – см. описание аппаратных ресурсов. К этому этапу относится все, что происходит вне контроля прикладной программы.
Независимо от источника прерывания, его обработка в архитектуре x86 выполняется программно и базируется на таблице векторов прерываний.
Обработчик прерывания – программа (подпрограмма), ассоциированная с данным прерыванием и получающая управление при его возникновении. Как правило, резиденты включают один или более обработчиков. Ряд обработчиков принадлежат ОС или BIOS, их также можно считать резидентными. Кроме того, собственные обработчики могут определять обычные (транзитные) программы. С одним прерыванием может быть ассоциировано более одного обработчика, образуя цепочку (каскад) (см. ниже).
Вектором прерывания принято называть полный (сегмент/смещение) адрес точки входа обработчика, в данный момент сопоставленного прерыванию, и обозначать его номером этого прерывания. Текущие установки векторов (256 адресов, суммарно 1 Кбайт) содержатся в специальной таблице, расположенной по нулевому физическому адресу. Таблица хранит только адреса "верхних" в цепочке обработчиков. Действие аппаратных средств поддержки системы прерываний заканчивается выборкой из таблицы одного из адресов и передача ему управления.
Примечание. Некоторые вектора реально не являются адресами обработчиков.
Резиденты и обработчики прерываний представляют собой выход за рамки однозадачности DOS, что отличает их от большинства приложений этой ОС
Дисковая подсистема в архитектуре ibmpc
Логическая структура дисковых устройств в архитектуре IBMPC, унифицированная для всех операционных систем, предназначенных для этой архитектуры, предусматривает представление устройства как совокупности одного или более логических разделов (partitions).
В физически первом секторе диска (первый сектор нулевой поверхности нулевого цилиндра) находятся главная загрузочная запись (MasterBootRecord – MBR) и таблица разделов (PartitionTable). Таблица разделов начинается со смещения в секторе 1BEh и содержит до 4 записей по 16 байт, каждая из которых описывает один раздел (формат см. ниже). Один из разделов может быть определен как активный, т.е. используемый как загрузочный для операционной системы. MBR представляет собой программу, которая занимает первые 446 сектора (обычно намного меньше) и выполняет поиск активного раздела, считывание его загрузочной записи и передачу ей управления (предваряется также необходимыми подготовительными действиями). На данном этапе управление целиком принадлежит MBR, алгоритм действий которого в общем случае может сильно отличаться от "типового". Однако MBR ряда операционных систем ПЭВМ в той или иной степени взаимозаменяемы.
Раздел должен включать обязательно целое число цилиндров. Обычно границы разделов выравниваются по целым цилиндрам, однако это не обязательно.
Т.к. 4 разделов таблицы недостаточно, а также из-за ограничений на размер раздела было введено понятие расширенного раздела (extendedpartition). Такой раздел содержит в начале сектор, аналогичный первому сектору диска и содержащий пустой MBR и действительную таблицу разделов, описывающую разделы, принадлежащие уже этому extendedpartition. Среди этих разделов может быть следующий расширенный, и т.д. Таблица разделов может содержать не более 1 расширенного раздела.
Примечание. В русской терминологии "разделом" принято называть и раздел, целиком занимающий всю область, описываемую одним "partition", и часть расширенного "partition". В первом случае употребляется также термин "первичный раздел" или "первичный partition", во втором – просто "логический раздел" или "логический диск". Сложившийся перевод термина "primary" как "первичный" иногда признается неудачным: некоторые источники предлагают вариант "простой" – в противоположность "расширенному".