Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Интерфейс прикладного программирования
Более подробная информация - 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 После этого ОС обращается к таблице, содержащей ссылки на процедуры, и вызывает соответствующую процедуру.
Более подробная информация - http: //ru.wikipedia.org/wiki/Модульное_ядро Обобщением предыдущего подхода является организация ОС как иерархии уровней. Уровни образуются группами функций операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать только со своим непосредственным соседом - выше- или нижележащим уровнем. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням. Пример структуры многоуровневой системы Преимущества: o Высокая производительность Недостатки: o Большой код ядра, и как следствие большое содержание ошибок o Ядро плохо защищено от вспомогательных процессов Пример реализации многоуровневой модели UNIX. Структура ОС UNIX Ядро ОС UNIX Пример реализации многоуровневой модели Windows Структура Windows 2000 Модель экзоядра Более подробная информация - http: //ru.wikipedia.org/wiki/Экзоядро Если предыдущие модели брали на себя максимум функций, принцип экзоядра, все отдать пользовательским программам. Например, зачем нужна файловая система? Почему не позволить пользователю просто читать и писать участки диска защищенным образом? Т.е. каждая пользовательская программа сможет иметь свою файловую систему. Такая операционная система должна обеспечить безопасное распределение ресурсов среди соревнующихся за них пользователей. Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 826; Нарушение авторского права страницы