Функциональность интерфейсов операционных систем




Напомним, что операционная система всегда выступает как интерфейс между ап­паратурой компьютера и пользователем с его задачами. Под интерфейсами опера­ционных систем здесь и далее следует понимать специальные интерфейсы систем­ного и прикладного профаммирования (API), предназначенные для выполнения перечисленных ниже задач.

□ Управление процессами, которое включает в себя следующий набор основных функций:

■ запуск, приостанов и снятие задачи с выполнения;

■ задание или изменение приоритета задачи;

■ взаимодействие задач между собой (механизмы сигналов, семафорные при­митивы, очереди, конвейеры, почтовые ящики);

■ вызов удаленных процедур (Remote Procedure Call, RPC).

□ Управление памятью:

■ запрос на выделение блока памяти;

■ освобождение памяти;

■ изменение параметров блока памяти (например, память может быть забло­кирована процессом либо предоставлена в общий доступ);

■ отображение файлов на память (имеется не во всех системах).

□ Управление вводом-выводом:

■ запрос на управление виртуальными устройствами (напомним, что управ­ление вводом-выводом является привилегированной функцией самой опе­рационной системы, и никакая из пользовательских задач не должна иметь возможности непосредственно управлять устройствами);

■ файловые операции (запросы к системе управления файлами на создание, изменение и удаление данных, организованных в файлы).

Здесь мы перечислили основные наборы функций, которые выполняются опера­ционной системой по соответствующим запросам от задач. Что касается интерфейса пользователя с операционной системой, то он реализуется с помощью специальных программных модулей, которые принимают его команды на соответствующем язы­ке (возможно, с использованием графического интерфейса) и транслируют их в обычные вызовы в соответствии с основным интерфейсом системы. Обычно эти модули называют интерпретатором команд. Так, например, функции такого ин­терпретатора в MS DOS выполняет модуль COMMAND.COM. Получив от пользовате­ля команду, такой модуль после лексического и синтаксического анализа либо сам выполняет действие, либо, что случается чаще, обращается к другим модулям опе­рационной системы, используя механизм API. Надо заметить, что в последние годы большую популярность получили графические интерфейсы (Graphical User In­terface, GUI), в которых задействованы соответствующие манипуляторы типа мышь или трекбол (track-ball)[I]. Указание курсором на объект и щелчок или двойной щелчок на соответствующей кнопке мыши приводит к каким-либо действиям — запуску программы, ассоциированной с объектом, выбору и/или активизации меню ит. д. Можно сказать, что такая интерфейсная подсистема транслирует «коман­ды» пользователя в обращения к операционной системе.

Поясним также, что управление GUI является частным случаем задачи управле­ния вводом-выводом и не относится к функциям ядра операционной системы, хотя в ряде случаев разработчики операционной системы относят функции GUI к ос­новному системному интерфейсу API.

Следует отметить, что имеются два основных подхода к управлению задачами. Так, в одних системах порождаемая задача наследует все ресурсы задачи-родителя, тогда как в других системах существуют равноправные отношения, и при порождении нового процесса ресурсы для него запрашиваются у операционной системы. Обращения к операционной системе в соответствии с имеющимся интерфейсом API могут осуществляться как посредством вызова подпрограммы с передачей ей необходимых параметров, так и через механизм программных прерываний. Выбор метода реализации вызовов функций API должен определяться архитектурой плат­формы.

Так, например, в операционной системе MS DOS, которая разрабатывалась для однозадачного режима (поскольку процессор i80x86 не поддерживал мультипро­граммирование), использовался механизм программных прерываний. При этом основной набор функций API был доступен через точку входа обработчика int 21h. В более сложных системах имеется не одна точка входа, а множество — по количе­ству функций API. Так, в большинстве операционных систем используется метод вызова подпрограмм. В этом случае вызов сначала передается в модуль API, на­пример в библиотеку времени выполнения (Run Time Library, RTL)[II], который пе­ренаправляет его соответствующим обработчикам программных прерываний, вхо­дящим в состав операционной системы. Использование механизма прерываний вызвано, главным образом, тем, что при этом процессор переводится в режим су­первизора.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: