Создание полноценной прикладной среды, полностью совместимой со средой другой операционной системы, является достаточно сложной задачей, тесно связанной со структурой операционной системы. Существуют различные варианты построения множественных прикладных сред, отличающиеся как особенностями архитектурных решений, так и функциональными возможностями, обеспечивающими различную степень переносимости приложений.
Во многих версиях ОС UNIX транслятор прикладных сред реализуется в виде обычного приложения. В операционных системах, построенных с использованием микроядерной концепции, таких как, например, Windows NT/2000 или Workplace OS, прикладные среды выполняются в виде серверов пользовательского режима. А в 0S/2 с ее более простой архитектурой средства организации прикладных сред встроены глубоко в операционную систему.
Один из наиболее очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС. На рис. 4.9 операционная система OS1 поддерживает, кроме своих «родных» приложений, приложения операционных систем OS2 и OS3. Для этого в ее составе имеются специальные приложения — прикладные программные среды, которые транслируют интерфейсы «чужих» операционных систем АРI ОS2 и АРI ОS3 в интерфейс своей «родной» операционной системы – АРI ОS1. Так, например, в случае, если бы в качестве OS2 выступала операционная система UNIX, а в качестве OS1 — OS/2, для выполнения системного вызова создания процесса fork() в UNIX-приложении программная среда должна была бы обратиться к другой операционной системе OS/2 с системным вызовом DosExecPgm().
Лекция №7 Информатика Программное обеспечение информационных процессов
К сожалению, поведение почти всех функций, составляющих АРI одной ОС, как правило, существенно отличается от поведения соответствующих функций другой ОС. Например, чтобы функция создания процесса в 0S/2 DosExecPgm() полностью соответствовала функции создания процесса fork() в UNIX-подобных системах, ее нужно было бы изменить, чтобы она поддерживала возможность копирования адресного пространства родительского процесса в пространство процесса-потомка. (При нормальном же поведении этой функции память процесса-потомка инициализируется на основе данных нового исполняемого файла.)
В другом варианте реализации множественных прикладных сред операционная система имеет несколько равноправных прикладных программных интерфейсов. В приведенном на рис. 4.10 примере операционная система поддерживает приложения, написанные для OS1, OS2 и OS3. Для этого непосредственно в пространстве ядра системы размещены прикладные программные интерфейсы всех этих ОС: АРI OS1, АРI OS2 и АРI API OS3.
В этом варианте функции уровня АРI обращаются к функциям нижележащего уровня ОС, которые должны поддерживать все три в общем случае несовместимые прикладные среды. В разных ОС по-разному осуществляется управление системным временем, используется разный формат времени дня, на основании собственных алгоритмов разделяется процессорное время и т. д. Функции каждого АРI реализуются ядром с учетом специфики соответствующей ОС, даже если они имеют аналогичное назначение.
08. Операционные системы. [Универсальный программист]
Например, как уже было сказано, функция создания процесса работает по-разному для приложения UNIX и приложения OS/2. Аналогично при завершении процесса ядру также необходимо определять, к какой ОС относится данный процесс. Если этот процесс был создан по запросу UNIX-приложения, то в ходе его завершения ядро должно послать родительскому процессу сигнал, как это делается в ОС UNIX. А по завершении процесса OS/2, созданного с параметром EXEC_SYNC, ядро должно отметить, что идентификатор процесса не может быть повторно использован другим процессом OS/2. Для того чтобы ядро могло выбрать нужный вариант реализации системного вызова, каждый процесс должен передавать в ядро набор идентифицирующих характеристик.
Еще один способ построения множественных прикладных сред основан на микроядерном подходе. При этом очень важно отделить базовые, общие для всех прикладных сред, механизмы операционной системы от специфических для каждой из прикладных сред высокоуровневых функций, решающих стратегические задачи.
В соответствии с микроядерной архитектурой все функции ОС реализуются микроядром и серверами пользовательского режима. Важно, что каждая прикладная среда оформляется в виде отдельного сервера пользовательского режима и не включает базовых механизмов (рис. 4.11). Приложения, используя АРI, обращаются с системными вызовами к соответствующей прикладной среде через микроядро.
Прикладная среда обрабатывает запрос, выполняет его (возможно, обращаясь для этого за помощью к базовым функциям микроядра) и отсылает приложению результат. В ходе выполнения запроса прикладной среде приходится, в свою очередь, обращаться к базовым механизмам ОС, реализуемым микроядром и другими серверами ОС.
Такому подходу к конструированию множественных прикладных сред присущи все достоинства и недостатки микроядерной архитектуры, в частности:
· очень просто можно добавлять и исключать прикладные среды, что является следствием хорошей расширяемости микроядерных ОС;
· надежность и стабильность выражаются в том, что при отказе одной из прикладных сред все остальные сохраняют работоспособность;
· низкая производительность микроядерных ОС сказывается на скорости работы прикладных сред, а значит, и на скорости выполнения приложений.
Архитектура Windows NT
Структурно Windows NT можно разделить на две части: одна работает в пользовательском режиме (защищенные подсистемы Windows NT), а другая — в режиме (исполнительная система Windows NT). Подробно структура Windows NT изображена рис 4.12.
Серверы Windows NT называются защищенными подсистемами (protected subsystems), так как каждый из них – это отдельный процесс, память которого защищена от других процессов системой виртуальной памяти исполнительной системы NT. Так как совместное использование памяти подсистемами не реализуется автоматически, то коммуникации между ними осуществляются путем передачи сообщений. Сплошные линии на рис. 4.12 обозначают пути передачи сообщений между клиентом и сервером или между двумя серверами. Все сообщения проходят через исполнительную систему, но для простоты на рисунке это не показано.
Исполнительная система NT – это «двигатель» ОС, способный поддерживать любое число серверных процессов. Серверы предоставляют исполнительной системе NT пользовательские и программные интерфейсы, а также обеспечивают среды для выполнения приложений разных типов.
Защищенные подсистемы
Термин «сервер» подразумевает, что каждая защищенная подсистема обеспечивает API, который могут использовать программы. Когда
приложение (или другой сервер) вызывает некоторую процедуру API, серверу, реализующему данную процедуру, посылается сообщение при помощи средства локального вызова процедур (local procedure call, LРС) – оптимизированного механизма исполнительной системы NT для локальной передачи сообщений. Сервер же посылает ответное сообщение вызывающей программе.
В Windows NT имеется два типа защищенных подсистем: подсистемы среды (environment subsystems) и неотъемлемые подсистемы (integral subsystems). Подсистема среды – это сервер пользовательского режима, реализующий API некоторой ОС. Когда приложение вызывает функцию API, этот вызов доставляется посредством LPC подсистеме среды. Та выполняет вызов и возвращает результаты прикладному процессу, посылая другой LPC.
Самая важная подсистема среды в Windows NT — это подсистема Win32, которая предоставляет прикладным программам API 32-разрядной Windows. Кроме того, подсистема среды Win32 реализует графический интерфейс пользователя Windows NT и управляет всем вводом пользователя и выводом приложений. В Windows NT также имеются подсистемы среды POSIX, OS/2, 16 – разрядной Windows и МS-DOS (две последние не показаны на рис. 4.12). Данные подсистемы предоставляют свои АРI, но используют для получения пользовательского ввода и отображения результатов подсистему Win32.
Другие защищенные подсистемы – неотъемлемые подсистемы – это серверы, выполняющие важные функции ОС. В процессе разработки Windows NT некоторые неотъемлемые подсистемы появлялись и исчезали, но одна присутствовала всегда: подсистема защиты. Подсистема защиты исполняется в пользовательском режиме и регистрирует правила контроля доступа, определенные для локального компьютера.
Например, она отслеживает, какие учетные записи пользователей имеют особые привилегии, доступ к каким системным ресурсам подлежит аудиту и должны ли генерироваться сообщения или предупреждения аудита. Кроме того, подсистема защиты ведет базу данных учетных записей пользователей, содержащую идентификаторы пользователей, пароли, группы, к которым отнесен пользователь, и особые привилегии, которыми он обладает. Она также принимает регистрационную информацию пользователя и инициирует аутентификацию подключения пользователя к системе.
Исполнительная подсистема
Исполнительная система NT (NT executive) – это часть Windows NT, исполняющаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда компонентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только компонентам исполнительной системы.
Компоненты исполнительной системы поддерживают независимость друг от друга, для чего каждый из них создает необходимые системные структуры данных и работает с ним. Так как интерфейсы между компонентами тщательно контролируются, можно полностью удалить некоторый компонент и заменить другим, работающим иначе. Если новый компонент корректно реализует все системные сервисы и внутренние интерфейсы, то ОС работает как прежде. Сопровождение ОС также упрощается, поскольку компоненты исполнительной системы NТ взаимодействуют предсказуемым образом.
Ниже перечислены различные компоненты исполнительной системы и их области ответственности:
· Диспетчер объектов (ДО). Создает, поддерживает и уничтожает объекты исполнительной системы NT – абстрактные типы данных, представляющие системные ресурсы.
· Справочный монитор защиты (СМЗ). Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения.
· Диспетчер процессов (ДП). Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
· Средство локального вызова процедур (LPC). Передает сообщения между клиентскими и серверными процессами, расположенными на одном и том же компьютере
· Диспетчер виртуальной памяти (ДВП). Реализует виртуальную память – схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов.
· Ядро. Реагирует на прерывания и исключения, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы NT для реализации объектов более высокого уровня.
· Система ввода – вывода. Состоит из группы компонентов, отвечающих за выполнение ввода – вывода на разнообразные устройства. В систему ввода – вывода входят следующие подкомпоненты:
· Диспетчер ввода – вывода. Реализует средства ввода – вывода, не зависящие от типа устройства, и устанавливает модель для ввода – вывода исполнительной системы NT.
· Файловые системы. Драйверы NT, принимающие запросы файлового ввода – вывода и транслирующие их в запросы, привязанные к конкретному устройству.
· Драйверы устройств исполнительной системы NТ. Низкоуровневые драйверы, напрямую работающие с оборудованием для записи вывода или считывания ввода с физических устройств или с сети.
· Диспетчер кэша. Повышает производительность файлового ввода – вывода, сохраняя информацию, считанную с диска последней, в системной памяти. Диспетчер кэша использует средство подкачки страниц диспетчера виртуальной памяти для автоматической записи информации на диск в фоновом режиме.
· Слой абстрагирования от оборудования (НАL). Помещает кодовую прослойку между исполнительной системой NТ и аппаратной платформой, на которой работает ОС. Скрывает аппаратно – зависимые детали, такие как интерфейсы ввода – вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того, чтобы обращаться к аппаратуре непосредственно, исполнительная система NТ сохраняет максимальную переносимость, обращаясь к функциям НАL, когда ей нужна платформенно – зависимая информация.
Список Литературы
1. Олифер В.Г. Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2001, 544 с.
2. Дейтел Г. Введение в операционные системы: В 2 т. / Пер. с англ. М.: Мир, 1987.
3. Петерсен Р. LINUX: руководство по операционной системе: В 2т.: Пер. с англ. –К.: Издательская группа BHV, 1998.
4. Хелен Кастер. Основы Windows NT и NTFS: Пер. с англ. М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.». 1996, 440 с.
ОГлавление
1. ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ. 3
Появление первых операционных систем.. 3
Появление мультипрограммных операционных систем.. 5
для мэйнфреймов. 5
Операционные системы и глобальные сети. 9
Операционные системы микрокомпьютеров и первые локальные сети. 10
Развитие операционных систем в 80-е годы.. 11
Особенности современного этапа развития ОС.. 15
История создания операционной системы UNIX.. 18
2. НАЗНАЧЕНИЕ И ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ. 23
Операционные системы для автономного компьютера. 23
ОС как виртуальная машина. 24
ОС как система управления ресурсами. 25
Функциональные компоненты операционной системы автономного компьютера 27
Управление процессами. 27
Управление памятью.. 29
Управление файлами и внешними устройствами. 30
Защита данных и администрирование. 32
Интерфейс прикладного программирования. 33
Пользовательский интерфейс. 34
Требования к современным операционным системам.. 35
3. КЛАССИФИКАЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ. 37
Особенности алгоритмов управления ресурсами. 37
Особенности аппаратных платформ.. 40
Особенности областей использования. 41
Особенности методов построения. 42
4. АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ. 44
Ядро и вспомогательные модули ОС.. 44
Ядро в привилегированном режиме. 46
Многослойная структура ОС.. 50
Аппаратная зависимость и переносимость ОС.. 55
Типовые средства аппаратной поддержки ОС.. 56
Машинно-зависимые компоненты ОС.. 58
Переносимость операционной системы.. 60
Микроядерная Архитектура. 61
Преимущества и недостатки микроядерной архитектуры.. 64
Совместимость и множественные прикладные среды.. 67
Двоичная совместимость и совместимость исходных текстов. 67
Трансляция библиотек. 69
Способы реализации прикладных программных сред. 71
Архитектура Windows NT.. 74
Защищенные подсистемы.. 74
Исполнительная подсистема. 76
Источник: cyberpedia.su
Понятие операционной среды
Операционная система выполняет функции управления вычислительными процессами в вычислительной системе, распределяет ресурсы вычислительной системы между различными вычислительными процессами и образует программную среду, в которой выполняются прикладные программы пользователей. Такая среда называется операционной.
Любая программа имеет дело с некоторыми исходными данными, которые она обрабатывает, и порождает в конечном итоге некоторые выходные данные, результаты вычислений. Очевидно, что в абсолютном большинстве случаев исходные данные попадают в оперативную память (с которой непосредственно работает процессор, выполняя вычисления по программе) с внешних (периферийных) устройств.
Аналогично и результаты вычислений, в конце концов, должны быть выведены на внешние устройства. Следует заметить, что программирование операций ввода/вывода относится, пожалуй, к наиболее сложным и трудоемким задачам. Дело в том, что при создании таких программ без использования современных систем программирования, как говорится, «по старинке», нужно знать не только архитектуру процессора (его состав, назначение основных регистров, систему команд процессора, форматы данных и т. п.), но и архитектуру подсистемы ввода/вывода (соответствующие интерфейсы, протоколы обмена данными, алгоритм работы контроллера устройства ввода/вывода и т. д.). Именно поэтому развитие системного программирования и самого системного программного обеспечения пошло по пути выделения наиболее часто встречающихся операций и создания для них соответствующих программных модулей, которые можно в дальнейшем использовать в большинстве вновь создаваемых программ.
Например, в далекие пятидесятые годы, на заре развития вычислительных систем, при разработке первых систем программирования прежде всего создавали программные модули для подсистемы ввода/вывода, а уже затем — вычисления часто встречающихся математических операций и функций. Благодаря этому при создании прикладных программ программисты могли просто обращаться к соответствующим функциям ввода/вывода и иным функциям и процедурам, что избавляло их от необходимости каждый раз создавать все программные компоненты «с нуля» и от необходимости знать во всех подробностях особенности работы контроллеров ввода/вывода и соответствующих интерфейсов.
Следующий шаг в автоматизации создания готовых к выполнению машинных двоичных программ заключался в том, что транслятор с алгоритмического языка более высокого уровня, нежели первые ассемблеры, уже сам мог подставить вместо высокоуровневого оператора типа READ или WRITE все необходимые вызовы к готовым библиотечным программным модулям. Состав и количество библиотек систем программирования постоянно увеличивались. В конечном итоге возникла ситуация, когда при создании двоичных машинных программ программисты могут вообще не знать многих деталей управления конкретными ресурсами вычислительной системы, а должны только обращаться к некоторой программной подсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Эта программная подсистема и есть операционная система (ОС), а набор ее функций, сервисов и правила обращения к ним как раз и образуют то базовое понятие, которое мы называем операционной средой. Таким образом, можно сказать, что термин операционная среда означает, прежде всего, соответствующие интерфейсы, необходимые программам и пользователям для обращения к ОС с целью получить определенные сервисы.
Можно спросить: а чем отличаются системные программные модули, реализующие основные системные функции, от тех программных модулей, что пишутся прикладными программистами? Ответ простой: тем, что эти модули, как правило, используются всеми прикладными программами. Поэтому нет особого смысла на этапе создания машинной двоичной программы (которую и исполняет процессор) присоединять соответствующие системные программные модули к телу программы. Выгоднее просто обращаться к этим программным модулям, указывая их адреса и передавая им необходимые параметры, поскольку они уже и так находятся в основной памяти, ибо нужны всем. Другими словами, эти основные системные программные модули входят в состав самой ОС.
Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что ОС в общем случае может поддерживать несколько операционных сред. Например, операционная система OS/2 Warp может выполнять следующие программы:
- так называемые «нативные» программы, созданные с учетом соответствующего «родного» 32-битового программного интерфейса этой ОС;
- 16-битовые программы, созданные для систем OS/2 первого поколения;
- 16-битовые приложения, разработанные для выполнения в операционной среде MS-DOS или PC DOS;
- 16-битовые приложения, созданные для операционной среды Windows 3.x;
- саму операционную оболочку Windows 3.x и уже в ней — созданные для нее программы.
Операционная среда может включать несколько интерфейсов: пользовательские и программные. Если говорить о пользовательских, то, например, система Linux
имеет для пользователя как интерфейсы командной строки (можно использовать различные «оболочки» — shell), интерфейс наподобие Norton Commander — Midnight Commander, так и графические интерфейсы — X-Window с различными менеджерами окон — KDE, Gnome и т. д. Если же говорить о программных интерфейсах, то в той же ОС Linux программы могут обращаться как к операционной системе за соответствующими сервисами и функциями, так и к графической подсистеме (если она используется). С точки зрения архитектуры процессора (и всего ПК в целом) двоичная программа, созданная для работы, в среде Linux, использует те же команды и форматы данных, что и программа, созданная для работы в среде Windows NT. Однако в первом случае мы имеем обращение к одной операционной среде, а во втором — к другой. И программа, созданная для Windows непосредственно, не будет выполняться в Linux; однако если в ОС Linux организовать полноценную операционную среду Windows, то наша Windows-программа сможет быть выполнена. Можно сказать, что операционная среда — это то системное программное окружение, в котором могут выполняться программы, созданные по правилам работы этой среды.
Источник: studopedia.org
Понятие операционной среды
Понятие операционного окружения, состав, назначение. Стандартные сервисные программы поддержки операционного окружения. Режим пользователя, режим супервизора.
Среди пользователей компьютеров, а тем более в среде компьютерных «профессионалов» не стихают споры о том, какая машина, какой текстовый процессор, какая бухгалтерская система лучше. Машины и программы устаревают, уходят в историю, а споры продолжаются на новом материале. Характерная черта сегодняшнего дня — объединение всего комплекса программного обеспечения в единую операционную среду, и споры приобрели новую форму: какая операционная среда самая лучшая? Конкурентов осталось не так много, и от того, к какому заключению придет большинство людей, зависит судьба крупнейших мировых корпораций, а, может быть, и пути развития цивилизации.
Что же такое операционная среда?
Ядро, конечно же, составляет операционная система. Современная операционная система управляет ресурсами компьютера: работой процессора, оперативной и дисковой памятью, внешними устройствами; задачами, работающими на машине; правами и возможностями пользователей и образует ту программную среду, в которой выполняются прикладные программы пользователей.
Такая среда называется операционной. В эту же среду включаются стандартные решения для наиболее распространенных задач: редактирование текстов и картинок, ведение электронных таблиц, управление базами данных, и прочее. Обеспечивается единый интерфейс для всех задач, как пользовательских, так и административных. Наконец, определяются способы взаимодействия с собой и друг с другом для прикладного программного обеспечения, разрабатываемого сторонними производителями.
Операционная среда — комплекс программного обеспечения, предоставляющего средства разработки и выполнения прикладных программ.
Операционная среда включает операционную систему, интерфейсы прикладных программ, прикладные программы, сетевые службы, базы данных и языки программирования.
При запуске прикладной программы она будет обращаться к операционной системе с соответствующими запросами на выполнение определенных действий, или функций. Эти функции операционная система выполняет, запуская специальные системные программные модули, входящие в ее состав.
При создании программ прикладные программисты могут вообще не знать многих деталей управления конкретными ресурсами вычислительной системы, а должны только обращаться к некоторой программной подсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Эта программная подсистема и есть операционная система, а набор ее функций и сервисов, а также правила обращения к ним как раз и образуют то базовое понятие, которое мы называем операционной средой. Таким образом, можно сказать, что термин «операционная среда» означает, прежде всего, соответствующие интерфейсы, необходимые программам и пользователям для обращения к управляющей (супервизорной) части операционной системы с целью получить определенные сервисы.
Источник: studopedia.su