Содержание
- 2. Введение в операционные системы Основные определения
- 3. Определение ОС Операционная система (ОС) – комплекс системных программ, обеспечивающий оптимальное управление ресурсами вычислительной системы в
- 4. Уровни ВС Уровень прикладных программ Утилиты Операционная система Аппаратное обеспечение
- 5. Основная функция ОС Основной функцией ОС является управление аппаратными ресурсами ВС и включает решение следующих, не
- 6. Основные ресурсы ВС Процессорное время (процессор) Адресное пространство (оперативная память) Файлы (накопители данных) Внешние устройства ввода/вывода
- 7. Дополнительная функция ОС Кроме основной функции управления ресурсами ВС, от ОС зачастую требуется решение еще одной
- 8. Мультипрограммирование: процессы и потоки Мультипрограммирование, метод одновременно выполнения на одной ЭВМ нескольких программ, относящихся к различным
- 9. Мультипрограммирование: процессы и потоки Мультипрограммирование, метод одновременно выполнения на одной ЭВМ нескольких программ, относящихся к различным
- 10. Введение в операционные системы Классификация ОС
- 11. Признаки классификации ОС могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера, особенностями использованных методов
- 12. Классификация ОС Особенности алгоритмов управления ресурсами
- 13. Поддержка многозадачности По числу одновременно выполняемых задач ОС могут быть разделены на два класса: однозадачные (например,
- 14. Поддержка многопользовательского режима По числу одновременно работающих пользователей ОС делятся на: однопользовательские (MS-DOS, Windows 3.x); многопользовательские
- 15. Вытесняющая и не вытесняющая многозадачность Способ распределения процессорного времени между несколькими одновременно существующими в системе задачами
- 16. Вытесняющая и не вытесняющая многозадачность При невытесняющей многозадачности активный процесс (поток) выполняется до тех пор, пока
- 17. Классификация дисциплин обслуживания
- 18. Классификация дисциплин обслуживания Бесприоритетные ДО – выбор из очереди производится без учета относительной важности задач и
- 19. Поддержка многопоточности Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одного процесса. Многопоточная ОС
- 20. Многопроцессорная обработка Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки.
- 21. Виды мультипроцессирования
- 22. Особенности алгоритмов управления ресурсами Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов
- 23. Классификация ОС Особенности областей использования
- 24. Типы многозадачных ОС Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке
- 25. Другие системы Некоторые операционные системы могут совмещать в себе свойства систем разных типов, например, часть задач
- 26. Операционные системы Структурная организация операционных систем
- 27. Монолитная структура Наиболее простым и распространенным способом построения ОС является монолитное ядро, которое компонуется как одна
- 28. Многоуровневая структура Развитием монолитного подхода является многоуровневый, когда ОС реализуется как иерархии уровней. Уровни образуются группами
- 29. Микроядерная структура Альтернативой является построение ОС на базе модели клиент-сервер и тесно связанной с ней концепции
- 30. Объектно-ориентированный подход Развитием технологии расширяемых модульных систем является объектно-ориентированный подход, при котором каждый программный компонент ОС
- 31. ООП: достоинства и недостатки Построение ОС на базе объектно-ориентированного подхода имеет следующие достоинства: аккумуляция удачных решений
- 32. Сетевые службы и сервисы сетевые службы глубоко встроены в ОС; сетевые службы объединены в виде некоторого
- 33. Операционные системы Эволюция операционных систем
- 34. Этапы эволюции 1 этап (1940-60) системный монитор, ранние пакетные системы 2 этап (1965-75) мультипрограммирование, пакетные ОС
- 35. 1 этап (1940-60) Середина 40-х XX-века – первые ламповые вычислительные устройства. ОС еще не появились, все
- 36. 2 этап (1965-75) 1965-1975 годы переход к интегральным микросхемам, новое поколение ЭВМ – IBM/360, многопроцессорная ЭВМ
- 37. 2 этап – многотерминальные системы Многотерминальный режим использовался не только в системах разделения времени, но и
- 38. 3 этап (1970-80) Начало 70-х годов – первые сетевые ОС, которые в отличие от многотерминальных ОС
- 39. 4 этап (1980-90) Постоянное развитие версий ОС UNIX для ЭВМ различных архитектур. Начало 80-х годов –
- 40. 5 этап (1990 – …) 90-е годы – практически все ОС стали сетевыми. Сетевые функции встраиваются
- 41. Операционные системы Архитектура Windows NT-2000
- 42. Архитектура Windows NT-2000 Основная характеристика ОС Windows NT-2000
- 43. Основная характеристика Windows NT-2000 Система Windows NT-2003 не является дальнейшим развитием ранее существовавших продуктов. Ее архитектура
- 44. Семейство Windows 2000 Windows 2000 Professional До 2-х ЦПУ, 4 ГБ ОЗУ Windows 2000 Server До
- 45. Архитектура Windows NT-2000 Архитектура ОС Windows NT-2000
- 46. Упрощенная архитектура Windows 2000
- 47. Режим ядра исполняющая система NT, которая включает управление памятью, процессами, потоками, безопасностью, вводом/выводом, межпроцессорными обменами; ядро
- 48. Пользовательский режим Специальные процессы поддержки системы, например, процесс регистрации пользователя и менеджер сессий, которые не являются
- 49. Подробная архитектура Windows 2000
- 50. Исполняющая система Менеджер процессов и потоков управляет процессами и потоками. Фактически потоки и процессы поддерживаются в
- 51. Ядро (микроядро) Windows NT Ядро (Microkernel) является основой модульного строения ОС и координирует выполнение большинства базовых
- 52. Архитектура Windows NT-2000 Объекты Windows NT-2000
- 53. Понятие объекта В ОС Windows NT-2000 объект – это отдельный экземпляр периода выполнения (runtime instance) статически
- 54. Назначение объектов Объекты очень удобны для поддержки четырех важных функций ОС: присвоения понятных имен системным ресурсам;
- 55. Типы объектов Windows 2000 Объекты исполнительной системы (executive object) представляются различными компонентами исполнительной системы. Они доступны
- 56. Структура объектов Windows 2000
- 57. Структура объектов Windows 2000
- 58. Примеры объектов Файл Регион памяти Поток Процесс Семафор Таймер
- 59. Защита объектов ОС Windows 2000 поддерживает два вида контроля доступа к объектам: управление избирательным доступом (discretionary
- 60. Отношения между маркером доступа и атрибутами безопасности объекта
- 61. Операционные системы Введение в файловые системы
- 62. Определение ФС Файловая система – это часть ОС, назначение которой состоит в том, чтобы обеспечить пользователю
- 63. Понятие ФС В широком смысле понятие “ФС” включает: совокупность всех файлов на диске, наборы структур данных,
- 64. Типы файлов Файлы бывают разных типов: обычные файлы: текстовые; двоичные; специальные файлы; файлы-каталоги.
- 65. Атрибуты файлов информация о разрешенном доступе; пароль для доступа к файлу; владелец файла; создатель файла; флаги
- 66. Структура каталогов структура записи каталога ОС UNIX структура записи каталога MS-DOS (32 байта)
- 67. Логическая организация ФС - одноуровневая - иерархическая (дерево) - иерархическая (сеть)
- 68. Логическая организация файла
- 69. Физическая организация файла Физическая организация файла описывает правила расположения файла на устройстве внешней памяти (например, диске).
- 70. Способы физической организации непрерывное размещение связанный список индексов связанный список блоков перечень номеров блоков
- 71. Права доступа к файлу создание файла уничтожение файла открытие файла закрытие файла чтение файла запись в
- 72. Матрица прав доступа На пересечении строк и столбцов указываются разрешенные операции Строки соответствуют всем пользователям Столбцы
- 73. Кэширование диска Перехват запросов к внешним блочным ЗУ, промежуточным программным слоем – подсистемой буферизации (ПБ). ПБ
- 74. Кэширование диска – запись сквозная отложенная
- 75. Общая модель ФС
- 76. Файловые системы Работа с файлами в Windows API
- 77. Работа с томами Для выяснения того, какие логические диски существуют в системе, используется функция DWORD GetLogicalDrives(
- 78. Работа с томами Для определения типа диска предназначена функция UINT GetDriveType( LPTSTR lpszRootPathName ) В качестве
- 79. Работа с томами Для получения подробной информации о носителе используется функция GetVolumeInformation. Она заполняет параметры информацией
- 80. Работа с каталогами и файлами
- 81. Синхронная работа с файлами HANDLE CreateFile ( LPCTSTR lpFileName, // pointer to name of the file
- 82. Асинхронная работа с файлами BOOL ReadFile( HANDLE hFile, // handle of file to read LPVOID lpBuffer,
- 83. Файловые системы Файловые системы фирмы Microsoft
- 84. Кластеры В ОС Microsoft Windows основной единицей хранения информации является кластер – группа смежных секторов. Число
- 85. Фрагментация и дефрагментация Файл, который занимает на диске более одного непрерывного участка, называется фрагментированным. Фрагментация диска
- 86. Физические и логические диски Основные причины разбиения физического диска на несколько логических: ограничения файловых систем на
- 87. Файловые системы Файловая система FAT для MS DOS
- 88. Таблица разделов логического диска Стартовый сектор Системный логический диск Логический диск Логический диск … Первичный раздел
- 89. Структура логического диска FAT Загрузочная запись (первый сектор диска) – служит для загрузки ОС и организация
- 90. Элемент каталога FAT16
- 91. Логическая организация данных
- 92. Размеры разделов и кластеров FAT16 для Windows 95-2000
- 93. Файловые системы Файловая система FAT32
- 94. Файловая система FAT32 FAT32 это развитие файловой системы FAT(VFAT, FAT16). 32-разрядная адресация кластеров – максимальное число
- 95. Элемент каталога FAT32
- 96. Пример длинного имени "The quick brown fox." THEQUI~1.FOX
- 97. Проблемы длинных имен в FAT32 Требуется больше дискового пространства Бóльшая фрагментация (на уровне каталогов)
- 98. Сравнение FAT16 и FAT32
- 99. Файловые системы Файловая система NTFS
- 100. Краткое описание Разработана для быстрого выполнения стандартных файловых операций типа чтения, записи и поиска. Поддерживает улучшенные
- 101. Понятия и термины NTFS Структура NTFS начинается с тома (volume). Том соответствует логическому разделу на диске
- 102. Размер кластера для NTFS
- 103. NTFS и архитектура Windows 2000
- 104. Взаимодействие NTFS со связанными компонентами
- 105. Физическая структура NTFS NTFS поддерживает размеры кластеров - от 512 байт до 64 Кбайт
- 106. MFT и ее структура
- 107. Метафайлы Первые 16 файлов NTFS (метафайлы) носят служебный характер. Метафайлы находятся корневом каталоге NTFS диска -
- 108. Перечень метафайлов (1)
- 109. Перечень метафайлов (2)
- 110. Файл и его атрибуты (1)
- 111. Файл и его атрибуты (2)
- 112. Непосредственное хранение файлов Небольшие файлы и каталоги (обычно до 1500 байт или меньше), типа файла, показанного
- 113. Нерезидентное хранение файлов Запись MFT для короткого файла
- 114. Сжатие файлов
- 115. Каталоги
- 116. Двоичное дерево B+ Двоичное дерево Бинарное дерево после добавления узла 18 Бинарное дерево после удаления узла
- 117. Хранение каталога а) запись MFT для небольшого каталога б) запись MFT для каталога
- 118. Защита целостности данных NTFS является восстанавливаемой ФС и поддерживает следующие технологии защиты целостности данных: Горячая фиксация
- 119. Горячая фиксация а) MFT-запись файла с плохим кластером; б) исправленная MFT-запись файла;
- 120. Механизм транзакций Восстанавливаемость ФС в NTFS обеспечивается при помощи техники обработки транзакций, называемой протоколированием (logging). В
- 121. Журнал транзакций (а) Сервис журнала транзакций (б) Журнал транзакций 1. Протоколирование транзакции 5. Вызов диспетчера ВП
- 122. Записи модификации установка файловой информации переименование файла изменение прав доступа к файлу создание файла удаление файла
- 123. Структура записи модификации Информация для повтора (redo info) как вновь применить к тóму одну подоперацию полностью
- 124. Запись контрольной точки Периодически (5 сек.) NTFS помещает в журнал транзакций записи контрольной точки: Запись контрольной
- 125. Таблицы восстановления Таблица транзакций (transaction table) предназначена для отслеживания транзакций, которые были начаты, но еще не
- 126. Процесс восстановления При восстановлении тома NTFS загружает журнал транзакций в оперативную память и выполняет три прохода:
- 127. Безопасность в NTFS Защита файлов NTFS на объектном уровне – Security Reference Monitor определяет, имеет ли
- 128. Фрагментация файлов в NTFS NTFS полностью не предотвращает фрагментацию NTFS снижает возможность возникновения фрагментации (например, в
- 129. Файловые системы NTFS vs. FAT
- 130. Итоги
- 131. Операционные системы Основы управления памятью
- 132. Методы управления памятью
- 133. Основы управления памятью Методы распределения памяти без использования дискового пространства
- 134. Распределение памяти фиксированными разделами а - с общей очередью; б - с отдельными очередями
- 135. Распределение памяти разделами переменной величины
- 136. Перемещаемые разделы
- 137. Основы управления памятью Методы распределения памяти с использованием дискового пространства
- 138. Понятие виртуальной памяти Виртуальная память (ВП) – это совокупность программно-аппаратных средств, позволяющих использовать программы, размер которых
- 139. Физические и виртуальные адреса Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается
- 140. Страничное распределение
- 141. Страничное распределение: преобразования ВА в ФА на основании начального адреса таблицы страниц, номера виртуальной страницы и
- 142. Сегментное распределение
- 143. Странично-сегментное распределение
- 144. Алгоритмы замещения страниц (свопинга) Замещение случайной страницы FIFO (First In First Out) – замещение первой использованной
- 145. Операционные системы Архитектура памяти в Win32 API. Общие принципы
- 146. Архитектура API управления памятью
- 147. Менеджер виртуальной памяти VMM (Virtual Memory Manager) управление виртуальным адресным пространством процесса; разделение памяти между процессами;
- 148. Адресное пространство процесса Windows NT 4.0 Windows NT 4.0 Enterprise
- 149. Средства защиты памяти Отдельное адресное пространство для каждого процесса. Аппаратура запрещает процессу доступ к физическим адресам
- 150. Операционные системы Управление виртуальной памятью в Win32
- 151. Каталог страниц и свопинг Каждому процессу назначается свой каталог страниц. Именно поэтому адресное пространство каждого процесса
- 152. Страничное преобразование Элемент таблицы страниц (Page Table Element)
- 153. Элемент таблицы страниц Защита – Win32 API поддерживает три допустимых значения: PAGE_NOACCESS, PAGE_READONLY и PAGE_READWRITE. Базовый
- 154. Отдельные состояния страниц Valid – страница используется процессом. Она реально существует в ОП и помечена в
- 155. Реализация свопинга С понятием свопинга связаны три стратегии: выборка (fetch); размещение (placement); замещение (replacement).
- 156. Архитектура памяти в Win32 API Организация «статической» виртуальной памяти
- 157. Работа приложений с виртуальной памятью Блок адресов в адресном пространстве процесса может находиться в одном из
- 158. Функции API для работы виртуальной памятью VirtualAlloc VirtualFree VirtualQuery VirtualLock VirtualUnlock VirtualProtect VirtualProtectEx
- 159. Архитектура памяти в Win32 API Организация «динамической» виртуальной памяти
- 160. Кучи (heaps) Кучи (heaps) – это динамически распределяемые области данных. HANDLE GetProcessHeap( void ) – для
- 161. Создание новых куч для защиты друг от друга различных структур данных; для повышения эффективности управления памятью;
- 162. Архитектура памяти в Win32 API Файлы, проецируемые в память
- 163. Проецируемые файлы “Как и виртуальная память, проецируемые файлы позволяют резервировать регион адресного пространства и передавать ему
- 164. Применение проецируемых файлов Этот механизм имеет три применения в Win32: Для запуска исполняемых файлов (EXE) и
- 165. Запуск исполняемых файлов и DLL При исполнении функции CreateProcess система обращается к VMM для выполнения следующих
- 166. Запуск EXE-файлов и DLL-библиотек
- 167. Одновременное использование одной области данных двумя процессами
- 168. Файлы данных, проецируемые в память Проецирование файла данных в память: Создается объект ядра “файл”. Для создания
- 169. Операционные системы Управление центральным процессором и объединение ресурсов
- 170. Управление центральным процессором… Процессы и потоки
- 171. Основные понятия Задание – набор процессов, управляемых как единое целое, с общими квотами и лимитами Процесс
- 172. Процессы Процесс – это совокупность системных ресурсов, задействованная для выполнения определенной работы. Понятие "процесс" включает следующее:
- 173. Процесс и его ресурсы
- 174. Атрибуты процесса в Windows NT-2000 Идентификатор процесса – уникальное значение, которое идентифицирует процесс в рамках операционной
- 175. Нити (thread) Нить (поток) – это непрерывная последовательность инструкций, выполняющих определенную функцию. Для выполнения нити необходимы
- 176. Атрибуты нити в Windows NT-2000 Идентификатор клиента – уникальное значение, которое идентифицирует нить при ее обращении
- 177. Задание (job) в Windows 2000 В Windows 2000 в модель процессов введено новое расширение – задания
- 178. Квоты и лимиты для заданий (job) квоты (базовые и расширенные базовые ограничения): максимальное количество процессов; суммарное
- 179. Волокна (fibers) в Windows 2000 Введены в Windows 2000 для переноса существующих серверных приложений из UNIX.
- 180. Управление центральным процессором… Планирование загрузки процессорного времени
- 181. Системный планировщик в Windows NT-2000 Вытесняющая мультипоточность. Квантование времени. Приоритетный режим обслуживания: абсолютные приоритеты; динамические приоритеты.
- 182. Квантование времени Операционная система выделяет потокам кванты времени по принципу карусели
- 183. Приоритетный режим обслуживания Разработчик ПО может использовать приоритеты от 1 до 31. Нулевой приоритет зарезервирован для
- 184. Классы приоритета процессов
- 185. Относительные приоритеты потоков
- 186. Иллюстрация по приоритетам для Windows 2000 Нулевой приоритет зарезервирован для потока обнуления страниц Приоритеты 17-21 и
- 187. Динамические приоритеты В ходе выполнения нити ее приоритет (1-15) может меняться – механизм адаптивного планирования.
- 188. Принципы адаптивного планирования Если поток полностью исчерпал свой квант, то его приоритет понижается на некоторую величину.
- 189. “Голодающие” потоки Пример: Представьте, что поток с приоритетом 4 готов к выполнению, но не может получить
- 190. Алгоритм планировщика Нить освобождает процессор, если: блокируется, уходя в состояние ожидания; завершается; исчерпан квант; в очереди
- 191. Граф состояний нити для Windows 2000
- 192. Основы управления процессами API Win32 для создания и завершения процессов
- 193. Создание процесса BOOL CreateProcess ( PCTSTR pszApplicationName, // имя исполняемого файла PTSTR pszCommandLine, // командная строка
- 194. Флаги потоков DEBUG_PROCESS DEBUG_ONLY_THIS_PROCESS CREATE_SUSPENDED DETACHED_PROCESS CREATE_NEW_CONSOLE CREATE_NO_WINDOW CREATE_BREAKAWAY_FROM_JOB IDLE_PRIORITY_CLASS BELOW_NORMAL_PRIORITY_CLASS NORMAL_PRIORITY_CLASS ABOVE_NORMAL_PRIORITY_CLASS HIGH_PRIORITY_CLASS REALTIME_PRIORITY_CLASS
- 195. Завершение процесса входная функция первичного потока возвращает управление (рекомендуемый способ); один из потоков процесса вызывает функцию
- 196. Функция ExitProcess Процесс завершается, когда один из его потоков вызывает ExitProcess: VOID ExitProcess(UINT fuExitCode); Эта функция
- 197. Функция TerminateProcess Вызов функции TerminateProcess тоже завершает процесс: BOOL TerminateProcess( HANDLE hProcess, UINT fuExitCode); Параметр bProcess
- 198. Когда все потоки процесса “уходят” Обнаружив, что в процессе не исполняется ни один поток, операционная система
- 199. Управление динамическими приоритетами потоков процесса BOOL SetProcessPriorityBoost( HANDLE hProcess, // дескриптор процесса BOOL DisablePriorityBoost // состояние
- 200. Основы управления процессами API Win32 для управления потоками
- 201. Создание потока HANDLE CreateThread ( PSECURITY_ATTRIBUTES psa, SIZE_T cbStack, PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam, DWORD dwCreate, PDWORD
- 202. Установка приоритета Поток создается с приоритетом потока THREAD_PRIORITY_NORMAL. Используйте функции GetThreadPriority и SetThreadPriority, чтобы получать и
- 203. Приоритеты потоков
- 204. Завершение потока функция потока возвращает управление (рекомендуемый способ); поток самоуничтожается вызовом функции ExitThread (нежелательный способ); один
- 205. Функция ExitThread Поток можно завершить принудительно, вызвав: VOID ExitThread(DWORD dwExitCоde); В параметр dwExitCode Вы помещаете значение,
- 206. Функция TerminateThread Вызов этой функции также завершает поток: BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode); В параметр
- 207. Если завершается процесс Функции ExitProcess и TerminateProcess принудительно завершают потоки, принадлежащие завершаемому процессу.
- 208. Действия при завершении потока Освобождаются все описатели User-объектов, принадлежавших потоку. Код завершения потока меняется со STILL_ACTIVE
- 209. Управление динамическими приоритетами потока BOOL SetThreadPriorityBoost( HANDLE hThread, // дескриптор потока BOOL DisablePriorityBoost // состояние //форсирования
- 210. Управление потоками Флаг CREATE_SUSPENDED DWORD ResumeThread(HANDLE hThread); - возобновить поток DWORD SuspendThread(HANDLE hThread); - “заморозка” потока
- 211. Засыпание и переключение потоков VOID Sleep ( DWORD dwMilliseconds ); - “заморозить” себя на определенное время
- 212. Определение периодов выполнения потока BOOL GetThreadTimes( HANDLE hThread, PFILETIME pftCreationTime, PFILETIME pftExitTime, PFILETIME pftKernelTime, PFILETIME pftUserTime
- 213. Операционные системы Межпроцессное взаимодействие
- 214. Виды межпроцессного взаимодействия (IPC) Передача информации от одного процесса другому Предотвращение критических ситуаций Синхронизация процессов
- 215. Межпроцессное взаимодействие Предотвращение критических ситуаций и средства синхронизации процессов
- 216. Возникновение гонок (состязаний) Два процесса хотят получить доступ к общей памяти в одно и тоже время.
- 217. Критические секции Критическая секция – это часть программы, результат выполнения которой может непредсказуемо меняться, если переменные,
- 218. Условия исключения гонок Два процесса не должны одновременно находиться в критической секции В программе не должно
- 219. Семафоры Семафор - неотрицательная целая переменная S >= 0, которая может изменяться и проверяться только посредством
- 220. Задача о читателях и писателях е — число пустых буферов, и f — число заполненных буферов
- 221. Мьютексы Мьютекс – переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Если
- 222. Межпроцессное взаимодействие Синхронизация потоков с использованием объектов ядра Windows 2000
- 223. Синхронизация потоков Синхронизация означает способность потока приостанавливать свое исполнение и ждать, пока не завершится выполнение некоторой
- 224. Объекты синхронизации и их состояния процессы потоки задания файлы консольный ввод уведомления об изменении файлов события
- 225. Спящие потоки
- 226. Функции ожидания Ожидание одного объекта DWORD WaitForSingleObject( HANDLE hObject, DWORD dwMilliseconds ); Ожидание нескольких объектов DWORD
- 227. Объекты синхронизации События Ожидаемый таймер Семафор Мьютекс
- 228. События События – самая примитивная разновидность объектов ядра. Они содержат счетчик числа пользователей (как и все
- 229. Создание события HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, BOOL fManualReset, BOOL fInitialState, // свободен / занят PCTSTR pszName
- 230. Управление событием Перевод события в свободное состояние: BOOL SetEvent(HANDLE hEvenеt); Перевод события в занятое состояние: BOOL
- 231. Ожидаемые таймеры Ожидаемые таймеры (waitable timers) – это объекты ядра, которые самостоятельно переходят в свободное состояние
- 232. Создание ожидаемого таймера HANDLE CreateWaitableTimer( PSECURITY_ATTRIBUTES psa, BOOL fManualReset, PCTSTR pszName // имя объекта ); HANDLE
- 233. Управление ожидаемым таймером BOOL SetWaitableTimer( HANDLE hTimer, const LARGE_INTEGER *pDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, PVOID pvArgToCompletionRoutine,
- 234. Создание семафора HANDLE CreateSemaphore( PSECURITY_ATTRIBUTE psa, LONG lInitialCount, // начальное значение LONG lMaximumCount, // “объем” PCTRTR
- 235. Управление семафором Поток получает доступ к ресурсу, вызывая одну из Wait-функций и передавая ей описатель семафора.
- 236. Создание мьютекса HANDLE CreateMutex( PSECURITY_ATTRIBUTES psa, BOOL fInitialOwner, PCTSTR pszName); HANDLE OpenMutex( DWORD fdwAccess, BOOL fInheritHandle,
- 237. Управление мьютексом Поток получает доступ к ресурсу, вызывая одну из Wait-функций и передавая ей описатель мьютекса.
- 238. Межпроцессное взаимодействие Передача информации
- 239. Методы передачи информации
- 240. Сообщение WM_COPYDATA Отправитель: COPYDATASTRUCT cds; cds.cbData = (DWORD) nSize; // Размер буфера cds.lpData = (PVOID) pBuffer;
- 241. Анонимные каналы Анонимные каналы не имеют имен. Не пригодны для обмена через сеть. Главная цель –
- 242. Анонимные каналы BOOL CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ); ReadFile WriteFile
- 243. Передача дескрипторов Установить паpаметp bInheritable стpуктуpы SECURITY_ATTRIBUTES в TRUE, чтобы дескрипторы могли наследоваться. Вызов функции CreateProcess
- 244. Создание 2-ого дескриптора BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, BOOL
- 245. NPFS Named Pipe File System является виртуальной файловой системой, которая управляет каналами named pipes. Каналы named
- 246. Работа с именованными каналами Серверный процесс создает канал на локальном компьютере с помощью функции программного интерфейса
- 247. Создание именованного канала HANDLE CreateNamedPipe ( LPCTSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize,
- 248. Подключение к именованному каналу BOOL ConnectNamedPipe ( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ); BOOL DisconnectNamedPipe ( HANDLE
- 249. Обмен данными по именованному каналу BOOL ReadFile/WriteFile ( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead,
- 250. Работа с каналом и ее завершение После установления виртуального соединение серверный процесс и клиентский процесс могут
- 251. Почтовые ящики (MailSlots) Аналогичны именованным каналам, но предоставляют более простой и однонаправленный интерфейс. Процесс-сервер может завести
- 252. Mailslot является одним из механизмов, предназначенных для осуществления обмена данными между процессами (IPC). При этом процессы
- 253. Для открытия канала, созданного на другом компьютере в сети, необходимо указать имя в формате \\ИмяКомпьютера\mailslot\[Путь]ИмяКанала Можно
- 254. Создание почтового ящика Mailslot на “сервере” HANDLE CreateMailslot ( LPCTSTR lpName, // имя DWORD nMaxMessageSize, //
- 255. Создание клиента почтового ящика HANDLE hSlot = CreateFile(("\\\\computername\\mailslot\\messngr", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hSlot
- 256. Получение информации о почтовом ящике BOOL GetMailslotInfo ( HANDLE hMailslot, // указатель на слот LPDWORD lpMaxMessageSize,
- 257. Изменение свойств ящика BOOL SetMailslotInfo( HANDLE hMailslot, DWORD lpReadTimeout );
- 258. Динамически компонуемые библиотеки (Dynamic Link Library) Если два приложения используют одну библиотеку, то они разделяют все
- 260. Скачать презентацию