- •Классификация системного программного обеспечения
- •Другая классификация
- •Требования к системному программному обеспечению
- •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: назначение, организация, доступ.
Сравнительная характеристика механизмов взаимодействия
Свойства различных механизмов, предлагаемых ОС для решения задач взаимодействия процессов и потоков, удобно представить в виде таблицы. Т.к. речь идет в первую очередь о реальных механизмах, предусмотренных в Win 32, то все остальные рассматриваются также со стороны Win 32, хотя многие из них, например, сокетов BSD, значительно старше по происхождению и "глобальнее" по значимости.
Таблица хх.
Сравнение механизмов взаимодействия
Механизм |
Переносимость |
Глобальность |
Функциональность |
Производительность, экономичность |
Использование файловой системы |
Унификация, поддержка системой |
|
Теоретические |
|||||||
Глобальные переменные Деккера |
да |
нутрипроцессный (межпроцессный) |
синхронизация, обмен данными (ограниченно) |
высокая |
нет |
поддержка ОС желательна |
|
Семафоры Дейкстры |
да |
межпроцессный |
синхронизация |
высокая |
нет |
да |
|
Монитор Хоара |
частично |
межпроцессный |
различные функции |
интерфейс вызовов |
нет |
да |
|
Рандеву Хоара/Хансена |
ограниченно |
межпроцессный |
синхронизация, обмен данными, передача управления |
|
нет |
да |
|
Схема "клиент-сервер" |
Да |
межпроцессный (межсистемный) |
синхронизация, обмен данными, передача управления |
|
нет (но может использовать для идентификации) |
да |
|
Реальные |
|||||||
Глобальные флаги (переменные) |
да (т.к. не требуют поддержки ОС) |
внутрипроцессный |
синхронизация, обмен данными |
|
нет |
нет |
|
"Блокированные" вызовы |
ограниченно |
внутрипроцессный (межпроцессный) |
синхронизация, обмен данными |
высокая |
нет |
да, но ограниченная |
|
Объект "критическая секция" |
ограниченно |
внутрипроцессный |
синхронизация |
высокая |
нет |
да |
|
Функции ожидания, объекты ISO |
да, но имеют большие различия |
межпроцессный |
синхронизация |
высокая |
нет |
да |
|
Сигналы |
да, но имеют большие различия |
межпроцессный |
синхронизация, передача управления |
высокая |
нет |
да |
|
Сообщения Windows |
нет |
межпроцессный |
синхронизация, передача управления, обмен данными (ограниченно) |
высокая |
нет |
да |
|
Глобальные данные DLL |
ограниченно (могут быть аналоги) |
межпроцессный
|
синхронизация, обмен данными |
высокая |
ограниченно (идентификация DLL) |
нет или недостаточная |
|
Объекты "блок памяти" |
да (имеют различия) |
межпроцессный |
обмен данными |
высокая |
нет |
да |
|
Буфер обмена |
ограниченно |
межпроцессный |
обмен данными, в т.ч. с синхронизацией (ожидание) |
высокая |
нет (неявно) |
да, но ограниченная |
|
Отображение файлов |
ограниченно |
межпроцессный |
обмен данными (автоматическая поддержка когерентности) |
достаточно высокая |
да (можно использовать и безымянный файл подкачки) |
да |
|
DDE, OLE, COM, ActiveX |
нет (могут присутствовать аналоги) |
сложные специализированные механизмы, плохо поддающиеся формальной характеристике |
да |
||||
Неименованные каналы |
да |
межпроцессный (ограниченно) |
обмен данными, в т.ч. с синхронизацией (ожидание) |
ограничено файловой системой и буферизацией |
нет (неявно) |
да |
|
Именованные каналы, "почтовые ящики" |
ограниченно |
межсистемный |
обмен данными, в т.ч. с синхронизацией (ожидание) |
ограничено файловой системой и буферизацией |
да, в т.ч. сетевая |
да |
|
Сокеты, NetBIOS и др. сетевые интерфейсы |
да |
межсистемный и межплатформенный |
синхронизация, обмен данными |
зависит от параметров среды взаимодействия |
нет либо частично (пространство имен) |
да |
|
RPC, MSMQ |
да (RPC), нет (MSMQ) |
межсистемный, RPC также и межплатформенный |
синхронизация, обмен данными, передача управления |
интерфейс вызовов, зависит от параметров среды взаимодействия |
нет |
да |
Примечание 1. Под "переносимостью" здесь понимается наличие либо отсутствие поддержки данного средства на различных платформах. "Ограниченная переносимость" – имеется в виду принципиальное существование аналогичного средства, но перенос программ без их изменение невозможен (например, особенности реализации, формат системных вызовов и т.д.). Для "теоретических" механизмов – вообще распространенность конкретного механизма или возможность реализовать его на различных платформах.
Примечание 2. Под "глобальностью" здесь понимается возможность использования механизма при взаимодействии субъектов на различных уровнях: внутри процесса (между потоками/нитями), между процессами в одной системе (на одной ЭВМ), между системами, но под единой ОС, между различными платформами. Для теоретических механизмов различие межсистемного и межплатформенного взаимодействия несущественно. В ряде случаев "повышение глобальности" механизма возможно при использовании дополнительных средств, например, глобальная переменная процесса может быть сделана доступной также и другим процессам.
Примечание 3. В общем, тут еще примечать и примечать, потому что многое формально описать не удается. Но это уже позже.