3.
Машинно независимые свойства операционных систем

Успешно изучив материал, Вы будете знать:

После изучения данной темы Вы будете уметь:

После изучения материала Вы будете обладать навыками:

Основные понятия к теме 3

Носитель данных

Файл

Атрибуты файла

Каталог

Папка

Ярлык

Вычислительный ресурс

Задание

3.1.
Файловая система

Сами программы и данные для их работы хранятся на различных носителях. Способ организации данных на носителе называется файловой системой.

Файл — именованная область данных на носителе, хранящая некоторый массив информации.

Каждый файл занимает некоторое пространство на носителе, объем которого называют размером файла.

По типу хранимых данных различают:

Характеристики файла в рамках конкретной файловой системы называются атрибутами файла. К атрибутам относят:

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

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

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

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

В зависимости от типа носителя выделяют различные файловые системы. К примеру, для дисковых и flash-накопителей используются файловые системы FAT, NTFS, UFS, EXT2/3. А для компакт-дисков принято использовать файловые системы ISO 9660 или UDF. Каждый из стандартов на файловую систему соответствует определенным требованиям, предъявляемым к хранению данных на конкретном типе носителя. Очевидно, что требования к хранению данных с точки зрения операционной системы и пользователя различны в зависимости от типа носителя и объема данных, подлежащих хранению. Например, файловые системы дисковых накопителей должны обеспечивать механизмы обеспечения целостности данных в условиях постоянного выполнения операций чтения-записи данных сравнительно большим количеством процессов. В то же время от файловой системы для компакт-дисков требуется обеспечение простого доступа к данным на большом количестве различного оборудования, в том числе и бытового. Никто не ждет от жесткого диска легкости подключения к бытовому DVD-плееру, в то время как неработоспособность DVD-видеодиска воспринимается как из ряда вон выходящее событие.

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

Форматирование диска — операция по подготовке логического диска к использованию файловой системы. При форматировании логический диск разбивается на блоки фиксированного размера, именуемые кластерами. Размер кластера зависит от конкретной файловой системы и может варьироваться от 512 байт до нескольких килобайт. Размер кластера влияет, с одной стороны, на быстродействие операций чтения-записи данных, а с другой стороны, на объем потерь дискового пространства. Чем меньше размер кластера, тем больше их количество и тем больше времени занимает поиск нужного кластера для чтения части или целого файла. Но, с другой стороны, в современных файловых системах существует ограничение следующего рода: каждый файл занимает минимум один кластер. Из этого правила неявным образом следует, что при размере файла, меньшем размера кластера, файл, тем не менее, занимает весь кластер. Поэтому необходимо выбирать размер кластера таким образом, чтобы избежать потерь дискового пространства при хранении большого количества мелких файлов. Ситуация осложняется тем, что без повторного форматирования изменение размера кластера невозможно. Поэтому, в зависимости от емкости логического диска, операционная система выбирает размер кластера таким образом, чтобы свести к минимуму потери дискового пространства, сохраняя при этом некоторый уровень быстродействия операций чтения-записи данных.

3.2.
Управление ресурсами

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

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

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

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

Для возникновения взаимоблокировки должны выполняться все (!) следующие условия:

При решении данной проблемы можно использовать любой из следующих подходов:

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

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

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

3.3.
Планирование заданий

Задание — задача, которая решается на данной аппаратной платформе при помощи некоторого приложения.

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

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

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

Таким образом, можно сделать заключение, что:

Основные выводы

  1. Тип используемой файловой системы зависит от типа носителя.

  2. Задача предотвращения взаимоблокировок может не решаться операционной системой вовсе.

  3. Механизм планирования заданий определяет облик операционной системы.

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

  1. Каково назначение файловой системы?

  2. Что такое файл? Какие бывают виды файлов?

  3. Какие критерии могут быть использованы при классификации файловых систем?

  4. Какие условия должны быть соблюдены для возникновения ситуации взаимоблокировки?

  5. Какими методами можно бороться с взаимоблокировками?

Задания для самостоятельной работы

Выполните задания к теме 3 в тетради-практикуме.