Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



Более подробная информация - http: //ru.wikipedia.org/wiki/API

API (Application Programming Interface) - интерфейс прикладного программирования, .

Интерфейс между операционной системой и программами определяется набором системных вызовов.

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

Рассмотрим наиболее часто применяемых системных вызовов стандарта POSIX. В POSIX существует более 100 системных вызовов.

fork - создание нового процесса

exit - завершение процесса

open - открывает файл

close - закрывает файл

read - читает данные из файла в буфер

write - пишет данные из буфера в файл

stat - получает информацию о состоянии файла

mkdir - создает новый каталог

rmdir - удаляет каталог

link - создает ссылку

unlink - удаляет ссылку

mount - монтирует файловую систему

umount - демонтирует файловую систему

chdir - изменяет рабочий каталог

Более подробная информация - http: //ru.wikipedia.org/wiki/POSIX

В UNIX вызовы почти один к одному идентичны библиотечным процедурам, которые используются для обращения к системным вызовам.

Рассмотрим интерфейс прикладного программирования для Windows - Win32 API. Win32 API отделен от системных вызовов. Это позволяет в разных версиях менять системные вызовы, не переписывая программы.

Более подробная информация - http: //ru.wikipedia.org/wiki/Windows_API

Поэтому непонятно является ли вызов системным (выполняется ядром), или он обрабатывается в пространстве пользователя.

В Win32 API существует более 1000 вызовов. Такое количество связано и с тем, что графический интерфейс пользователя UNIX запускается в пользовательском режиме, а в Windows встроен в ядро. Поэтому Win32 API имеет много вызовов для управления окнами, текстом, шрифтами т.д.

Рассмотрим вызовы Win32 API, которые подобны вызовам стандарта POSIX.

CreatProcess (fork) - создание нового процесса

ExitProcess (exit) - завершение процесса

CreatFile (open) - открывает файл

CloseHandle (close) - закрывает файл

ReadFile (read) - читает данные из файла в буфер

WriteFile (write) - пишет данные из буфера в файл

CreatDirectory (mkdir) - создает новый каталог

RemoveDirectory (rmdir) - удаляет каталог

SetCurrentDirectory (chdir) - изменяет рабочий каталог

Интерфейс Win32 API позволяет программам работать почти на всех версиях Windows

Структура операционных систем

Монолитная система

Более подробная информация - http: //ru.wikipedia.org/wiki/Монолитное_ядро

Структура системы:

1. Главная программа, которая вызывает требуемые сервисные процедуры.

2. Набор сервисных процедур, реализующих системные вызовы.

3. Набор утилит, обслуживающих сервисные процедуры.

Простая модель монолитной системы

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

Этапы обработки вызова:

o Принимается вызов

o Выполняется переход из режима пользователя в режим ядра

o ОС проверяет параметры вызова для того, чтобы определить, какой системный вызов должен быть выполнен

o После этого ОС обращается к таблице, содержащей ссылки на процедуры, и вызывает соответствующую процедуру.


1.4.2 Многоуровневая структура ОС

Более подробная информация - http: //ru.wikipedia.org/wiki/Модульное_ядро

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

Пример структуры многоуровневой системы

Преимущества:

o Высокая производительность

Недостатки:

o Большой код ядра, и как следствие большое содержание ошибок

o Ядро плохо защищено от вспомогательных процессов

Пример реализации многоуровневой модели UNIX.

Структура ОС UNIX

Ядро ОС UNIX

Пример реализации многоуровневой модели Windows

Структура Windows 2000

Модель экзоядра

Более подробная информация - http: //ru.wikipedia.org/wiki/Экзоядро

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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-28; Просмотров: 826; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.011 с.)
Главная | Случайная страница | Обратная связь