ОС реального времени. Классификация операционных систем. Так, в зависимости от алгоритма управления процессором, операционные системы делятся на

Для Windows Phone 25.08.2019
Для Windows Phone

Операционные системы классифицируются по:

Количеству одновременно работающих пользователей: однопользовательские, многопользовательские;

Числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные;

Количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные;

Разрядности кода ОС: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные;

Типу интерфейса: командные (текстовые) и объектно-ориентированные (графические);

Типу доступа пользователя к ЭВМ: с пакетной обработкой, с разделением времени, реального времени;

Типу использования ресурсов: сетевые, локальные.

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

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

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

Четвертый признак подразделяет операционные системы на 8-, 16-, 32- и 64-разрядные. При этом подразумевается, что разрядность операционной системы не может превышать разрядности процессора.

В соответствии с пятым признаком ОС по типу пользовательского интерфейса делятся на объектно-ориентированные (как правило, с графическим интерфейсом) и командные (с текстовым интерфейсом). Согласно шестому признаку ОС подразделяются на системы:

Пакетной обработки, в которых из программ, подлежащих выполнению, формируется пакет (набор) заданий, вводимых в ЭВМ и выполняемых в порядке очередности с возможным учетом приоритетности;

Разделения времени (TSR), обеспечивающих одновременный диалоговый (интерактивный) режим доступа к ЭВМ нескольких пользователей на разных терминалах, которым по очереди выделяются ресурсы машины, что координируется операционной системой в соответствии с заданной дисциплиной обслуживания;

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

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

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

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

Увеличение пропускной способности ЭВМ, т.е. увеличение общего объема работы, выполняемой ЭВМ в единицу времени;

Уменьшение времени реакции системы, т.е. сокращение интервала времени между моментами поступления заданий в ЭВМ и моментами времени получения результатов;

Контроль работоспособности технических и программных средств;

Помощь пользователям и операторам при использовании ими технических и программных средств, обеспечения их работы;

Управление программами и данными в ходе вычислений;

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

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

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

Интерфейса между пользователем и программно-аппаратными средствами ком­пьютера (интерфейс пользователя);

Интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс);

Интерфейса между разными видами программного обеспечения (программный интерфейс).

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

Основные критерии подхода к выбору операционной системы:

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

Чтобы выбрать ту или иную ОС, необходимо знать:

На каких аппаратных платформах и с какой скоростью работает ОС;

Какое периферийное аппаратное обеспечение ОС поддерживает;

Как полно удовлетворяет ОС потребности пользователя, то есть каковы функции системы;

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

Существуют ли информативные подсказки, встроенные справочники и т. д.;

Какова надежность системы, то есть ее устойчивость к ошибкам пользователя, отказам оборудования и т. д.;

Какие возможности предоставляет ОС для организации сетей;

Обеспечивает ли ОС совместимость с другими операционными системами;

Какие инструментальные средства имеет ОС для разработки прикладных программ;

Осуществляется ли в ОС поддержка различных национальных языков;

Какие известные пакеты прикладных программ можно использовать при работе с данной системой;

Как осуществляется в ОС защита информации и самой системы.

Методы декомпозиции операционных систем (монолитная, модульная, микроядерная).

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

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

Типы архитектур ядер операционных систем:

Монолитное ядро

Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.

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

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

Недостатки: поскольку все ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

Примеры: традиционные ядра UNIX(такие как BSD), Linux; ядро MS-DOS.

Модульное ядро

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

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

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

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

Примеры: семейство ОС GNU/Linux.

Микроядро

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

Достоинства: устойчивость к сбоям оборудования, ошибкам в компонентах системы.

Недостатки: передача данных между процессами требует накладных расходов.

Примеры: Symbian OS; Mach, используемый в GNU/Hurd и Mac OS X; Windows CE; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS.

Интерфейс прикладного программирования (англ. Application Programming Interface, API [эй-пи-ай]; по-русски чаще произносят [апи́]) - набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой.

API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована. Если программу (модуль, библиотеку) рассматривать как черный ящик, то API - это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дергать.

Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию - высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов. По такому принципу построены протоколы передачи данных по Internet. Стандартный протокол Internet (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи пакетов бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню.

Управление процессами

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

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

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

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

Рассмотрим содержание и применение этой модели.

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

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

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

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

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

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

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

Процессы

Рис. 7.2. Нижний уровень ОС, отвечающий за прерывание и планирование

Процесс - выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс - это непосредственное выполнение этих инструкций.

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

Жизнь процесса можно теоретически разбить на несколько состояний, описывающих процесс. Полный набор состояний процесса содержится в следующем перечне (рис. 7.3.):

1) Процесс выполняется в режиме задачи.

