Тема 6. Функции и классификация ОС




6.1. Функции операционных систем.

Операционная система предназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ. Как уже упоминалось, первые ОС представляли собой простые исполнительные системы, выполняющие минимальный объем операций по управлению работой ЭВМ.

По современным представлениям, ОС должна уметь делать следующее:

1.Обеспечивать загрузку пользовательских программ в оперативную память и их исполнение.

2.Обеспечивать работу с устройствами долговременной памяти.

3.Предоставлять стандартный доступ к различным устройствам ввода/вывода.

4.Предоставлять удобный пользовательский интерфейс.

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа - дисковая операционная система MS DOS.

Более развитые ОС предоставляют также следующие возможности:

5.Параллельное (псевдопараллельное для однопроцессорных ЭВМ) исполнение нескольких задач.

6.Распределение ресурсов компьютера между задачами.

7.Организация взаимодействия задач друг с другом.

8.Организация межмашинного (сетевого) взаимодействия и разделения ресурсов.

9.Защита системных ресурсов, данных и программ пользователя, исполняющихся процессов и самой себя от ошибочных и зловредных действий пользователей и их программ.

Таким образом, современные ОС обеспечивают техническое функционирование ЭВМ, включая управление взаимодействием различных устройств и программ, прием заданий на вы­полнение вычислений, распределение ресурсов между программами пользователей, диагностику неисправно­стей, связь с оператором и т.д. В определенном смысле операционную систему можно считать непосредствен­ным продолжением и расширением аппаратной части ЭВМ.

В секторе программного обеспечения и операционных систем ведущее положение занимают фирмы IBM, Microsoft, UNISYS, Novell. Различные ОС могут быть классифицированы как по сфере применения, так и по принципам построения. Например, можно выделять ОС общего назначения (для офисного и домашнего применения) и специализированные ОС (реального времени, сетевые или серверные, встраиваемые и т.д.).

Примеры ОС: OS/2, AIX (IBM); UNIX во всех модификациях; Linux во всех модификациях; MS DOS и Windows во всех модификациях (Microsoft); UNIX Ware и SCO Open Desktop(Novell); Solaris 2.1 (Sun Soft) и пр.

6.2. Функциональная классификация ОС

6.2.1. Дисковые ОС

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

Дисковая операционная система MS DOS для IBM PC-совместимых машин является прямым наследником одного из таких резидентных мониторов. Существование систем такого класса обусловлено их простотой и тем, что они потребляют мало ресурсов. Для машин класса Spectrum это более чем критичные параметры. Еще одна причина, по которой такие системы могут использоваться даже на довольно мощных машинах - требование программной совместимости с ранними моделями того же семейства компьютеров.

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

6.2.2. Полные ОС

К полным ОС относятся системы, берущие на себя выполнение всех вышеперечисленных функций. Разделение на ОС и ДОС идет, по-видимому, от систем IBM DOS/360 и OS/360 для больших компьютеров этой фирмы, клоны которых известны у нас в стране под названием ЕС ЭВМ серии 10XX. Обычно такие системы используют встроенные в архитектуру процессора средства защиты и виртуализации памяти. К этому классу относятся такие широко распространенные системы, как VAX/VMS, системы семейства UNIX и OS/2, хотя последняя (в реализации Warp) не обеспечивает одновременной работы нескольких пользователей и защиты пользователей друг от друга.

6.2.3. Системы виртуальных машин

Системы виртуальных машин допускают одновременную работу нескольких программ или даже разных ОС, но создают при этом для каждой из них иллюзию, что машина находится в ее монопольном распоряжении. Примером такой системы является IBM VM, применявшаяся в СССР под названием СВМ (Система Виртуальных Машин) и работавшая на мэйнфреймах серии ЕС ЭВМ. Аналогичным образом работают DesqView и другие мультизадачники (multitaskers) для MS DOS.

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

В качестве примеров СВМ можно также привести ОС Windows 95, ВМ Java и PowerVM (IBM).

PowerVM работает на многоядерных процессорах POWER6 (Power System) серверов pSeries. Основной элемент PowerVM – гипервизор, управляющий виртуальными машинами, каждой из которых предоставляется динамически перераспределяемый набор процессоров, называемый разделом. Гипервизор PowerVM виртуализирует и распределяет между разделами сетевые каналы Ethernet, каналы SCSI, к которым подсоединены жесткие диски, и ресурсы ввода-вывода сервера.

Существуют также специальные программные пакеты для создания виртуальных машин, например: Vmware Workstation (www.vmware.com) и Virtual PC (www.microsoft.com).

6.2.4. Системы реального времени

