
- •Тема 8. Интерфейсы операционных систем
- •8.1.Интерфейс прикладного программирования
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1. Интерфейс прикладного программирования
- •8.1.2. Классификация системных вызовов
- •Основные функции управления синхронизацией
- •Основные функции управления виртуальной и физической памятью
- •Основные функции управления виртуальной и физической памятью
- •Функции механизма отображения файла в память
- •Основные функции для файлового ввода-вывода
- •Основные функции управления каталогами
- •Некоторые категории вызовов GUI
- •Основные функции управления защитой
- •Основные функции управления реестром
- •Основные функции управления консолью
- •8.1.Интерфейс прикладного программирования
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.Интерфейс прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •Способы реализации ИПП
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •На рис. позицией 1 обозначен вызов обработчика ловушки и диспетчера базовых сервисов. Позиции
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.2. Интерфейс пользователя
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.Интерфейс пользователя
- •8.2.2.Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2.Консоль
- •8.2.Интерфейс пользователя
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями

8.1.4. Реализация интерфейса прикладного программирования
Выполнение системных вызовов в другом процессе.
Необходимость выполнения системных вызовов в другом процессе может быть продиктована следующими требованиями:
1.требуется уменьшить размер ядра ОС;
2.требуется повысить надежность работы ОС;
3.требуется реализовать возможность компиляции исходных текстов программ других, несовместимых ОС.
Реализация перечисленных требований ведет к изменению традиционной архитектуры операционной системы.
Всовременной ОС Windows разработана так называемая защищенная подсистема Win32, которая является сервером (рисунок ниже).
Программы пользователей в этой архитектуре выступают в роли клиентов. Назначение подсистемы состоит в выполнении системных запросов.
Подсистема запускается как отдельный процесс пользовательского режима.
Для взаимодействия с подсистемой используется очередь сообщений. Windows получает запрос от программы (через заглушки) и помещает
его в очередь сообщений ( позиция 2 на рис.). |
71 |
|

8.1.4. Реализация интерфейса прикладного программирования
Выполнение системных вызовов в другом процессе.
Подсистема выбирает запрос (позиция 3 на рис.), выполняет его с помощью соответствующих функций DLL-библиотек и помещает результаты назад в очередь сообщений. Для выполнения операций с очередью сообщений в Windows используется специальный базовый сервис (LPC).
Поскольку каждый процесс в современной ОС Windows выполняется в отдельном адресном пространстве, то все процессы изолированы друг от друга. Вследствие этого никакой прикладной процесс не может оказать влияние на функционирование подсистемы. Поэтому такая подсистема Win32 и называется защищенной.
72

На рис. позицией 1 обозначен вызов обработчика ловушки и диспетчера базовых сервисов. Позиции 2 и 3 показывают, что для выполнения операций с очередью сообщений в Windows используется специальный базовый сервис (LPC). 73

8.1.4. Реализация интерфейса прикладного программирования
Выполнение системных вызовов в другом процессе.
Перенос кода из ядра ОС в подсистему привел к уменьшению ядра и, следовательно, к повышению качества его проработки и надежности выполнения.
С другой стороны, взаимодействие ОС с подсистемой через очередь влечет за собой существенное увеличение времени выполнения запросов.
Связано это с тем, что всякие переключения с исходного процесса на процесс подсистемы и назад вызывают запоминание и восстановление контекстов задач, а это длительная операция.
Поэтому разработчики Windows, с одной стороны, улучшили взаимодействие защищенной подсистемы с исполнительной системой ОС с помощью специальной программы LPC (средство локального вызова процедур, позиции 2 и 3), а с другой стороны, вернули наиболее часто используемые функции назад, в режим ядра, например, интерфейс графических устройств и диспетчер окон.
Внутри ОС Windows базовые сервисы исполнительной системы строятся на основе примитивов ядра.
В ОС UNIX нет ярко выраженной исполнительной системы, подобной Windows, поэтому все базовые сервисы размещаются в ядре.
74

8.2. Интерфейс пользователя
8.2.1. Типы интерфейсов
Интерфейс пользователя - это совокупность средств, предоставляемая разработчиком программы для взаимодействия пользователя с этой программой. Существуют приложения, которые во время своего выполнения не взаимодействуют с пользователем, но такие случаи встречаются редко.
Изучение программы, по сути дела, сводится к изучению ее интерфейса. Интерфейс программ формируется из тех элементов, которые предоставляют система программирования и операционная система.
Пример. MS DOS работает в текстовом режиме видеосистемы и не поддерживает мышь, поэтому основным типом интерфейса является так называемая командная строка.
Разработчикам ПО MS DOS не предоставляет графические средства для построения меню, элементов управления и т. д., поэтому
программисты вынуждены были сами вести разработку подобных элементов интерфейса. Это приводит к большим накладным расходам при программировании и к появлению огромного количества разномастных элементов интерфейса, не всегда одинаково
функционирующих. |
75 |

8.2.1.Типы интерфейсов
Всовременных операционных системах элементы интерфейса поддерживаются самими системами.
Так как в современных ОС все (или практически все) элементы интерфейса предоставляет операционная система, то можно описать назначение тех или иных элементов интерфейса, не вдаваясь в функциональное наполнение приложения.
Поскольку с операционной системой могут взаимодействовать различные категории пользователей - администраторы, системные программисты, операторы, программисты и конечные пользователи, то каждой из этих категорий предоставляется свой интерфейс.
76

8.2.1. Типы интерфейсов
77

8.2.1.Типы интерфейсов
Всовременных операционных системах элементы интерфейса поддерживаются самими системами.
Вид интерфейса взаимодействия пользователя с ОС исторически определялся возможностями технических средств общения пользователя
ссистемой.
Достаточно давно таким средством был пульт оператора, а позже - электрическая пишущая машинка, называемая консолью. С машинки можно было вводить команды и на нее же получать сообщения от ОС.
В недавнем прошлом пишущая машинка была заменена
терминалом.
Так как изменилась аппаратная база интерфейса, но не изменился характер взаимодействия, термин «консоль» продолжал существовать. Практически все современные ОС, несмотря на появление графических видеосистем, координатных устройств, например мыши, продолжают поддерживать консоль.
Это связано с тем, что существует большая группа программ, например утилит, для которых не требуется многооконный графический интерфейс.
Для консоли характерны текстовый режим работы и взаимодействие
в виде «приглашение/вопрос - ввод -обработка - ответ». |
78 |

8.2.1. Типы интерфейсов
Информация вводится в фиксированную строку, называемую командной. Выводимая информация прокручивается в режиме скроллинга.
Для таких операционных систем, как UNIX, Linux, MS DOS, консоль является основным интерфейсом.
Чтение вводимых в командной строке команд в этих системах осуществляет так называемый командный интерпретатор, являющийся оболочкой системы.
Вроли терминала на персональных компьютерах выступает клавиатура с монитором.
Поскольку первые персональные компьютеры оснащались алфавитно-цифровыми мониторами, то наиболее очевидным и простым мог быть только консольный интерфейс.
С появлением графических режимов и с дальнейшим развитием операционных систем были разработаны графические интерфейсы, представляющие собой надстройки над операционными системами.
ВWindows такая надстройка, называемая также графической средой, является неотъемлемой частью ОС. Она реализуется с помощью драйвера видеосистемы, функций интерфейса графических устройств
(GDI) и графического интерфейса пользователя (GUI). |
79 |
|

8.2.1. Типы интерфейсов
80