2) Процесс выполняется в режиме ядра.

3) Процесс не выполняется, но готов к запуску под управлением ядра.

4) Процесс приостановлен и находится в оперативной памяти.

5) Процесс готов к запуску, но программа подкачки (нулевой процесс) должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра.

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

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

8) Процесс вновь создан и находится в переходном состоянии; процесс существует, но не готов к выполнению, хотя и не приостановлен. Это состояние является начальным состоянием всех процессов, кроме нулевого.

9) Процесс вызывает системную функцию exit и прекращает существование. Однако, после него осталась запись, содержащая код выхода, и некоторая хронометрическая статистика, собираемая родительским процессом. Это состояние является последним состоянием процесса.

Для описания состояний процессов используется несколько моделей. Самая простая модель - это модель трех состояний . Модель состоит из:

1. состояния выполнения

2. состояния ожидания

3. состояния готовности

Рисунок 7.3. Диаграмма переходов процесса из состояния в состояние

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

Файловые системы

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

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

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

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

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

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

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

Иерархии процессов и файлов организованы в виде деревьев (рис. 7.3). Иерархия процессов обычно не очень глубока, в ней ред­ко бывает больше трех уровней, тогда как файловая структура дос­таточно часто имеет четыре, пять и даже больше уровней в глубину.

Рис. 7.3. Дерево каталогов

Иерархия процессов обычно живет, как правило, несколько минут, иерархия каталогов может существовать годами.

Каждый файл в иерархии каталогов можно определить, задав его имя пути, называемое также полным именем файла. Путь начинает­ся из вершины структуры каталогов, называемой корневым катало­гом. Абсолютное имя пути состоит из списка каталогов, кото­рые нужно пройти от корневого каталога к файлу, с разделением отдельных компонентов. Отдельные компоненты в ОС UNIX разде­ляются косой чертой /, а в MS-DOS и Windows - обратной косой чертой \.

Организация файловой системы

Файловая система характеризует способ хранения и поиска ин­формации на внешнем носителе - жестком диске.

Данные в ПК размещены по иерархическому принципу: на верхнем уровне - логический диск, на втором уровне - папки (ка­талоги), на третьем - файлы/папки. Логический диск - это логическая единица жесткого диска ПК. Разметка жесткого диска осуществляется специальной программой. Количество и размер логических дисков определяются пользовате­лем ПК. Традиционно дисководы для гибких дисков носят название А: и В:. Названия логических дисков винчестера начинаются с С:, D:, Е: и т. д. На диске С: обычно устанавливаются и хранятся систем­ные программы и файлы, а начиная с диска D: - размещается лич­ная информация пользователя.

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

Файл - это поименованная область на носителе информации (диске), содержащая данные. Имя файла определяется по опреде­ленным законам и состоит из 2-х частей: собственно имени и расши­рения (типа). Имя файла может содержать русские и латинские буквы, цифры и некоторые знаки (подчеркивание, пробел, дефис, #, $, ...), длина имени не более 255 символов. Некоторые знаки запрещены для ис­пользования в имени -*,?,/, \ и др., поскольку за ними закреплены в системе определенные функции. Расширение (тип) файла может отсутствовать, но его наличие очень полезно, поскольку позволяет пользователю узнать, какого типа информация находится в файле (.txt - текстовый файл, .doc - документ, . bmp - картинка и т.п.), а операционная система может определить, с помощью какого приложения (программы) можно этот файл прочитать.

Расширения.ехе, .com, .bat определяют исполняемые файлы, файлы, внутри которых находится информация, «понятная» ПК на внутреннем языке. Это расширения файлов-программ (приложений).

Для группировки файлов в группы с целью их поиска использу­ются шаблоны имен. В них могут использоваться определенные символы - символы шаблонов. К ним относятся:

* - обозначает любое количество любых символов;

Любой один символ.

Рассмотрим несколько примеров (шаблонов):

*.txt - все файлы с расширением txt;

А*.ехе - исполняемые файлы, начинающиеся на А;

K*.doc - файлы со второй буквой К в названии, сделанные в программе Word.

Небольшой файл (до 1 Кб), содер­жащий строку адреса файла, называет­ся ярлыком.

Путь (адрес) файла - это его место­положение в файловой системе. На­пример, для случая на рис. 7.4, путь к файлу file.txt будет таким:

D:\моя\задания\file.tхt

Рис. 7.4. Фрагмент файловой структуры

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

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

Операционные системы MS-DOS, OS/2, Windows 95 и другие используют файловую систему на основе таблиц размещения файлов (FAT-таблицы), состоящих из 16-разрядных полей. Такая файловая система называется FAT16 . Она позволяет разместить в FAT -таблицах не более 65 536 записей (2 16) о местоположении единиц хранения данных. Для дисков объемом от 1 до 2 Гбайт длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень маленький) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. Даже если файл достаточно велик и располагается в нескольких кластерах, все равно в его конце образуется некий остаток, нерационально расходующий целый кластер.