Системы реального времени предназначенны для разработки и эксплуатации приложений реального времени. Это программы, управляющие технологическим оборудованием, часто с очень жесткими ограничениями по времени. Примером такого приложения может быть программа бортового компьютера крылатой ракеты, системы управления ускорителем элементарных частиц или промышленным оборудованием. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария: спутник выйдет из зоны видимости, экспериментальные данные, поступающие с датчиков, будут потеряны, толщина гальванического покрытия не будет соответствовать норме. Таким образом, критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы – реактивностью. Такие системы обязаны поддерживать мультизадачность, гарантированное время реакции на внешнее событие, простой доступ к таймеру и внешним устройствам. ОС РВ могут по другим признакам относиться как к классу ДОС (RT-11), так и к полным ОС (OS-9, QNX). Часто такие системы (например, VxWorks) рассчитаны на работу совместно с управляющей host-машиной, исполняющей ``нормальную'' операционную систему. Системы качественного multimedia должны обеспечивать синхронизацию с такой же или более высокой точностью, что мало отличается от систем мягкого реального времени. Большинство современных ОС общего назначения непригодно для задач РВ.

6.2.5. Кросс-системы

Это системы полностью ориентированы на работу с host-машиной. Чаще всего они используются для написания и отладки кода, позднее прошиваемого в ПЗУ, например, системы программирования микроконтроллеров. Такие системы, как правило, включают в себя набор компиляторов и ассемблеров, работающих на host-системе (реже - загружаемых с host-машины в целевую систему), библиотеки, выполняющие большую часть функций ОС при работе программы (но не загрузку этой ОС!), и средства отладки.

 

6.3. Архитектура ОС

6.3.1. Монолитные ОС

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

 

6.3.2. Уровневые ОС

В задачах автоматизации широкое распро­странение в каче­стве ОСРВ получили уровне­вые ОС (рис. 2). При­мером такой ОС является хорошо из­вестная система MS-DOS. В систе­мах этого класса прикладные приложения могли получить доступ к аппа­ратуре не только посредством ядра системы или ее резидент­ных сервисов, но и непосредственно. Каждый уровень обеспечивает сервис для верхних уровней и изолирует их от нижних. По та­кому принципу строи­лись ОС в течение мно­гих лет.

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

 

6.2.3. ОС на основе микроядра

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

Микроядро – маленькая резидентная про­грамма, выполняющая минимум функций (обработка преры­ваний, диспетчеризация, управление сообще­ниями). Все остальные функции ОС реализованы систем­ными процессами, мало отличающимися по ста­тусу от прикладных. Микроядро получило свое название не только из-за малого количества функций, но и из-за размера - около 10 Кбайт кода в реализации QNX.

В системе на основе микроядра системные и пользовательские процессы планируются по одинаковым принципам и ис­пользуют одни и те же системные вызовы для обмена данными и синхронизации.

Микроядро упрощает структурирование модулей ОС, т.к. все модули: диспетчер памяти, файловые сис­темы, драйверы устройств и т.д. должны взаимодействовать друг с другом с использованием хорошо опре­деленного интерфейса, в полном соответствии с концепциями структурного и модульного программирования, что облегчает разработку ОС.

Дополнительно можно отметить следующие:

-Повышается надежность ОС, т.к. каждый менеджер являет­ся, по сути, самостоятельным приложением, и его легче отладить и отследить ошибки.

-Система лучше масштабируется, поскольку ненужные сервисы могут быть исключены из системы без ущерба для ее работоспособности.

-Повышается отказоустойчивость системы, т. к. "завис­ший" сервис может быть перезапущен без перезагрузки системы.

6.4. Концепция открытых систем.

Идея открытых ОС исходит из того, что для разных задач необходимы разные системы – как специализированные, так и системы общего назначения.Тем не менее открытые ОС должны обеспечивать:

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

-Унификация форматов данных в ФС.

-Мобильность прикладного ПО между платформами, хотя бы путем перекомпиляции исходных текстов.

-По возможности однородный пользовательский интерфейс.

Эти задачи предполагается решать при помощи стандартов открытых ОС - стандартных сетевых протоколов, стандартных форматов данных, стандартизации программных интерфейсов - API (Application Program Interface - интерфейс прикладных программ) и, наконец, стандартизации пользовательского интерфейса.

6.4.1. Стандартный сетевой протокол

В качестве стандартного сетевого протокола предлагалась семиуровневая модель OSI ISO, но прежде, чем на основе этой модели было разработано что-то полезное, получило широкое распространение семейство протоколов TCP/IP, поэтому сегодня TCP/IP является вполне приемлемым основанием для открытых систем.

6.4.2. Стандартные форматы данных

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

 

6.4.3. Стандартные программные интерфейсы

Мобильность программ между для ОС различных типов могут обеспечить стандарты интерфейса между пользовательской программой и ОС. Одним из первых таких стандартов был стандарт библиотек ANSI C. Он основан на системных вызовах ОС UNIX, и некоторые функции MS DOS для работы с файлами тоже достаточно близки к этому стандарту. В конце 80-х - начале 90-х гг. ХХ века в ISO был создан ряд комитетов, принимавших стандарты для различных сфер деятельности (сетевое взаимодействие, работа в реальном времени и т.д.) – стандарты POSIX. Большинство производителей ОС объявили, что их системы, такие как VMS 5.4 и Windows NT, поддерживают этог стандарт. К сожалению, это не сделало Windows открытой ОС (например, вследствие символьных кодировок и сетевого обеспечения).

