Операционные системы : Интерфейсы ОС

Содержание

Слайд 2

Основные функции, которые выполняются операционной системой по соответствующим запросам от задач

Основные функции, которые выполняются операционной системой по соответствующим запросам от задач

Слайд 3

В.А.Серков "Операционные системы" 9 Управление процессами - запуск, приостановка и снятие

В.А.Серков "Операционные системы" 9

Управление процессами

- запуск, приостановка и снятие задачи с

выполнения;
- задание или изменение приоритета задачи;
- взаимодействие задач между собой (механизмы сигналов, семафорные примитивы, очереди, конвейеры, почтовые ящики);
- вызов удаленных процедур (Remote Procedure СаН, RPC).
Слайд 4

В.А.Серков "Операционные системы" 9 Управление памятью - запрос на выделение блока

В.А.Серков "Операционные системы" 9

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

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

памяти;
- изменение параметров блока памяти (например, память может быть заблокирована процессом либо предоставлена в общий доступ);
- отображение файлов на память (имеется не во всех системах).
Слайд 5

В.А.Серков "Операционные системы" 9 Управление вводом-выводом - запрос на управление виртуальными

В.А.Серков "Операционные системы" 9

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

- запрос на управление виртуальными устройствами

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

В.А.Серков "Операционные системы" 9 Виды интерфейсов

В.А.Серков "Операционные системы" 9

Виды интерфейсов

Слайд 7

Пользовательские интерфейсы

Пользовательские интерфейсы

Слайд 8

В.А.Серков "Операционные системы" 9 Интерфейс пользователя с операционной системой реализуется с

В.А.Серков "Операционные системы" 9

Интерфейс пользователя с операционной системой реализуется с помощью

специальных программных модулей, которые принимают его команды на соответствующем языке (возможно, с использованием графического интерфейса) и транслируют их в обычные вызовы в соответствии с основным интерфейсом системы.
Слайд 9

В.А.Серков "Операционные системы" 9 C:\Work\program.exe Copy C:st.doc D:\K1\c1.* Del C:\Work\lb2.xls Rename st.doc stat.* Примеры команд

В.А.Серков "Операционные системы" 9

C:\Work\program.exe
Copy C:st.doc D:\K1\c1.*
Del C:\Work\lb2.xls
Rename st.doc stat.*

Примеры команд

Слайд 10

В.А.Серков "Операционные системы" 9

В.А.Серков "Операционные системы" 9

Слайд 11

В.А.Серков "Операционные системы" 9

В.А.Серков "Операционные системы" 9

Слайд 12

Application Program Interface - интерфейс прикладного программирования

Application Program Interface - интерфейс прикладного программирования

Слайд 13

В.А.Серков "Операционные системы" 9 Необходимо однозначно разделить общий термин АРI на

В.А.Серков "Операционные системы" 9

Необходимо однозначно разделить общий термин АРI на следующие

направления:
- АРI как интерфейс высокого уровня, принадлежащий к библиотекам RTL;
- АРI прикладных и системных программ, входящих в поставку операционной системы;
- прочие интерфейсы API.
Слайд 14

В.А.Серков "Операционные системы" 9 Интерфейс прикладного программирования, как это и следует

В.А.Серков "Операционные системы" 9

Интерфейс прикладного программирования, как это и следует из

названия, предназначен для использования прикладными программами системных ресурсов компьютера и реализуемых операционной системой разнообразных системных функций.
АРI описывает совокупность функций и процедур, принадлежащих ядру или надстройкам операционной системы.
Функции АРI позволяют разработчику строить результирующую прикладную программу так, чтобы использовать средства целевой вычислительной системы для выполнения типовых операций. При этом разработчик программы избавлен от необходимости создавать исходный код для выполнения этих операций.
Слайд 15

В.А.Серков "Операционные системы" 9 Варианты реализации API - реализация на уровне

В.А.Серков "Операционные системы" 9

Варианты реализации API

- реализация на уровне модулей

операционной системы;
- реализация на уровне системы программирования;
- реализация на уровне внешней библиотеки процедур и функций.
Система программирования в каждом из этих вариантов предоставляет разработчику средства для подключения функций АРI к исходному коду программы и организации их вызовов.
Слайд 16

В.А.Серков "Операционные системы" 9 Возможности АРI можно оценивать со следующих позиций:

В.А.Серков "Операционные системы" 9

Возможности АРI можно оценивать со следующих позиций:

- эффективности выполнения