Для жестких дисков, объем которых приближается к 2 Гбайт, потери, связанные с неэффективностью этой файловой системы, весьма значительны и могут составлять от 25% до 40% полной емкости диска, в зависимости от среднего размера хранящихся файлов. С дисками же размером более 2 Гбайт файловая система FAT16 вообще работать не может.

Начиная с Windows 98 операционные системы семейства Windows (Windows 98, Windows Me, Windows2000, WindowsXP) поддерживают более совершенную версию файловой системы на основе FAТ -таблиц - FAT32 с 32-разрядными полями в таблице размещения файлов. Для дисков размером до 8 Гбайт эта система обеспечивает размер кластера 4 Кбайт (8 секторов).

Операционные системы Windows NT и Windows XP способны поддерживать совершенно другую файловую систему - NTFS . В ней хранение файлов организовано иначе - служебная информация хранится в главной таблице файлов (MFT). В системе NTFS размер кластера не зависит от размера диска, и, потенциально, для очень больших дисков эта система должна работать эффективнее, чем FAT32. Однако сучетом типичных характеристик современных компьютеров можно говорить о том что в настоящее время эффективность FAT32 и NTFS примерно одинакова.

Обслуживание файловой структуры

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

Создание файлов и присвоение им имен;

Создание каталогов (папок) и присвоение им имен;

Переименование файлов и каталогов (папок);

Копирование и перемещение файлов между дисками компьютера и между каталогами (папками) одного диска;

Удаление файлов и каталогов (папок);

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

Управление атрибутами файлов.

Сравнение файловых систем Microsoft Windows.

Под управлением MS Win2000 возможно использование файло­вых систем FAT16, FAT32, NTFS или их комбинаций. Цифры в на­звании файловых систем - FAT16 и FAT32 - указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом. Так, в FAT16 применяется 16-битная адреса­ция и, соответственно, возможно использование до 2 16 адресов. В Windows 2000 первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому в FAT32 число адресов достигает 2 28 .

Среди преимуществ FAT16 можно отметить следующие:

Файловая система поддерживается ОС MS-DOS, Windows 95, Windows 98, Windows NT, Windows 2000, а также некоторыми ОС UNIX;

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

При возникновении проблем с загрузкой с HDD система может быть загружена с системной дискеты;

Файловая система достаточно эффективна для томов объемом менее 256 Мб.

К недостаткам FAT16 можно отнести:

В FAT 16 не поддерживается встроенная защита файлов и их сжа­тие.

Среди преимуществ FAT32 важно отметить следующие:

Выделение дискового пространства выполняется более эффектив­но, особенно для дисков большого объема;

Корневой каталог в FAT32 представляет собой обычную цепочку кластеров и может находиться в любом месте диска, благодаря этому FAT32 не накладывает никаких ограничений на число эле­ментов в корневом каталоге;

За счет использования кластеров меньшего размера занятое дис­ковое пространство на 10-15 % меньше, чем под FAT16.

FAT32 является более надежной файловой системой, в частно­сти, она поддерживает возможность перемещения корневого ка­талога и использование резервной копии FAT.

Основные недостатки FAT32:

Размер тома под Win2000 ограничен 32 Гб;

Тома недоступны из других ОС - только из Win95 OSR2 и Win98;

Не поддерживается резервная копия загрузочного сектора;

