Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 78

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 78 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 782020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 78)

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

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

С учетом корпоративных интересов производи­телей операционных систем и иного системного программного обеспечения такоенаправление их развития представляется практически невозможным. В лучшемслучае при приложении определенных организационных усилий удается добить­ся стандартизации смыслового (семантического) наполнения основных функцийAPI, но не их программного интерфейса.Хорошо известным примером API такого рода может служить набор функций,предоставляемых пользователю со стороны операционных систем типа MicrosoftWindows — WinAPI (Windows API).

Надо сказать, что даже внутри этого корпора­тивного интерфейса API существует определенная несогласованность, котораянесколько ограничивает переносимость программ между различными операцион­ными системами типа Windows. Еще одним примером такого интерфейса APIможно считать набор сервисных функций простейших однопрограммных опе­рационных систем типа MS DOS, реализованный в виде набора подпрограмм об­служивания программных прерываний.Реализация функций API на уровнесистемы программированияПри реализации функций API на уровне системы программирования эти функ­ции предоставляются пользователю в виде библиотеки функций соответствую­щего языка программирования.

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

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

Это должно быть учтено в коде RTL. В общем случаедля каждой архитектуры целевой вычислительной системы потребуется свой кодRTL языка программирования. Выбор того или иного объектного кода RTL дляподключения к результирующей программе система программирования обеспе­чивает автоматически.Например, рассмотрим функции динамического выделения памяти в языках Си Паскаль. В С это функции malloc, realLoc и free (функции new и delete в C++),в Паскале — функции new и dispose. Если использовать эти функции в исходномтексте программы, то с точки зрения исходной программы они будут действоватьодинаковым образом в зависимости только от семантики исходного кода програм­мы. При этом для разработчика исходной программы не имеет значения, на какуюархитектуру ориентирована его программа.

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

Поэтому разработчик исходного кода существенно ограниченввыборе доступных функций API. Как правило, набора стандартных функций ока-302Глава 9. Архитектура операционных системзывается недостаточно для создания полноценной прикладной программы. Тогдаразработчик может обратиться к функциям других библиотек, имеющихся в со­ставе системы программирования. В этом случае нет гарантии, что функции, вклю­ченные в состав данной системы программирования, но не входящие в стандартязыка программирования, будут доступны в другой системе программирования,особенно если та ориентирована на другую архитектуру целевой вычислительнойсистемы. Такая ситуация уже ближе к третьему варианту реализации API.Например, те же функции malloc, realLoc и free в языке С фактически не входятв стандарт языка.

Они входят в состав стандартной библиотеки, которая «де-фак­то» входит во все системы программирования, построенные на основе языка С.Общепринятые стандарты существуют для многих часто используемых функцийязыка. Если же взять более специфические функции, такие как функции порожде­ния новых процессов, то для них ни в С, ни в Паскале не окажется общепринятогостандарта.Реализация функций API с помощьювнешних библиотекПри реализации функций API с помощью внешних библиотек эти функции пре­доставляются пользователю в виде библиотеки процедур и функций, созданнойсторонним разработчиком.Система программирования ответственна только за то, чтобы подключить объект­ный код библиотеки к результирующей программе. Причем внешняя библиотекаможет быть и динамически загружаемой (загружаемой во время выполнения про­граммы).С точки зрения эффективности выполнения этот метод реализации API имеет са­мые низкие результаты, поскольку внешняя библиотека обращается как к функ­циям операционной системы, так и к функциям RTL языка программирования.Только при очень высоком качестве внешней библиотеки ее эффективность срав­нима с эффективностью библиотеки RTL.Если говорить о переносимости исходного кода, то здесь требование только одно —используемая внешняя библиотека должна быть доступна в любой из архитектурвычислительных систем, на которые ориентирована прикладная программа.

Тог­да удается достигнуть переносимости. Это возможно, если внешняя библиотекаудовлетворяет какому-то принятому стандарту, а система программирования под­держивает этот стандарт.Например, библиотеки, удовлетворяющие стандарту POSIX (см. следующий раз­дел), доступны в большинстве систем программирования для языка С. И если при­кладная программа использует только библиотеки этого стандарта, то ее исход­ный код будет переносимым. Еще одним примером является широко известнаябиблиотека графического интерфейса XLib, поддерживающая стандарт графичес­кой среды X-Window.Для большинства специфических библиотек отдельных разработчиков это не так.Если пользователь использует какую-то библиотеку, то она ориентирована на ог-Интерфейс прикладного программирования303раниченный набор доступных архитектур целевой вычислительной системы.

При­мерами могут служить библиотеки MFC (Microsoft Foundation Classes) от Microsoftи VCL (Visual Controls Library) от Borland, жестко ориентированные на архитек­туру операционных систем семейства Windows.Тем не менее многие фирмы-разработчики сейчас стремятся создавать библиоте­ки, которые бы обеспечивали переносимость исходного кода приложений междуразличными архитектурами целевой вычислительной системы.

Пока еще такиебиблиотеки не получили широкого распространения, но имеется несколько попы­ток их реализации, например библиотека CLX от Borland ориентирована на архи­тектуру операционных систем семейств Linux и Windows.В целом развитие функций API идет в направлении попытки создать библиотекиAPI, обеспечивающие широкую переносимость исходного кода. Однако с учетомкорпоративных интересов различных производителей и сложившейся ситуациина рынке в ближайшее время вряд ли удастся достичь значительных успехов в этомнаправлении. Разработка широко применимого стандарта API пока еще остаетсяделом будущего.Поэтому разработчики системных программ вынуждены оставаться в довольноузких рамках ограничений стандартных библиотек языков программирования.Что касается прикладных программ, то гораздо большую перспективу для них пре­доставляют технологии, связанные с разработками в рамках архитектуры клиентсервер или трехзвенной архитектуры создания приложений.

В этом направленииведущие производители операционных систем, СУБД и систем программирова­ния скорее достигнут соглашений, чем в направлении стандартизации API.Итак, нами были рассмотрены основные принципы, цели и подходы к реализациисистемных интерфейсов API. Отметим еще один очень важный момент: желатель­но, чтобы интерфейс прикладного программирования не зависел от системы про­граммирования. Конечно, были одно время персональные компьютеры, у которыхбазовой системой программирования выступал интерпретатор с языка Basic, ноэто скорее исключение.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее