6 страница14 января 2020, 15:21

функции операционных систем


ОПЕРАЦИОННАЯ СИСТЕМА, КЛАССИФИКАЦИЯ

Назначение и функции операцион­ных систем

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

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

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

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

Перечислим основные функции ОС:

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

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

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

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

- идентификация всех программ и данных;

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

- обслуживание всех операций ввода-вывода;

- обеспечение работы систем управления файлами и систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего ПО;

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

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

- организация механизма обмена сообщениями и данными между выполняющимися программами;

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

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

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

- удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для ОС реального времени);

- обеспечение работы системы программирования, с помощью которой пользователи готовят свои программы;

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

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

Режимы работы и классификация операционных сис­тем

На сегодняшний день сформировалось небольшое число классификаций ОС:

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

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

3. По способу взаимодействия с компьютером различают диалоговые ОС и системы пакетной обработки (ОСРВ). Доля последних значительно сократилась по сравнению с диалоговыми системами.

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

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

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

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

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

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

Монолитное ядро – старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем.

ОСНОВНЫЕ ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ

Управление задачами и процес­сами

ОС выполняет следующие основные функции, связанные с управлением процессами и задачами:

- создание и удаление задач;

- планирование процессов и диспетчеризация задач;

- синхронизация задач, обеспечение их средствами коммуникации.

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

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

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

Управление памятью

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

- отображение адресного пространства процесса на конкретные области физической памяти;

- распределение памяти между конкурирующими процессами;

- контроль доступа к адресным пространствам процессов;

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

- учет свободной и занятой памяти.

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

- полное либо частичное размещение процесса в ОП;

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

- выделение участков памяти фиксированной либо переменной длины.

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

Управ­ление вводом-выводом данных

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

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

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

Таким образом, управление вводом-выводом осуществляется компонентом ОС, который называют супервизором ввода-вывода. Он выполняет следующие функции:

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

- вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод, устанавливает очередность выполнения;

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

- при получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний;

- осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода;

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

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

Имеется два основных режима ввода-вывода: режим обмена с опросом устройства ввода-вывода; режим обмена с прерываниями.

Управление файловой системой

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

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

Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера. Файл, обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей. В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла, могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (UNIX) адреса блоков данных файлахранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией, является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов. Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файлеи сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла. Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла. Базовой операцией, выполняемой по отношению к файлу, является чтение блока с диска и перенос его в буфер, находящийся в основной памяти.

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

Перечислим основные функции файловой системы.

- идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти;

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

- обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера;

- обеспечение защиты от несанкционированного доступа;

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

- обеспечение высокой производительности.

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

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

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

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

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

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

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

Управление защитой данных

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

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

Во многих ОС гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США (так называемая Оранжевая книга безопасности). На строгом уровне «С» должны присутствовать:

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

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

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

- защита памяти заключается в том, что память перед ее повторным использованием должна инициализироваться (полностью очищаться).

6 страница14 января 2020, 15:21