Не поддерживается встроенная защита файлов и их сжатие. При работе в Windows 2000 рекомендуется отформатировать все разделы HDD под NTFS, за исключением тех конфигураций, когда используется несколько ОС (кроме Windows 2000 и Windows NT).

Применение NTFS вместо FAT позволяет использовать функции, доступные в NTFS. К ним, в частности, относятся:

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

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

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

Универсальные ОС рассчитаны на решение любых задач пользователœей, но, как правило, форма эксплуатации вычислительной системы может предъявлять особые требования к ОС, ᴛ.ᴇ. к элементам ее специализации.

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

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

Поддержка многозадачности (многопрограммности). По числу одновременно выполняемых задач ОС делятся на 2 класса: однопрограммные (однозадачные) – к примеру, MS-DOS, MSX, и многопрограммные (многозадачные) – к примеру, ОС ЕС ЭВМ, OS/360, OS/2, UNIX, Windows разных версий.

ü Однопрограммные ОС предоставляют пользователю виртуальную машину, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Οʜᴎ также имеют средства управления файлами, периферийными устройствами и средства общения с пользователœем.

ü Многозадачные ОС, кроме того, управляют разделœением совместно используемых ресурсов (процессор, память, файлы и т.д.), это позволяет значительно повысить эффективность вычислительной системы.

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

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

Виды многопрограммной работы. Специфику ОС во многом определяет способ распределœения времени между несколькими одновременно существующими в системе процессами (или потоками). По этому признаку можно выделить 2 группы алгоритмов: не вытесняющая многопрограммность (Windows3.x, NetWare) и вытесняющая многопрограммность (Windows 2000/2003/XP, OS/2, Unix).

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

Многопроцессорная обработка. Важное свойство ОС – отсутствие или наличие средств поддержки многопроцессорной обработки. По этому признаку можно выделить ОС без поддержки мультипроцессирования (Windows 3.x, Windows 95) и с поддержкой мультипроцессирования (Solaris, OS/2, UNIX, Windows NT/2000/2003/XP).

Многопроцессорные ОС классифицируются по способу организации вычислительного процесса на асимметричные ОС (выполняются на одном процессоре, распределяя прикладные задачи по остальным процессорам) и симметричные ОС (децентрализованная система).

4. По области использования и форме эксплуатации. Обычно здесь выделяют три типа в соответствии с использованными при их разработке критериями эффективности:

Системы пакетной обработки (OS/360, OC EC);

Системы разделœения времени (UNIX, VMS);

Системы реального времени (QNX, RT/11).

Первые предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Критерий создания таких ОС – максимальная пропуская способность при хорошей загрузке всœех ресурсов компьютера. В таких системах пользователь отстранен от компьютера.

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

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

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

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

Встроенные операционные системы. Управляют карманными компьютерами (lialm OS, Windows CE – Consumer Electronics – бытовая техника), мобильными телœефонами, телœевизорами, микроволновыми печами и т.п.

Операционные системы для персональных компьютеров, к примеру, Windows 9.x, Windows ХР, Linux, Mac OSX и др.

Операционные системы мини-ЭВМ, к примеру, RT-11 для PDP-11 – OC реального времени, RSX-11 M для PDP-11 – ОС разделœения времени, UNIX для PDP-7.

Операционные системы мэйнфреймов (больших машин), к примеру, OS/390, происходящая от OS/360 (IBM). Обычно ОС мэйнфреймов предполагает одновременно три вида обслуживания: пакетную обработку, обработку транзакций (к примеру, работа с БД, бронирование авиабилетов, процесс работы в банках) и разделœение времени.

Серверные операционные системы, к примеру, UNIX, Windows 2000, Linux. Область применения – ЛВС, региональные сети, Intranet, Internet.

Кластерные операционные системы. Кластер – слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений и представляющихся пользователю единой системной, к примеру, Windows 2000 Cluster Server, Windows 2008 Server, Sun Cluster (базовая ОС – Solaris).

Классификация операционных систем - понятие и виды. Классификация и особенности категории "Классификация операционных систем" 2017, 2018.

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

­ область использования ОС;

­ типы аппаратной платформы;

­ методы проектирования;

­ реализация внутренних алгоритмов управления ресурсами.

Классификация по области использования:

­ настольные ОС (Desktop Operating System) - ОС, ориентированные на работу отдельного пользователя в различных предметных областях (разработка программ, работа с документами и т.п.). Основными чертами настольных ОС являются универсальность и ориентированность на пользователя; представители – MacOS, Windows;