функций АРI (эффективность включает в себя скорость выполнения функций и объем вычислительных ресурсов, необходимых для их выполнения);
- широты предоставляемых возможностей;
- зависимости прикладной программы от архитектуры целевой вычислительной системы.
Слайд 17

Реализация функций API на уровне модулей операционной системы

Реализация функций API на уровне модулей операционной системы

Слайд 18

В.А.Серков "Операционные системы" 9 При реализации функций АРI на уровне модулей

В.А.Серков "Операционные системы" 9

При реализации функций АРI на уровне модулей операционной

системы операционная система ответственна за выполнение функций API.
Объектный код, выполняющий функции, либо непосредственно входит в состав операционной системы (или даже ядра операционной системы), либо находится в составе динамически загружаемых библиотек, поставляемых вместе с системой.
Система программирования ответственна только за то, чтобы организовать интерфейс для вызова этого кода.
Слайд 19

В.А.Серков "Операционные системы" 9 Недостатком организации АРI по такой схеме является

В.А.Серков "Операционные системы" 9

Недостатком организации АРI по такой схеме является практически

полное отсутствие переносимости не только кода результирующей программы, но и кода исходной программы.
Программа, созданная для одной архитектуры вычислительной системы, не сможет исполняться на вычислительной системе другой архитектуры даже после того, как ее объектный код полностью перестроен.
Переносимости можно было бы добиться, если унифицировать функции АРI в различных операционных системах.
Слайд 20

Реализация функций АРI на уровне системы программирования

Реализация функций АРI на уровне системы программирования

Слайд 21

В.А.Серков "Операционные системы" 9 При реализации функций АРI на уровне системы

В.А.Серков "Операционные системы" 9

При реализации функций АРI на уровне системы программирования

эти функции предоставляются пользователю в виде библиотеки функций соответствующего языка программирования.
Система программирования предоставляет пользователю библиотеку функций и обеспечивает подключение к результирующей программе объектного кода, ответственного за выполнение этих функций.
Эффективность вызова функций АРI в таком варианте будет несколько ниже, чем при непосредственном обращении к функциям операционной системы.
Слайд 22

В.А.Серков "Операционные системы" 9 Переносимость исходного кода программы в таком варианте

В.А.Серков "Операционные системы" 9

Переносимость исходного кода программы в таком варианте оказывается

самой высокой, поскольку синтаксис и семантика всех функций строго регламентированы в стандарте соответствующего языка программирования.
Единообразное выполнение функций языка обеспечивается системой программирования.
При ориентации на различные архитектуры целевой вычислительной системы в системе программирования могут потребоваться различные комбинации вызовов функций операционной системы для выполнения одних и тех же функций исходного языка.
Слайд 23

В.А.Серков "Операционные системы" 9 Проблема главным образом заключается в том, что

В.А.Серков "Операционные системы" 9

Проблема главным образом заключается в том, что большинство

языков программирования предоставляют пользователю не очень широкий набор стандартизованных функций. Поэтому разработчик исходного кода существенно ограничен в выборе доступных функций API.
Как правило, набора стандартных функций оказывается недостаточно для создания полноценной прикладной программы.
Слайд 24

Реализация функций API с помощью внешних библиотек

Реализация функций API с помощью внешних библиотек

Слайд 25

В.А.Серков "Операционные системы" 9 При реализации функций АРI на уровне системы

В.А.Серков "Операционные системы" 9

При реализации функций АРI на уровне системы программирования

эти функции предоставляются пользователю в виде библиотеки функций соответствующего языка программирования.
Система программирования предоставляет пользователю библиотеку функций и обеспечивает подключение к результирующей программе объектного кода, ответственного за выполнение этих функций.
Эффективность вызова функций АРI в таком варианте будет несколько ниже, чем при непосредственном обращении к функциям операционной системы.
Слайд 26

В.А.Серков "Операционные системы" 9 С точки зрения эффективности выполнения этот метод

В.А.Серков "Операционные системы" 9

С точки зрения эффективности выполнения этот метод реализации

АРI имеет самые низкие результаты, поскольку внешняя библиотека обращается как к функциям операционной системы, так и к функциям языка программирования.
Только при очень высоком качестве внешней библиотеки ее эффективность сравнима с эффективностью предыдущего подхода.
Если говорить о переносимости исходного кода, то здесь требование только одно - используемая внешняя библиотека должна быть доступна в любой из архитектур вычислительных систем, на которые ориентирована прикладная программа. Тогда удается достигнуть переносимости.