- •4) Управление файлами и внешними устройствами
- •2.1) Типы файлов
- •2.2) Иерархическая структура каталогов
- •2.3) Структура файловой системы unix
- •2.4) Структура файловых систем Windows
- •Тема 5 – Распределённый файловые системы. Сети эвм. Мультипроцессорные системы.
- •I)Физический уровень
- •II) Уровень звена связи, или канальный уровень
Сегментная организация Оперативной памяти.
Память делится на блоки разного размера, при этом появляется возможность
Установить права доступа к сегменту, например режим только чтение
Каждый сегмент предназначается для хранения определённого типа данных, например сегмент данных, сегмент кода и т.д.
Минусом такой организации является то, что на преобразование адресов из виртуальных в физические требуется несколько больше ресурсов.
Виртуальное
адресное Физическая память
пространство А Таблица Сегментов А
Сегмент 0 |
Сегмент 1 |
Сегмент 2 |
Сегмент 3 |
Виртуальное
адресное
пространство Б Таблица сегментов Б
Сегмент 0 |
Сегмент 1 |
Сегмент 2 |
Т.е Возможно совместное использование памяти несколькими процессами.
Недостаток в том, что при нехватке физической памяти необходимо выгружать весь сегмент.
Странично-сегментная организация памяти.
Суть в том, что внутри сегментов памяти происходит деление на страницы, в итоге мы получаем преимущество сегментной организации и преимущество страничной организации в одном флаконе.
Схема:
Есть некий виртуальный адрес, он состоит из трёх компонентов, а именно Номер сегмента G, номер страницыPи смещениеS
В этом случае на первом этапе берётся номер сегмента и по таблице сегментов определяется необходимая таблица страниц сегмента. И уже внутри этой таблицы по номеру страницы Pопределяется номер физической страницы памяти, к нему прибавляется смещение и в итоге мы получаем адрес ячейки памяти.
Недостаток данной организации в медленной (относительно) скорости преобразования адресов.
Практическая реализация в современных микропроцессорах.
Поддержка всех трёх способов организации виртуальной памяти в процессах фирмы INTELсуществуют начиная с 386 процессоров (1995 год)
В требованиях к Windows95 было написано, что она должна работать под управлением процессора не хужеIntel80386 _
Механизм виртуальной памяти это не только аппаратная поддержка, но и программное обеспечение.
32-разрядные процессоры Intelмогут отрисовать не больше 4 гигабайт памяти.
Организация Виртуальной памяти при меньшем размере оперативной памяти.
Demandpaging(Листание по требованию), в этом случае в таблице сегментов предусматривается наличие признака, сигнализирующего о том, что страница или сегмент выгружены на диск. Установка этого признака позволяет при обращении к указанной странице позволяет передать управление операционной системе, она в свою очередь загружает требуемую страницу в память и продолжает выполнение программы с прерванного места. Этим обеспечивается и прозрачность работы виртуальной памяти для программ. Достаточно часто возникает проблема, когда в памяти не остаётся свободного места, в этом случае операционная система выгружает ненужную страницу на диск. Существуют критерии на основании которых определяется ненужность страницы. Они называются АЛГОРИТМЫ ПОДКАЧКИ.
Алгоритмы подкачки. Делятся на два типа: Локальные и глобальные.
Локальныеалгоритмы ищут ненужную страницу или сегмент только в рамках этого процесса.
Глобальные алгоритмы ищут в рамках всей системы.
Первые и самые простые алгоритмы можно описать словом FIFO(Первый пришёл, первый ушёл) в таком методе выгрузке подлежат страницы которые дольше всего находятся в оперативной памяти.
Второй самый известный алгоритм – это алгоритм LRU(LastRecentlyUsed) – Наименее часто используемые страницы. В этом случае выгрузке подлежат те страницы, к ктоторым дольше всего не было обращений.
Реализация этих методов предусматривает наличие аппаратной поддержки. Потому что всё это реализовывать программным методом НЕРЕАЛЬНО.
Метод LRU
В этом случае каждой странице присваивается дополнительной признак, соответственно при обращении к какой-либо странице этот признак устанавливается и специальный процесс периодически пробегает по всем страницам и проверяет этот признак, если признак установлен, счётчик обращений к странице сбрасывается и признак обнуляется. Если признак не установлен, то счётчик увеличивается. Таким образом компьютер будет знать, к какой странице дольше всего не было обращения – это вариант номер один практической реализации.
Второй вариант практической реализации заключается в следующем: К каждой странице добавляется 64-разрядное поле, внутри компьютера существует аппаратный счётчик команд, соответственно в это дополнительное 64-разрядное поле записывается текущее значение этого аппаратного счётчика. Соответственно та страница, у которой значение этого дополнительного поле минимальна – не востребована.
Теоретическая реализация метода LRU.
В памяти организуется односвязный или двусвязный список страниц. При обращении к какой-либо странице она должна в этом списке передвинуться в начало. Такие передвижения должны происходить при каждом обращении к физическим адресам памяти. На практике реализация названного алгоритма невозможна. Из за больших накладных расходов.
Проблемы при острой нехватки памяти.
В какой то момент времени Т процесс А обращается к какой-либо станице, которая отсутствует в памяти, система пытается подгрузить требуемую страницу и обнаруживается что соответствующих страниц нет. В качестве ненужной выбирается одна из страниц принадлежащих процессу Б, соответственно процесс А дорабатывает своё время и управление передаётся процессу Б который обращается к той странице, которая была выгружена. В качестве ненужной выбирается одна из страниц принадлежащих процессу А потом управление передаётся процессу А и у него требуема страница опять выгружена. Этот эффект называется Trashing.
Алгоритмы подкачки UNIX
Тут чтобы обеспечить переносимость создали идею, где Виртуальная память процессов делится на несколько сегментов
Сегмент программного кода или TEXTSEGMENTЭтот сегмент является сегментом только для чтения, а во вторых он является разделяемым, в нём хранятся только команды т.к. в теории и на практике программный код не меняется во время выполнения, он может разделяться между несколькими процессами одновременно для экономии памяти.
Сегмент данных DATASEGMENT– этот сегмент доступен в обоих режимах содержит неинициализированные и инициализированные статические переменные программы , используемые в данном процессе.
Сегмент Стека STACKSEGMENT– в нём хранятся автоматические переменные программы явно или неявно к ней присутствующие.
Разделяемый сегмент SHARESEGMENT– Получается при подключении к процессу сегмента разделяемой памяти. Это нужно для синхронизации несколькх процессов и для их совместной работы.
Сегмент файлов отображаемых в виртуальной памяти MAPPEDFILESвыделяется на чтение и запись и является разделяемым. Одна из разновидностей разделяемого сегмента но предназначен для работы с файлами.
Как только специальный счётчик достигает определённого порогового значения, страница встаёт в очередь на выгрузку. Но это не значит что она будет тут же выгружена. Соответственно в системе постоянно работают специальные программы которые занимаются виртуальной памятью.
PAGE DEAMON – осуществляет страничный обмен
Процесс-SWAPPER– в случае необходимости выгружает процессы целиком.
Работы системы виртуальной памяти основана на таком понятии как рабочий набор. Это те страницы процесса, к которым постоянно происходит обращение. Если ОС выгрузит любую из этих страниц, то произойдёт разрушение рабочего набора, что потенциально может привезти к ситуации TRASHING.
Если в системе памяти в данный момент не достаточно, процессы работают как обычно, в случае, когда нужно освободить память. Т.е. количество свободных ячеек приближается к пороговому значению включается программа PAGEDEAMON. Который сканируя страницы памяти определяет какие страницы можно выгрузить и начинает их выгружать. Как только количество свободных страниц достигает нормального значения,PAGEDEAMONпрекращает выгрузку. Если вдруг в системе начинает наблюдаться острая нехватка памяти, т.е количество свободных страниц превышает критическое значение.PageDeamonне справляется, активируется программаSwapper, которая начинает целиком выгружать процессы на диск. Тот процесс, который затребовал себе страницу памяти, которой нет в ОЗУ помещается в очередь на выгрузку.
Дополнительные возможности в системе Unix
1) Копирование страницы при попытке записи. (copy on write) - рисунок в тетради Леонида Евгеньевича. При создании нового процесса не тратится время на копирование физических страниц, так же экономится память. Например процессу Б требуется записать что то в четвёртую страницу, в этом случае при попытке записи в физическую страницу памяти обнаруживается что установлен запрет на запись. При этом происходит прерывание и управление передаётся операционной системе. ОС определяет какой именно процесс родитель или предок пытается записать страницу, создаёт копию данной страницы в памяти и эта страница присоединяется к виртуальному адресному пространству соответствующего процесса и управление передаётся опять программе.
Таким образом в памяти наблюдается следующая ситуация: (Рисунок смотрите в тетради.) Те страницы которые изменялись будут скопированы, но только те которые требуется, а неизменные страницы останутся не тронутыми – в памяти будет находиться не две, а полторы копии процесса.
Иерархия запоминающих устройств принцип Кэширования данных.
По скорости работы запоминающие устройства можно расположить: Самые быстрые – регистры, затем Сверх запоминающие устройства, затем оперативная память и, наконец, внешняя память.
Стоимость 1 байта запоминающего устройства увеличивается с увеличением скорости.
Для решения этих проблем было придумано создание области более быстрого запоминающего устройства, к которой наиболее часто происходит обращение.
В более быстром устройстве выделяется область памяти, в которой сохраняется наиболее часто используемая информация из медленного устройства (КЭШ). Это даёт некоторый прирост скорости . Комбинация не ограничивается ОЗУ и Жёстким диском, это может быть процессор и какие то другие устройства .
Как это действует на примере процессора и ОЗУ:
Есть процессор, когда ему требуется какой то адрес памяти он обращается к ОЗУ. В этом случае Кэш располагается между ними и запрос передаётся ему. Кэш представляет собой структуру из Адресов, данных и служебной информации. В случае, если требуемый процессору адрес находится в КЭШ-памяти, то данные, находящиеся в соответствующей ячейке извлекаются и передаются процессору. В случае, если требуемой информации нет, то она извлекается из оперативной памяти и передаётся в процессор, параллельно происходит её запись в КЭШ-память. Если в Кэш-памяти нет свободных ячеек то оттуда что-нибудь (самая старая запись ) удаляется на основе служебной информации. Таким образом в Кэш памяти будет находиться часто используемая информация и процессор будет обращаться не к медленному ОЗУ и простаивать несколько тактов, а будет получать информацию моментально. В современных процессорах Кэш = 2,4 и более мегабайт.
Математики посчитали что эффективность КЭШей, или вероятность попадания в КЭШ может достигать 90%. Такие КЭШи существуют не только для процессоров но и для жёстких дисков, составляют около 16-32 мегабайт. Так же этот принцип используется при доступе к Вэб-страницам.
4) Управление файлами и внешними устройствами
Физическая структура файловой системы.
Долговременным устройствам хранения предъявляются следующие требования:
А) Устройства должны хранить большие объёмы информации,
Б)информация должна сохраняться и после прекращения работы процесса использующего её.
В) Несколько процессов должны иметь возможность одновременного получения доступа к информации.
Решением является хранение этой информации на специальных накопителях (Жёсткие диски, компакт. Диски, ленты и т.д.) В виде модулей называемых ФАЙЛАМИ. Информация, хранимая в файлах обладает устойчивостью, т.е файл и информация хранимая в нём никуда не пропадает. Совершенная ОС обладает разными свойствами. В том числе и защитой.
Файловая система- это часть операционной системы созданная для того, чтобы предоставить пользователю удобный интерфейс при работе с данными, хранящимися на дисках и обеспечить совместное использование файлами несколькими пользователям и процессами. В широком смысле файловая система включает в себя:
А) Совокупность всех файлов на диске
Б) Набор структур данных, используемых для управления файлом, такие как: Каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства.
В) Комплекс систем, реализующих управление файлами, создание управление и т.д.
1)Физическая структура файловой системы.
Файловая си система подразумевает некую логическую организацию. В общем случае жёсткий диск разбит на три области. Сначала идёт самая маленькая область – загрузочная область, Затем идёт файловая система, она составляет большую часть. И Третий раздел – первичная область Свопинга.
Загрузочная область состоит из следующих частей:
а) заголовок тома– содержит в себе информацию о формате диска
б)Каталог тома – содержит информацию о файлах лежащих на диске, которые содержат ядро ОС.
в)Вторичный загрузчик, первичный находится в БИОСе компьютера. В задачи первичного загрузчика входит загрузка вторичного после всех тестов, в задачи вторичного загрузчика входит загрузка ядра операционной системы инициализация и передача управления ядру операционной системы.
Физически файлына диске могут организовываться несколькими способами:
1)В виде непрерывной последовательности блоков. Имеется преимущество – блоки стандартные, а недостатки в том, что в дальнейшем может быть невозможным увеличение размера файла. Такие простейшие файловые системы существовали на заре развития компьютеров.
2) В хранении файла в виде связанного списка блоков. При этом в начале или в Конце блока указывается номер следующего блока. Такой способ позволяет создавать файлы неограниченного размера. В процессе работы изменять их размер. Недостатком такого способа является то, что для доступа к произвольному блоку необходимо прочесть всю цепочку до этого блока. Ещё один недостаток связан скорее с особенностью организации, вся работа дисковых накопителей, программ строится на чтении целиком блока, а так как часть этого блока отдана под номер следующего блока, получается что блок состоит из меньшего кол-ва килобайт, а программы хотят прочесть всё кол-во КБ, В этом случае будут читаться два блока, первый и кусок второго, Это выливается в то, что вместо одной операции чтения происходят две.
3) Хранение информации о блоках предполагается с помощью связанного списка индексов. В этом случае с каждым блоком связывается некий элемент, который называется ИНДЕКС. Индексы располагаются либо в отдельной области диска (UNIX, таблицы индексных дескрипторов ), либо являются частью информации о файле (MSDOS,FAT). Плюс в том что за короткое время можно обратиться к произвольному блоку путём чтения индексов файлов, а так же в том, что блоки данных не содержат никакой лишней информации. За все удобства приходится расплачиваться скоростью работы, и тем что это более сложная система и её сложнее организовать.
ФАЙЛОВАЯ СИСТЕМА UNIX.
Самая простейшая из систем – файловая система S5. Состоит из 4 больших разделов. Сначала идёт загрузочная область, затем идёт суперблок, потом таблица индексных дескрипторов, дальше блоки данных и свободные блоки. Загрузочная область занимает один блок, он содержит в себе программы, служащие для первоначального запуска операционной системы (Вторичный загрузчик). Второй блок занимает так называемый суперблок, - это наиболее важная часть файловой системы, в нём содержится информация, которая нужна для работы файловой системы, Если он будет уничтожен – работа файловой системы не возможна, В некоторых файловых системах копии суперблока распределены по жёсткому диску. Таблица индексных регистров имеет размерностьISIZE, там хранятся индексные дескрипторы (описатели) файлов. Максимальное количество файлов, которые могут быть созданы определяется количеством индексных дескрипторов. Под понятием файл тут подразумевается в том числе и Каталог и специальные файлы, или файлы устройств. В Блоках данных храниться информация о файлах, находящихся в файловой системе, максимальный размер файловой системы определён параметромFSIZE, всё что между блокомFSIZEи 2+isize- Это файлы. Размерность таблицы индексных дескрипторов и размерность области под блоки данных определяется при инициализации файловой системы (Форматировании). Соответственно вUNIXЕсть 2 ограничивающих параметра, а именно размер свободного пространства, и максимальное количество индексных дескрипторов.
Суперблок файловой системы содержит следующие параметры:
Статическая информация:
Размер файловой системы (fsize)- максимальный номер блока данных в файловой системе.
Физические характеристики дисков.
динамическая информация: она задаётся при инициализации файловой системы и уже не меняется в процессе работы. – количество свободных индексных дескрипторов, флаг состояния файловой системы. Копия Суперблока всегда хранится в ОЗУ, так же существуют дублирующие суперблоки.
При каких-либо операциях ввода – вывода, счётчик индексных дескрипторов поменяется на ту копию, которая находится в памяти. При незапланированном отключении электропитании, или аппаратном сбое, Изменившаяся информация в Суперблоке теряется.
Индексные дескрипторы файлов (i-node, или описатель файлов.)- Размер каждого индексного дескриптора составляет 64 байта. Индексный дескриптор содержит в себе данные о типе файлов, код защиты, дату и время последней модификации или создания, идентификаторы владельца и группы владельцев. И информацию о расположении блоков данных на диске. Он в себе не содержит имя файла. Информация о том, где располагаются блоки данных хранится в следующем виде:
Под это выделено 13 элементов, первые 10 содержат в себе непосредственно номера блоков, в которых содержится файл, если этого не хватает, используется 11 элемент – указывает на номер блока, содержащий адреса на 128 блоков. Если и этого не хватает, есть 12 элемент – указывает на структуру (блок) в которой содержится 128 ссылок, каждая из которых является переходом на следующие 128 элементов. Если и этого не хватает, то в 13 элементе реализуется 3-х уровневая система 128х128х128. Все индексные дескрипторы пронумерованы, начиная с 1.
Есть какой-то Каталог, в нём содержатся два файла, и второй каталок, содержащий один файл, соответственно в самом каталоге как раз и содержится сопоставление имя файла с индексным дескриптором. Если они совпадают, значит файлы ссылаются на одну и ту же область диска (Это один и тот же файл по содержанию). В Windowsтакое невозможно.
В случае удаления фала:
В индексном дескрипторе хранится счётчик ссылок на файл, который определяет своё значения в соответствии с количеством файлов с одинаковым значением индексного дескриптора, как мы удаляем файл счётчик просто уменьшается на единицу, если мы добавляем ещё одну ссылку, счётчик увеличивается на 1.Как счётчик становится равным нулю, область диска освобождается. Для того, чтобы создать жёсткую ссылку на файл в Unixсуществует командаLN, где указываются следующие параметры: Имя файла через пробел и через второй пробел указывается новое имя файла. Кроме жёстких ссылок на файл, рассмотренных выше существуют мягкие или символьные ссылки на файл.
Виртуальная файловая система VFS
Уже в UNIXSystemVRelease3 был разработан механизм переключения файловых систем –FileSystemSwitch(FSS), Этот механизм был дополнительным слоем между ядром операционной системы и файловой системой, и все системные вызовы ядра файловой системы он преобразовывал в команды для конкретной файловой системы. При этом ведно не знает деталей реализации файловой системы. Большее распространение получила другая разработка, которая была представлена компаниейSUNMicrosystems. Этот механизм называется Виртуальной файловой системой. Он был реализован в 4 рэлизеUnix. Суть этого метода аналогична предыдущему, представляет собой некую абстрактную файловую систему , работа с которой осуществляется путём определённого стандартизированного набора системных вызовов, при этомVFSосуществляет перевод этих системных вызовов в команды конкретной файловой системы, а недостающие возможности (вFATнет ограничения доступа.) они эмулируются,VFSпредоставляет возможность работы с файловой системой как с единым целым, для подключения новых накопителей используется операция монтирования, при этом дополнительная файловая система (Дискета) Становится частью основной файловой системы.
Файловые системы разработки компании IBM
HPFS– предназначалась для работы на рабочих станциях, в ней не было возможности ограничения доступа, на тот момент – надёжнееFAT. Использовалась в операционной системеOS/2WARP.Вышла из эксплуатации в Районе с 98-2000 года вместе с завершением разработки и поддержки операционной системеOS/2.
Файловые Системы разработки Microsoft.
FAT- есть куча проблем: Размер файловой системы ограничен 2.1 Гб, при этом размер одного кластера составляет 32 Кб, Соответственно если Кластер не кратен 32 Кб, то физически он будет занимать два кластера, Потеря – 40 процентов, так же из недостатков можно отметить что файловая система не предназначена для работы многопользовательской сети И плохо переносит Аварийное отключение питания (Аппаратный сбой), относительноNTFS. Файлы должны записываться в формате 8+3, Имя – 8 символов, разрешение 3 символа. Имена файлов содержатся вместе со служебной информацией о файле. Начиная сWin95/98 была разработано улучшенная версия этой файловой системы В этой файловой системе было пройдено ограничение 2 Кб, длинна файла стала составлять порядка 220 символов. На сегодняшний день если используется файловая система, то используется её разновидностьFAT32. На различных аппаратных устройствах, файл серверах, работающих под управлением не операционной системыWindows– используется файловая системаFat32.
NTFS– Было 2 версииNTFS4- использовалась доWindowsNT4.0 включительно,NTFS5 используется вWindows2000 и выше. Обратной совместимости у этих файловых систем нет. Эта система изначально разрабатывалась для использования в Серверах, Соответственно у неё реализуются следующие важные особенности:
Ограничения доступа – используются так называемые списки доступа ACL, с помощью этого механизма можно каждому пользователю установить соответствующее им ограничение Среди таких ограничений может быть : Чтение, запись, просмотр содержимого каталога, исполнение файлов и т.д. Каждому пользователю можно приписать соответствующие ему права доступа. Данная файловая система является журнализированной, при возникновении какого – либо сбоя система на основе журнала изменений быстро восстанавливает информацию.NTFSмедленнее чем файловая системаFAT+ с версиейNTFS5 в этой файловой системе реализован механизм ввод. Вся информация о файлах хранится в Таблице называетсяMasterFileTable, Под каждый элемент отводится 2 Кб, как правило эта таблица располагается в начале файловой системы, если в процессе работы объём исчерпывается она динамически расширяется, части этой таблицы располагаются в произвольных местах файловой системы, что снижает производительность. Каждая запись этой таблицы состоит из следующих атрибутов:
1)Заголовок
2)Стандартная информация
3) Имя файла
4) Данные
5) Дескриптор безопасности
. Если файл меньше двух килобайт (Умещается в поле данных), то он будет храниться в главной таблице файлов в поле данные, а не занимать область на диске. Таким образом происходит экономия дискового пространства.
Совместимость между версиями Файловых систем Microsoft.
Во первых, существует возможность конвертации файловой системы FATвNTFSСредствами Windows, во вторых – поддержка длинных имён, Старые программы, запускаемые под управлением современных версийWindowsвидят длинные имена в формате 8+3. Преобразование осуществляется следующим образом: Длинные имена файлов усекаются до 6-ти знаков, далее ставится символ “~” и указывается номер, Если в имени фалов встречается несколько точек, то расширением файла считаетсята часть, которая идёт после последней точки, при этом она усекается до трёх символов, так же в имени файла используются запрещённые символы, то они удаляются.
Пример:
Длинноеимя.расширение Этот файл будет преобразован в следующее имя:
Длинно~1.рас
Если имя укладывается в формат 8+3, оно остаётся без изменений.
Логическая организация файловой системы