­ серверные ОС , использующиеся в серверах сетей как центральное звено, а также в качестве элементов систем управления; основной чертой серверных ОС является надежность; представители – семейство UNIX, Windows NT;

­ специализированные ОС , ориентированные на решение узких классов задач с жестким набором требований (высокопроизводительные вычисления, управление в реальном времени); системы такого рода практически неразрывно связаны с аппаратной платформой; представители – QNX, редуцированные и специализированные версии UNIX, системы собственной разработки;

­ мобильные ОС – вариант развития настольных ОС на аппаратной платформе КПК; основные черты – удобство использования и компактность; представители PalmOS, Windows CE.

Безусловно, данная классификация не является абсолютно жесткой, т.е. одна и та же система может исполнять различные функции. Примером тому служит использование Linux с графической оболочкой в качестве настольной ОС или Windows NT в качестве серверной. Однако каждая ОС «сильна» только в своем классе.

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

­ ОС для платформы х86, однопроцессорные варианты;

­ ОС для платформы х86, многопроцессорные варианты;

­ ОС для RISC платформ;

­ ОС для мобильных устройств;

­ встраиваемые ОС (ОС таких устройств, как принтеры, ЦФК и т.п.).

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

­ многозадачные /однозадачные ОС;

­ многопользовательские /однопользовательские ОС и т.п.

Сетевые и распределенные ОС

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

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

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

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

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

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

­ разделения ресурсов этих компьютеров между пользователями сети;

­ подсистемы, организующие работу по этим протоколам.

В итоге ОС получает возможность предоставления своих ресурсов в общее пользование и/или потребления ресурсов других компьютеров. Под сетевой ОС будем понимать операционную систему отдельного компьютера, включающую средства для работы в сети. ОС Windows, начиная с NT, различные варианты ОС Unix (HP-UX компании Hewlett-Packard, Solaris компании Sun, FreeBSD и др.), различные варианты ОС Linux, ОС MacOS, ОС NetWare компании Novell являются сетевыми. Основные функциональные компоненты сетевой ОС показаны на рисунке 1.1.

Средства управления локальными ресурсами реализуют все функции ОС автономного компьютера, описанные выше.

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

­ серверная часть ОС – средства предоставления локальных ресурсов и услуг в общее пользование;

­ клиентская часть ОС – средства запроса доступа к удаленным (т.е. принадлежащим другим компьютерам сети) ресурсам и услугам;

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

Рис1.1 Основные функциональные компоненты сетевой ОС.

Правила взаимодействия компьютеров при передаче сообщений по сети фиксируются в коммуникационных протоколах (Ethernet, Token Ring, IP, IPX и пр.).

Упрощенная схема работы сетевых ОС иллюстрируется на рисунке 1.2. на примере взаимодействия двух компьютеров.

Рис1.2 Упрощенная схема работы сетевых ОС

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

Для компьютера 1 дисковое пространство диска 2 является запрашиваемым удаленным ресурсом, следовательно, запрос на этот ресурс формируется клиентской частью ОС1. ОС2 предоставляет ресурс, следовательно, запрос будет обрабатываться серверной частью ОС2.

На рисунке в клиентской части ОС1 выделен компонент, названный редиректором (от redirect – перенаправлять). Это – программный модуль, предназначенный для распознавания запросов к удаленным и локальным файлам и перенаправления первых к удаленной машине. В таком случае приложения на клиентской машине не должны заботиться о том, с какими файлами они работают – удаленными или локальными. Если функции перенаправления присутствуют в клиентской части сетевой ОС, то редиректором часто называют всю клиентскую часть.

Требования к современным ОС

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

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

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

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

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

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

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

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

Итак, подведем итоги. Операционные системы классифицируются по:

­ количеству одновременно работающих пользователей: однопользовательские, многопользовательские;

­ числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные;

­ количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные;

­ разрядности кода ОС: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные;

­ типу интерфейса: командные (текстовые) и объектно-ориентированные (графические);

­ типу доступа пользователя к ЭВМ: с пакетной обработкой, с разделением времени, реального времени;

­ типу использования ресурсов: сетевые, локальные.

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

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

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

Четвертый признак подразделяет операционные системы на 8-, 16-, 32- и 64-разрядные. При этом подразумевается, что разрядность операционной системы не может превышать разрядности процессора.