Существуют и другие способы обеспечения мобильности прикладного ПО. Они предусматривают создание зависимых от платформ оболочек, выполняющих один и тот же исходный код на разных ЭВМ и под управлением разных ОС. Например, такая оболочка – JVM, встроена во все современные браузеры Интернет, что позволяет апплетам Java одинаково выполняться на всех платформах.

Близкий метод использован в оболочке Microsoft.NET, встраиваемой в современные версии ОС Windows. Исходные тексты на нескольких языках (VB, C#, JScript) транслируются в унифицированный и независимый от исходного языка программирования промежуточный код, выполняемый под управлением.NET. Однако, промышленных реализаций.NET для не-Intel платформ пока нет.

6.4.4. Однородный пользовательский интерфейс

Однородный пользовательский интерфейс достигнут лишь на самом высоком концептуальном уровне типа оконной системы (X-Window (Motif) UNIX, MS Windows).

6.5. Характеристики ОС

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

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

-Одно- и многопроцессорные (поддержка архитектур с несколькими ЦП);

-Одно- и многопользовательские (обеспечиваеющие одновременную работу нескольких пользователей и их защиту друг от друга);

-Одно- и многоплатформенные, т.е. переносимые на другие типы компьютеров;

-Несетевые и сетевые, обеспечивающие работу в локальной вычислительной сети ЭВМ. Сетевая OC предоставляет пользователям различные виды сетевых служб, поддерживает работу в абонентских системах. Сетевые ОС используют архитектуру клиент - сервер или одно-ранговую архитектуру. Вначале сетевые ОС поддерживали лишь локальные вычислительные сети (ЛВС), сейчас они распространяются на ассоциации локальных сетей.

6.5.1. Мультизадачность

По числу одновременно выполняемых задач операционные системы могут быть разделены на: однозадачные (MS-DOS, СР/М, MSX) и мультизадачные (OC EC, OS/2, UNIX, Windows). Вычислительные системы первого поколения были полностью однозадачными. Программист набирал свою программу тумблерами на консоли, а позже - вводил ее с пакета перфокарт. Все это время система была в его личном распоряжении, то есть в некотором смысле, являлась персональным компьютером. Однозадачные ОС в основном выполняют функцию предоставления пользователю всех ресурсов ЭВМ. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.

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

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

 

6.5.2. Многопотоковость

Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одного процесса. При этом процесс становится единицей распределения всех ресурсов ЭВМ (ОП, файлы, порты в/в,…), за исключением времени ЦП, многопотоковая ОС разделяет процессорное время не между процессами, а между их отдельными ветвями (потоками). Поддержка многопотоковости позволяет строить гибкие прикладные задачи (что требуется для предметной области АСУ), обеспечивать асинхронный в/в и пр.

6.5.3. Вытесняющая и невытесняющая мультизадачность

Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации мультизадачности можно выделить две группы алгоритмов: невытесняющая мультизадачность (NetWare, Windows 3.x) и вытесняющая мультизадачность (Windows NT, OS/2, UNIX). Основным различием между вытесняющим и невытесняющим вариантами мультизадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей мультизадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. Этот метод относительно просто реализуем и достаточно эффективен, так как позволяет выделить большую часть процессорного времени для работы самих процессов и до минимума сократить затраты на переключение контекста. Однако при этом возникает возможность полного захвата процессора одним процессом, который вследствие каких-либо причин (например, из-за ошибки в программе) зацикливается и не может передать управление другому процессу. В такой ситуации спасает только перезагрузка всей вычислительной системы.

При вытесняющей мультизадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.

6.5.4. Многопроцессорная обработка

Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование обеспечивает реальный параллелизм выполнения разных задач, но приводит к усложнению всех алгоритмов управления ресурсами. В наши дни введение в ОС функций поддержки многопроцессорной обработки данных становится общепринятым. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell, Mach, Digital UNIX. Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС (SMP) полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами. SMP не исключает аффинного планирования, когда для отдельных задач могут существовать предпочтительные процессоры.

Некоторые многопроцессорные ОС (МВК Эльбрус) могут организовывать параллельное выполнение не только задач, но отдельных ветвей алгоритма одной задачи, например, векторные операции.

6.5.5. Поддержка многопользовательского режима.

По числу одновременно работающих пользователей ОС делятся на: однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2) и многопользовательские (UNIX, Windows NT). Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая мультизадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.

6.5.6. Разрядность ОС

8, 16, 32 и 64-разрядные ОС отличаются разрядностью данных и адресуемых областей памяти.

======================================================================================

ВОПРОСЫ:

1.Функциональное назначение ОС

2.Дисковые операционные системы

3.Полные операционные системы

4.Системы виртуальных машин

5.ОС реального времени

6.Кросс-системы

7.Архитектура монолитных ОС

8.Архитектура уровневыхОС

9.Архитектура микроядерных ОС

10. Открытые системы

11. Мультизадачные ОС

12. Многопотоковые ОС

13. Вытесняющая и невытесняющая мультизадачность

14. Многопроцессорные ОС

15. Многопользовательские ОС

16. Понятие разрядности ОС

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: