Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дополнение к ответам СисПО.doc
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
159.23 Кб
Скачать

1. Общий принцип работы операционной системы

С ФАЙЛАМИ

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

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

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

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

Как правило, все современные ОС имеют соответствующие системы управления файлами (СУФ).

Система управления файлами является основной подсистемой в абсолютном большинстве современных ОС. Ее необходимость обуславливается следующими обстоятельствами:

- во-первых, через СУФ связываются по данным все системные обрабатывающие программы;

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

- в-третьих, благодаря использованию той или иной СУФ пользователям предоставляются следующие возможности:

  • создание, удаление, переименование (и другие операции) именованных наборов данных (именованных файлов) из своих программ;

  • работа с не дисковыми периферийными устройствами как с файлами;

  • обмен данными между файлами, между устройствами, между файлом и устройством (и наоборот);

  • работа с файлами с помощью обращений к программным модулям СУФ;

  • защита файлов от несанкционированного доступа.

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

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

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

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

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

Рис. 1. К пояснению функции управления файлами

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

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

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

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

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

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

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

Рис. 2. Операции буферизации и объединения в блоки читаемых

и записываемых файлов

Предполагается, что чтение записей осуществляется программой пользователя последовательно с начала файла и до его конца. Логически файл состоит из записей длиной 1024 байт; физически, однако, файл образован 8192 – байтовыми блоками, каждый из которых содержит 8 логических записей.

Этот вид объединения записей в блоки обычно осуществляется конкретными типами запоминающих устройств в целях экономии времени обработки и пространства памяти.

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

На позиции Б первый блок прочитан. Он находится в буфере В1 и содержит логические записи с номерами от 1 до 8. Теперь СУФ может передать требуемую запись программе пользователя, для чего указатель Р устанавливается на первую запись. Для чтения в буфер В2 второго блока файла СУФ выдает второй физический запрос на ввод-вывод.

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

Те же действия повторяются и для других логических записей первого блока.

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

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

Использование СУФ сильно упрощает программу, облегчает ее написание и, следовательно, уменьшает количество ошибок. Не требуется и повторение во многих программах одних и тех же кодов.

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

- распределение пространства на внешних запоминающих устройствах,

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

. ПОДХОДЫ К ПОСТРОЕНИЮ СЕТЕВЫХ ОПЕРАЦИОННЫХ

СИСТЕМ

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

- сетевые службы глубоко встроены в ОС;

- сетевые службы объединены в виде некоторого набора – оболочки;

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

Первоначально сетевые ОС представляли собой совокупность уже существующей локальной ОС и надстроенной над ней сетевой оболочки.

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

- логическая стройность ОС,

- простота эксплуатации и модификации,

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

- отсутствие избыточности.

Например,

- сетевая ОС LAN Manager является надстройкой над локальной ОС OS/2.

- ОС со встроенными сетевыми службами – Windows NT, все версии UNIX, NetWare, OS/2 Warp.

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

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

Примеры – LAN Server, LAN Manager.

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

- клиентские и

- серверные.

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

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

Серверная оболочка ориентирована на выполнение серверных функций.

Примеры: – LAN Server, LAN Manager, NetWare for UNIX, File and Print Services for NetWare.

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

- файловой и

- службы печати (NetWare for UNIX, File and Print Services for NetWare).

Некоторые оболочки содержат настолько широкий набор сетевых служб, что их называют сетевыми ОС (LAN Server, LAN Manager).

Заметим, что термин “сетевая ОС” приобретает еще одно значение – набор сетевых служб.

Третий способ реализации сетевой службы – в виде отдельного продукта.

Примеры:

- сервер удаленного управления WinFrame (компании Citrix), предназначен для работы в среде Windows NT. Он дополняет возможности встроенного в Windows NT сервера удаленного доступа Remote Access Server;

- программный продукт NetWare Connect – служба удаленного доступа для NetWare.

СЕТЕВЫЕ И РАСПРЕДЕЛЕННЫЕ ОПЕРАЦИОННЫЕ

СИСТЕМЫ

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

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

- создание многопроцессорных компьютеров и

- объединение автономных систем в вычислительные сети.

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

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

По-другому обстоит дело с вычислительными (компьютерными) сетями.

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

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

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

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

- сетевые ОС и

- распределенные ОС.

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

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

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

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

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

В настоящее время практически все сетевые ОС еще очень далеки от истинной распределенности.

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

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

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

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

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

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

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

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

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

Итак, термин «сетевая ОС» используется в двух значениях:

- как совокупность ОС всех компьютеров сети,

- ОС отдельного компьютера, способного работать в сети.