В соответствии с пятым признаком ОС по типу пользовательского интерфейса делятся на объектно-ориентированные (как правило, с графическим интерфейсом) и командные (с текстовым интерфейсом).

Согласно шестому признаку ОС подразделяются на системы:

­ пакетной обработки , в которых из программ, подлежащих выполнению, формируется пакет (набор) заданий, вводимых в ЭВМ и выполняемых в порядке очередности с возможным учетом приоритетности;

­ разделения времени (TSR), обеспечивающих одновременный диалоговый (интерактивный) режим доступа к ЭВМ нескольких пользователей на разных терминалах, которым по очереди выделяются ресурсы машины, что координируется операционной системой в соответствии с заданной дисциплиной обслуживания;

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

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

Контрольные вопросы

1. Какие основания являются наиболее существенными для построения классификации ОС?

2. Перечислите известную Вам классификацию ОС по области использования.

3. Какие существуют классы классификации ОС по типу аппаратной платформы?

4. Какие классификации ОС можно создать по внутренним алгоритмам управления ресурсами?

5. Расшифруйте термин «сетевая ОС».

6. Каково назначение сетевых ОС?

7. Что представляет собой распределенная ОС?

8. Какие средства для работы в сети должны включать сетевые операционные системы?

9. На какие компоненты подразделяются сетевые средства?

10. Какие требования предъявляются к современным ОС?

1. Особенности алгоритмов управления ресурсами

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

b. Однопользовательские и многопользовательские

c. Системы поддерживающие многопотоковую обработку и не поддерживающие

d. Многопроцессорные и однопроцессорные. Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса на симметричные и асимметричные (Асимметричные – все основное – на одном проце, остальное – на другом; симметричные – все на 1 проце)

2. Особенности аппаратной платформы

a. Персональные компы b. Мини-компы

c. Мейнфреймы d. Кластеры e. Сети ЭВМ

3. Особенности областей использования

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

b. Система разделения времени – каждой задаче выделяется определенный квант времени – Удобство работы пользователя

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

4. Особенности методов построения

a. По способу организации ядра системы выделяются монолитное ядро или микроядро (почти во всех ОС, но не в чистом виде).

b. Функциональные и объектно-ориентированные ОС – какие концепции использовались при написании ОС

c. Наличие нескольких прикладных сред (например, под Виндой идет все из ДОСа)

d. ОС с распределенной организацией

РАЗНОВИДНОСТИ СОВРЕМЕННЫХ ОС

1. MS-DOS является наиболее широко распространенной операционной системой для персональных компьютеров. Имеет графический интерфейс, но ограничение памяти, доступной DOS-программ - 640 К. Еще один "черный шар" против DOS - полное отсутствие мультизадачности. DOS предназначена для одновременного выполнения только одной прои

2. Windows 3.1x - Обеспечена возможность работы со всеми прикладными программами MS-DOS (текстовыми процессорами, СУБД, электронными таблицами и пр.). Windows 3.1 может работать в одном из трех режимов: Real (реальном), Standart (стандартном), 386 Enhanced (расширенном)

3. Windows 95 - способность работать с 16-разрядными прикладными программами Windows, программами, унаследованными от DOS, и старыми драйверами устройств реального режима и в то же время совместимой с истинными 32-разрядными прикладными программами и 32-разрядными драйверами виртуальных устройств.



4. Windows NT представляет собой операционную систему сервера, приспособленную для использования на рабочей станции (для получения приемлемой производительности необходимы быстродействующий процессор и по меньшей мере 16 Mb ОЗУ). Собственные прикладным программам выделяется 2 Gb особого адресного пространства, от границы 64 К до 2 Gb (первые 64 К полностью недоступны)

5. OS/2 Warp - это новая ОС с графическим интерфейсам пользователя (ГИП), в то время как Windows представляет собой ГИП, работающий "поверх" DOS. OS/2 является полностью защищенной операционной системой, благодаря чему невозможны конфликты между программами в памяти. OS/2 способна выполнять одновременно несколько прикладных программ.

ОС как виртуальная машина и как система управления ресурсами. Задачи ОС

ОС как виртуальная машина

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

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



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

