- •39. Адресний простір процесу.
- •40. Керування віртуальною пам'ятю. Vmm.
- •41. Архітектура інтерфейсів (api) управління пам'ятю.
- •42. Работа програм з віртуальною пам'ятью.
- •43.Файли, що відображаються в пам'ять
- •45. Визначення вікна. Компоненти та параметри вікон.
- •46. Ієрархія вікон.
- •47. Стилі вікон.
- •49. Обмін даними між процесами.
- •48. Повідомлення та черги повідомлень.
- •50. Синхронізація потоків.
- •51 Общий план обработки исключений.
- •52 Обработчики завершения. Локальная и глобальная раскрутка.
- •53 Фильтры и обработчики исключений.
- •54 Общая структура системного реестра.
- •55 Системный реестр Windows’95 имеет следующую структуру:
- •56 Работа приложений с системным реестром.
- •57. Файлові структури.
- •58. Робота з томами та каталогами.
- •59. Синхронна робота з файлами.
- •60. Асинхронна робота з файлами.
- •61. Файлова структура ntfs
- •62Система безопасности windows nt
48. Повідомлення та черги повідомлень.
Основою віконного графічного інтерфейсу Windows є механізм повідомлень. Повідомлення можуть передаватися віконної процедури негайно, а можуть міститися в чергу повідомлень. При запуску вашої програми, Windows створює для нього чергy повідомлень. Черга повідомлень створюється для кожного потоку (thread), але в самому найпростішому
випадку створюється одна черга. При будь-якій дії з вікном (зміна розмірів і т.д.) Windows поміщає в
чергу відповідне повідомлення. Формат повідомлення відповідає структурі MSG.
Хендлі вікна – Число ідентифікує вікно. У кожного вікна в Windows є свій Хендлі. Практично у всіх функціях API потрібно вказувати Хендлі вікна. Повідомлення поміщаються в чергу повідомлень необхідно правильно витягувати і обробляти. Для цього потрібно побудувати цикл обробки повідомлень.
Черга повідомлень – класичний стек типу LIFO (Last in First out)
49. Обмін даними між процесами.
Существуют следующие способы разделения данных между процессами:
Отображение проецируемых файлов (File mapping).
Два процесса отображают один и тот же объект “проецируемый файл” на свое адресное пространство.
Разделяемая память (Shared Memory).
Отличается от предыдущего способа только тем, что в качестве разделяемого файла используется часть файла подкачки.
Безымянные транспортеры (Anonymous Pipe).
Один из классических способов взаимодействия процессов, известный еще в UNIX. С помощью функции CreatePipe процесс создает два описателя: один - для чтения, другой - для записи. Эти описатели аналогичны описателям файлов в том смысле, что с ними можно работать файловыми функциями ReadFile и WriteFile. Если породить дочерний процесс так, что бы он наследовал описатели, то можно использовать описатели транспортера для взаимодействия процессов. Можно предложить следующую схему взаимодействия:
Именованные транспортеры (Named Pipes).
Аналогичны предыдущим за исключением того, что при создании транспортеру присваивается уникальное глобальное имя. Процесс, породивший транспортер называется сервером. Процесс, которые присоединяется к этому транспортеру, называется клиентом. Клиент может присоединяться к серверу, находящемуся на удаленном компьютере в сети. Для обслуживания одновременно нескольких клиентов необходимо порождать несколько потоков.
Почтовые ящики (MailSlots).
Аналогичны именованным транспортерам, но предоставляют более простой и однонаправленный интерфейс. Процесс-сервер может завести почтовый ящик и дать ему имя, глобальное в сети. Любой клиент может с помощью операций работы с файлами отправить данные в этот ящик. Сервер, по мере необходимости, может читать переданные ему данные. Кроме этого, возможно широковещательная передача информации клиентом всем серверам домена.
Буфер обмена (Clipboard).
Широко применяемый в Windows механизм обмена информацией с использованием специального системного глобального буфера. При этом реализуется модель cut-copy-paste. Любое приложение может поместить данные в буфер обмена и получить данные из него.
Динамический обмен данными (DDE - Dynamic Data Exchange).
Присоединение и внедрение объектов (OLE - Object linking and embedding).
Протокол первоначально предназначенный для создания составных документов. С его помощью можно, например, вставить таблицу MS Excel® в документ MS Word. При этом возможно как вставить таблицу целиком (embedding), так и вставить только ссылку на эту таблицу (linking). В настоящее время протокол OLE развился до набора технологий, лежащих в основе построения современных информационных систем.
Динамически компонуемые библиотеки (DLL - dynamic link libraries).
Если два приложения используют одну библиотеку, то они разделяют все глобальные переменные этой библиотеки. В действительности, глобальные переменные, как и вся библиотека, отображаются на адресные пространства разных процессов. Этот метод не привносит никакой новой функциональности по сравнению с отображением проецируемых файлов и, поэтому, его использование не рекомендуется.
Удаленный вызов процедур (RPC - Remote Procedure Call).
