Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 5. Операционные системы, среды и оболочк...docx
Скачиваний:
41
Добавлен:
23.09.2019
Размер:
416.36 Кб
Скачать

Современный этап развития ос

В 90е годы практически все ОС стали сетевыми, эти функции включались в ядро. Полная совместимость с основными технологиями локальных и глобальных сетей. Особое внимание в течении всего последнего десятилетия уделялось корпоративным сетевым ОС. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. Для таких сетей важно наличие средств централизованного администрирования и управления. Для них так же важно в силу их гетерогенности наличие и следование множеству стандартов. Так же на современном этапе развития ОС на первый план вышли средства обеспечения безопасности. Огромное значение имеет многоплатформенность (переносимость). Повышается удобство работы человека с компьютером

Функции ОС.

1. ОС как посредник. Заключается в предоставлении интерфейсов:

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

-между программным и аппаратным обеспечением

- между разными видами программного обеспечения

2. Обеспечение автоматического запуска.

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

4.Обслуживание файловой структуры. К ним относятся: создание файлов, создание каталогов, навигация по файловой структуре; переименование файлов и каталогов; копирование и перемещение файлов и каталогов; управление атрибутами файлов.

5. Управление приложениями. Многозадачные ОС управляют распределением ресурсов между задачами и обеспечивают:

- возможность одновременной или поочередной работы приложений;

- возможность обмена данными между приложениями;

- возможность совместного использования ресурсов несколькими приложениями.

6.Взаимодействие с аппаратным обеспечением. Управление взаимодействием прикладных программ с драйверами.

7. Обслуживание компьютера.

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

Разновидности ОС.

На сегодняшний момент в мире насчитывается много видов ОС. Такое разнообразие объясняется различными целями и задачами, которые ставили перед собой разработчики. Кроме того, каждая ОС, как правило, принадлежит к какому-то определённому семейству, которое развивалось уже продолжительное время.Основные операционные системы на сегодняшний момент это Windows и Linux, именно они чаще всего встречаются на ПК. Также стоит отметить MacOS, использующуюся на компьютерах компании Apple.В последние годы с развитием мобильных устройств и повышения их возможностей мобильные платформы становятся более популярными и актуальными для современных пользователей.

3. Обобщенная модель иерархической ос(13 уровней).

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

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

Название

Объекты

Операции

1

электронные схемы

регистры, шлюзы и т.д.

очистка, пересылка, активация

2

набор команд

стек вычислений, интерпретатор команд, данные

пересылка, сложение, вычитание, ветвление

3

процедуры

Процедуры, стеки вызова

вызов, возврат

4

прерывания

процедуры обработки прерываний

вызов, маскирование, повтор

5

примитивные процессы

примитивные процессы, семафоры, список процессов

приостановка, возобновление выполнения, ожидание, передача сигнала

6

локальная память

блоки данных, каналы, устройства

чтение, запись, распределение, выборка

7

виртуальная память

сегменты, страницы

чтение, запись, выборка

8

коммуникации

конвейеры

создание, удаление, открытие, закрытие, чтение, запись

9

файловая система

файлы

создание, удаление, открытие, закрытие, чтение, запись

10

устройства

внешние устройства

открытие, закрытие, чтение, запись

11

каталоги

каталоги

создание, подключение, поиск

12

Процессы пользователя

процессы пользователя

завершение, приостановка, возобновление процесса

13

оболочка

мреда программирования пользователя

инструкции командного языка оболочки

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

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

- Третий уровень абстракции вводит понятие программы, а также опе­рации вызова и возврата.

- Четвертый уровень определяет прерывания, которые заставляют процессор сохранить текущий контекст и выполнить подпрограмму обработки прерывания.

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

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

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

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

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

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

- На десятом уровне абстракции предоставляется доступ к внешним устройствам с помощью стандартных интерфейсов.