ОС как менеджер ресурсов.

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

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

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

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

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

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

      Поддержка многозадачности (многопрограммности). По числу одновременно выполняемых задач ОС делятся на 2 класса: однопрограммные (однозадачные) – например, MS-DOS, MSX, и многопрограммные (многозадачные) – например, ОС ЕС ЭВМ, OS/360, OS/2, UNIX, Windows разных версий.

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

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

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

      Виды многопрограммной работы. Специфику ОС во многом определяет способ распределения времени между несколькими одновременно существующими в системе процессами (или потоками). По этому признаку можно выделить 2 группы алгоритмов: не вытесняющая многопрограммность (Windows3.x, NetWare) и вытесняющая многопрограммность (Windows 2000/2003/XP, OS/2, Unix).

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

      Многопроцессорная обработка. Важное свойство ОС – отсутствие или наличие средств поддержки многопроцессорной обработки. По этому признаку можно выделить ОС без поддержки мультипроцессирования (Windows 3.x, Windows 95) и с поддержкой мультипроцессирования (Solaris, OS/2, UNIX, Windows NT/2000/2003/XP).

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

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

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

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

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

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

    • Предсказуемость . Требования, которые пользователь может предъявить к системе, в большинстве случаев непредсказуемы. В то же время пользователь предпочитает, чтобы обслуживание не очень сильно менялось в течение предположительного времени. В частности, запуская свою программу в системе, пользователь должен иметь основанное на опыте работы с этой программной приблизительное представление, когда ему ожидать выдачи результатов.
    • Расширяемость. В отличие от аппаратных средств компьютера полезная жизнь операционных систем измеряется десятками лет. Примером может служить ОС UNIX, да и MS-DOS. Операционные системы изменяются со временем, как правило, за счет приобретения новых свойств, например, поддержки новых типов внешних устройств или новых сетевых технологий. Если программный код модулей ОС написан таким образом, что дополнения и изменения могут вноситься без нарушения целостности системы, то такую ОС называют расширяемой. Операционная система может быть расширяемой, если при ее создании руководствовались принципами модульности, функциональной избыточности, функциональной избирательности и параметрической универсальности.
    • Переносимость . В идеальном случае код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которые различаются не только типом процессора, но и способом организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называется также многоплатформенностью . Достигается это свойство за счет того, что основная часть ОС пишется на языке высокого уровня (например С, C++ и др.) и может быть легко перенесена на другой компьютер (машинно-независимая часть), а некоторая меньшая часть ОС (программы ядра) является машинно-зависимой и разрабатывается на машинном языке другого компьютера.
    • Совместимость . Существует несколько "долгоживущих" популярных ОС (разновидности UNIX, MS-DOS, Windows3.x, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Для пользователя, переходящего с одной ОС на другую, очень привлекательна возможность – выполнить свои приложения в новой операционной системе. Если ОС имеет средства для выполнения прикладных программ, написанных для других операционных систем, то она совместима с этими системами. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Кроме того, понятие совместимости включает также поддержку пользовательских интерфейсов других ОС.
    • Удобство . Средства ОС должны быть простыми и гибкими, а логика ее работы ясна пользователю. Современные ОС ориентированы на обеспечение пользователю максимально возможного удобства при работе с ними. Необходимым условием этого стало наличие у ОС графического пользовательского интерфейса и всевозможных мастеров – программ, автоматизирующих активизацию функций ОС, подключение периферийных устройств, установку, настройку и эксплуатацию самой ОС.
    • Масштабируемость . Если ОС позволяет управлять компьютером с различным числом процессоров, обеспечивая линейное (или почти такое) возрастание производительности при увеличении числа процессоров, то такая ОС является масштабируемой. В масштабируемой ОС реализуется симметричная многопроцессорная обработка. С масштабируемостью связано понятие кластеризации – объединения в систему двух (и более) многопроцессорных компьютеров. Правда, кластеризация направлена не столько на масштабируемость, сколько на обеспечение высокой готовности системы.
    • Следует заметить, что в зависимости от области применения конкретной операционной системы может изменяться и состав предъявляемых к ней требований.

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

      • Windows 2003 Server (до 4-х процессоров) – для малого и среднего бизнеса;
      • Windows 2003 Advanced Server (до 8 процессоров, 2-узловой кластер) – для средних и крупных предприятий;
      • Windows 2003 DataCenter Server (16-32 процессора, 4-узловой кластер) – для особо крупных предприятий.


  • Рекомендуем почитать

    Наверх