- Одиннадцатый уровень поддерживает связь между внешними и внутренними идентифика­торами системных ресурсов и объектов. Внешний идентификатор представляет собой имя, а внутренний идентификатор – это адрес, используемый системой для определения объекта и управления им. Эта связь поддерживается с помощью системных таблиц, которые включают в себя не только взаимное отображение внешних и внутренних идентификаторов, но и такие характеристики, как, например, права доступа.

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

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

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

4. Принципы построения ОС: принцип модульности, принцип независимости программ от внешних устройств, принцип совместимости, принцип открытой и наращиваемой ОС, принцип мобильности, принципы обеспечения безопасности (Orange Book).

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

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

Принцип независимости программ от внешних устройств.

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

Принцип совместимости. Суть принципа – в обеспечении способности ОС выполнять программы, написанные для других ОС или под другие аппаратные платформы. Различают совместимость на уровне исходных текстов (текстовая совместимость) и на уровне кодов (двоичная совместимость). Первая требует наличия транслятора, совместимость на уровне библиотек и системных вызовов. При этом требуется повторная компиляция исходных текстов в новый исполняемый модуль. Вторая требует совместимость на уровне архитектуры процессоров и систем команд. Для реализации такой совместимости используются эмуляторы (прикладные среды). Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Одним из средств обеспечения совместимости программных и пользовательских интерфейсов является соответствие стан-дартам POSIX, использование которого позволяет создавать программы в стиле UNIX, легко переносимых впоследствии из одной системы в другую.

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

Принцип мобильности. Операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера, иначе говоря, архитектуру вычислительной системы) одного типа на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же. Написание переносимой ОС аналогично написанию любого переносимого кода — нужно следовать некоторым правилам. Во-первых, большая часть ОС должна быть написана на языке, который имеется на всех системах, на которые планируется в дальнейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой. Во-вторых, важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование регистрами и другими аппаратными средствами. Наконец, если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно-зависимую структуру в программно задаваемые данные абстрактного типа. Другие модули системы будут работать с этими данными, а не с аппаратурой, используя набор некоторых функций. Когда ОС переносится, то изменяются только эти данные и функции, которые ими манипулируют. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.

Принцип безопасности вычислений Правила безопасности защищают ресурсы одного пользователя от других и устанавливают квоты на ресурсы для предотвращения захвата всех ресурсов одним пользователем. Основы стандартов в области безопасности вычислений были заложены в документе под названием «Критерии оценки наземных компьютерных систем» и изданном Национальным центром компьютерной безопасности США (NCSC – National Computer Security Center) в 1983 г. В соответствии с ним безопасной считается система, посредством специальных механизмов контролирующая доступ к информации так, что доступ к ней получают только лица с соответствующими полномочиями или процессы, выполняющиеся от их имени. Определено 4 уровня безопасности А (высший) – D (низший). При этом в класс D попадают системы, у которых выявлено несоответствие всем трём высшим классам. Класс С делится на два уровня: С1 обеспечивает защиту данных от ошибок пользователя, но не от злоумышленников, а С2 защищает данные в обоих ситуациях. На уровне С2 должны присутствовать:

– секретность входа (идентифицируя пользователей по уникальному имени и паролю);

– контроль доступа (информирование владельца данных о лицах, имеющих доступ к данным и их правах на пользование ими);

– наблюдение и учет за ситуацией с безопасностью (фиксация попыток получить доступ, создать или удалить системные реестры);

– защита памяти (удаление содержимого памяти предыдущего сеанса работы перед началом нового).

Системы уровня В реализуют контроль доступа (каждый пользователь имеет рейтинг защиты и доступ только в соответствии с этим рейтингом). Эти системы защищены от ошибочного поведения пользователя. Уровень А требует дополнительно формального, математически доказанного соответствия системы требованиям безопасности. Однако А-уровень занимает своими управляющими механизмами до 90% процессорного времени. Более безопасные системы не только снижают продуктивность, но и ограничивают число доступных приложений. Различные коммерческие структуры, например банки, поддерживают безопасность своих систем, как правило на уровне С2.