Иерархия запоминающих устройств принцип Кэширования данных.

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

 

Стоимость 1 байта запоминающего устройства увеличивается с увеличением скорости.

 

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

В более быстром устройстве выделяется область памяти, в которой сохраняется наиболее часто используемая информация из медленного устройства (КЭШ). Это даёт некоторый прирост скорости . Комбинация не ограничивается ОЗУ и Жёстким диском, это может быть процессор и какие то другие устройства .

 

 

Как это действует на примере процессора и ОЗУ:

 

Есть процессор, когда ему требуется какой то адрес памяти он обращается к ОЗУ. В этом случае Кэш располагается между ними и запрос передаётся ему. Кэш представляет собой структуру из Адресов, данных и служебной информации. В случае, если требуемый процессору адрес находится в КЭШ-памяти, то данные, находящиеся в соответствующей ячейке извлекаются и передаются процессору. В случае, если требуемой информации нет, то она извлекается из оперативной памяти и передаётся в процессор, параллельно происходит её запись в КЭШ-память. Если в Кэш-памяти нет свободных ячеек то оттуда что-нибудь (самая старая запись ) удаляется на основе служебной информации. Таким образом в Кэш памяти будет находиться часто используемая информация и процессор будет обращаться не к медленному ОЗУ и простаивать несколько тактов, а будет получать информацию моментально. В современных процессорах Кэш = 2,4 и более мегабайт.

Математики посчитали что эффективность КЭШей, или вероятность попадания в КЭШ может достигать 90%. Такие КЭШи существуют не только для процессоров но и для жёстких дисков, составляют около 16-32 мегабайт. Так же этот принцип используется при доступе к Вэб-страницам.

 

4) УПРАВЛЕНИЕ ФАЙЛАМИ И ВНЕШНИМИ УСТРОЙСТВАМИ

 

1) Физическая структура файловой системы.

Долговременным устройствам хранения предъявляются следующие требования:

А) Устройства должны хранить большие объёмы информации,

Б)информация должна сохраняться и после прекращения работы процесса использующего её.

В) Несколько процессов должны иметь возможность одновременного получения доступа к информации.

Решением является хранение этой информации на специальных накопителях (Жёсткие диски, компакт. Диски, ленты и т.д.) В виде модулей называемых ФАЙЛАМИ. Информация, хранимая в файлах обладает устойчивостью, т.е файл и информация хранимая в нём никуда не пропадает. Совершенная ОС обладает разными свойствами. В том числе и защитой.

 

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

А) Совокупность всех файлов на диске

Б) Набор структур данных, используемых для управления файлом, такие как: Каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства.

В) Комплекс систем, реализующих управление файлами, создание управление и т.д.

 

1)Физическая структура файловой системы.

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

Загрузочная область состоит из следующих частей:

а) заголовок тома – содержит в себе информацию о формате диска

б)Каталог тома – содержит информацию о файлах лежащих на диске, которые содержат ядро ОС.

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

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

1)В виде непрерывной последовательности блоков. Имеется преимущество – блоки стандартные, а недостатки в том, что в дальнейшем может быть невозможным увеличение размера файла. Такие простейшие файловые системы существовали на заре развития компьютеров.

2) В хранении файла в виде связанного списка блоков. При этом в начале или в Конце блока указывается номер следующего блока. Такой способ позволяет создавать файлы неограниченного размера. В процессе работы изменять их размер. Недостатком такого способа является то, что для доступа к произвольному блоку необходимо прочесть всю цепочку до этого блока. Ещё один недостаток связан скорее с особенностью организации, вся работа дисковых накопителей, программ строится на чтении целиком блока, а так как часть этого блока отдана под номер следующего блока, получается что блок состоит из меньшего кол-ва килобайт, а программы хотят прочесть всё кол-во КБ, В этом случае будут читаться два блока, первый и кусок второго, Это выливается в то, что вместо одной операции чтения происходят две.

3) Хранение информации о блоках предполагается с помощью связанного списка индексов. В этом случае с каждым блоком связывается некий элемент, который называется ИНДЕКС. Индексы располагаются либо в отдельной области диска (UNIX, таблицы индексных дескрипторов ), либо являются частью информации о файле (MSDOS, FAT). Плюс в том что за короткое время можно обратиться к произвольному блоку путём чтения индексов файлов, а так же в том, что блоки данных не содержат никакой лишней информации. За все удобства приходится расплачиваться скоростью работы, и тем что это более сложная система и её сложнее организовать.

ФАЙЛОВАЯ СИСТЕМА UNIX.

Самая простейшая из систем – файловая система S5. Состоит из 4 больших разделов. Сначала идёт загрузочная область, затем идёт суперблок, потом таблица индексных дескрипторов, дальше блоки данных и свободные блоки. Загрузочная область занимает один блок, он содержит в себе программы, служащие для первоначального запуска операционной системы (Вторичный загрузчик). Второй блок занимает так называемый суперблок, - это наиболее важная часть файловой системы, в нём содержится информация, которая нужна для работы файловой системы, Если он будет уничтожен – работа файловой системы не возможна, В некоторых файловых системах копии суперблока распределены по жёсткому диску. Таблица индексных регистров имеет размерность ISIZE, там хранятся индексные дескрипторы (описатели) файлов. Максимальное количество файлов, которые могут быть созданы определяется количеством индексных дескрипторов. Под понятием файл тут подразумевается в том числе и Каталог и специальные файлы, или файлы устройств. В Блоках данных храниться информация о файлах, находящихся в файловой системе, максимальный размер файловой системы определён параметром FSIZE, всё что между блоком FSIZE и 2+isize- Это файлы. Размерность таблицы индексных дескрипторов и размерность области под блоки данных определяется при инициализации файловой системы (Форматировании). Соответственно в UNIX Есть 2 ограничивающих параметра, а именно размер свободного пространства, и максимальное количество индексных дескрипторов.

Суперблок файловой системы содержит следующие параметры:

Статическая информация:

1) Размер файловой системы (fsize)- максимальный номер блока данных в файловой системе.

2) Физические характеристики дисков.

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

При каких-либо операциях ввода – вывода, счётчик индексных дескрипторов поменяется на ту копию, которая находится в памяти. При незапланированном отключении электропитании, или аппаратном сбое, Изменившаяся информация в Суперблоке теряется.

4) Индексные дескрипторы файлов (i-node, или описатель файлов.)- Размер каждого индексного дескриптора составляет 64 байта. Индексный дескриптор содержит в себе данные о типе файлов, код защиты, дату и время последней модификации или создания, идентификаторы владельца и группы владельцев. И информацию о расположении блоков данных на диске. Он в себе не содержит имя файла. Информация о том, где располагаются блоки данных хранится в следующем виде:

Под это выделено 13 элементов, первые 10 содержат в себе непосредственно номера блоков, в которых содержится файл, если этого не хватает, используется 11 элемент – указывает на номер блока, содержащий адреса на 128 блоков. Если и этого не хватает, есть 12 элемент – указывает на структуру (блок) в которой содержится 128 ссылок, каждая из которых является переходом на следующие 128 элементов. Если и этого не хватает, то в 13 элементе реализуется 3-х уровневая система 128х128х128. Все индексные дескрипторы пронумерованы, начиная с 1.

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

В случае удаления фала:

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

 

Виртуальная файловая система VFS

Уже в UNIX System V Release 3 был разработан механизм переключения файловых систем – File System Switch (FSS), Этот механизм был дополнительным слоем между ядром операционной системы и файловой системой, и все системные вызовы ядра файловой системы он преобразовывал в команды для конкретной файловой системы. При этом ведно не знает деталей реализации файловой системы. Большее распространение получила другая разработка, которая была представлена компанией SUN Microsystems. Этот механизм называется Виртуальной файловой системой. Он был реализован в 4 рэлизе Unix. Суть этого метода аналогична предыдущему, представляет собой некую абстрактную файловую систему , работа с которой осуществляется путём определённого стандартизированного набора системных вызовов, при этом VFS осуществляет перевод этих системных вызовов в команды конкретной файловой системы, а недостающие возможности (в FAT нет ограничения доступа.) они эмулируются, VFS предоставляет возможность работы с файловой системой как с единым целым, для подключения новых накопителей используется операция монтирования, при этом дополнительная файловая система (Дискета) Становится частью основной файловой системы.

 

Файловые системы разработки компании IBM

HPFS – предназначалась для работы на рабочих станциях, в ней не было возможности ограничения доступа, на тот момент – надёжнее FAT. Использовалась в операционной системе OS/2 WARP.Вышла из эксплуатации в Районе с 98-2000 года вместе с завершением разработки и поддержки операционной системе OS/2.

 

Файловые Системы разработки Microsoft.

FAT- есть куча проблем: Размер файловой системы ограничен 2.1 Гб, при этом размер одного кластера составляет 32 Кб, Соответственно если Кластер не кратен 32 Кб, то физически он будет занимать два кластера, Потеря – 40 процентов, так же из недостатков можно отметить что файловая система не предназначена для работы многопользовательской сети И плохо переносит Аварийное отключение питания (Аппаратный сбой), относительно NTFS. Файлы должны записываться в формате 8+3, Имя – 8 символов, разрешение 3 символа. Имена файлов содержатся вместе со служебной информацией о файле. Начиная с Win 95/98 была разработано улучшенная версия этой файловой системы В этой файловой системе было пройдено ограничение 2 Кб, длинна файла стала составлять порядка 220 символов. На сегодняшний день если используется файловая система, то используется её разновидность FAT32. На различных аппаратных устройствах, файл серверах, работающих под управлением не операционной системы Windows – используется файловая система Fat32.

NTFS – Было 2 версии NTFS4- использовалась до Windows NT4.0 включительно, NTFS5 используется в Windows2000 и выше. Обратной совместимости у этих файловых систем нет. Эта система изначально разрабатывалась для использования в Серверах, Соответственно у неё реализуются следующие важные особенности:

Ограничения доступа – используются так называемые списки доступа ACL, с помощью этого механизма можно каждому пользователю установить соответствующее им ограничение Среди таких ограничений может быть : Чтение, запись, просмотр содержимого каталога, исполнение файлов и т.д. Каждому пользователю можно приписать соответствующие ему права доступа. Данная файловая система является журнализированной, при возникновении какого – либо сбоя система на основе журнала изменений быстро восстанавливает информацию. NTFS медленнее чем файловая система FAT + с версией NTFS5 в этой файловой системе реализован механизм ввод. Вся информация о файлах хранится в Таблице называется Master File Table, Под каждый элемент отводится 2 Кб, как правило эта таблица располагается в начале файловой системы, если в процессе работы объём исчерпывается она динамически расширяется, части этой таблицы располагаются в произвольных местах файловой системы, что снижает производительность. Каждая запись этой таблицы состоит из следующих атрибутов:

1)Заголовок

2)Стандартная информация

3) Имя файла

4) Данные

5) Дескриптор безопасности

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

Совместимость между версиями Файловых систем Microsoft.

Во первых, существует возможность конвертации файловой системы FAT в NTFS Средствами Windows, во вторых – поддержка длинных имён, Старые программы, запускаемые под управлением современных версий Windows видят длинные имена в формате 8+3. Преобразование осуществляется следующим образом: Длинные имена файлов усекаются до 6-ти знаков, далее ставится символ “~” и указывается номер, Если в имени фалов встречается несколько точек, то расширением файла считаетсята часть, которая идёт после последней точки, при этом она усекается до трёх символов, так же в имени файла используются запрещённые символы, то они удаляются.

Пример:

Длинноеимя.расширение Этот файл будет преобразован в следующее имя:

Длинно~1.рас

Если имя укладывается в формат 8+3, оно остаётся без изменений.

 

2) Логическая организация файловой системы

2.1) Типы файлов

Файлы бывают разных типов:

1) Текстовый файл – представляет собой фал, который можно просмотреть обычным текстовым редактором.

2) Двоичный файл – Те файлы , информация в которых информация закодирована в специальном формате. К таким файлам относятся исполняемые файлы, картинки, видео и т.д.

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

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

2.2) Иерархическая структура каталогов

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

Файл с названием “.” , указывающий на текущий каталог и файл “..” Указывающий на каталог на уровень выше

1)Преимущество системы Каталог – файл – возможность быстро находить нужный файл.

Недостаток – сложность организации многопользовательского режима работы

2) Иерархическая структура в виде дерева.

3) Иерархическая структура в виде сети- такие типы систем используются в настоящее время, каталоги образуют дерево если файлу разрешено входить только в один каталог и сеть, если файл может входить сразу в несколько каталогов. В MS Windows Файловая система образует дерево, в UNIX – сеть.

 

ПОЛНЫЕ И ОТНОСИТЕЛЬНЫЕ ИМЕА ФАЙЛОВ.

1) Полное имя файла (абсолютное) – путь от корня файловой системы по иерархии каталогов.

Корень файловой системы обозначается в UNIX обозначается символом / В Windows – названием диска C:\ , последний слог – имя самого файла.

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

1) – Символ “.”, который будет означать текущий каталог

2) – Символ «..» который означает каталог выше.

В Юникс символ точка используется для запуска программ.

 

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

 

В Юникс – если не указано полное имя файла, то система ищет только в этой переменной

2.3) Структура файловой системы UNIX

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

В качестве конкретной файловой системы могут быть: ext2 – самая распространённая файловая система LINUX. EXT3, Reiser FS – более свежие версии файловых систем под UNIX. Есть файловые системы , информация в которых хранится в сильно сжатом виде, они работают только на чтение, как правило, используются во встраиваемых устройствах. И т.д. Некоторые файловые системы являются журнализированными, некоторые предназначены для работы в режиме только на чтение.

Корень файловой системы один и обозначается символом /. Корень хранится в отдельной файловой системы минимального размера в режиме только на чтение, дабы не наебнулось.

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

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

/etc – хранятся все конфигурационные файлы, в том числе и скрипты для запуска системы.

/lib – в нём содержатся библиотеки, используемые программами из каталогов bin, sbin

/lib/modules – хранятся дополнительные подгружаемые модули ядра.

/dev – хранятся специальные файлы, или файлы устройств.

/dev/hdа - файл, ассоциируемый с первым жёстким диском системы

/dev/sda – первый жёсткий диск с интерфейсом SCSI

 

/tmp – в нём хранятся временные файлы. В системе Unix есть программа которая автоматически удаляет старые файлы старше двух недель. ТАм могут храниться временные файлы web – Сессий.

 

/boot – этот каталог по большей части используется в ОС Linux в других ОС Unix его может не быть, в этом каталоге находятся файлы, необходимые для загрузки ОС (Ядро, резервная копия загрузочной области и т.д.) Файлы этого каталога используются только при загрузки ядра в Оперативную память. Лучше все важные каталоги разместить в отдельной файловой системе.

 

/var – находится разнообразная динамически меняющаяся инфомрация, например в подкаталоге /var/log – журнал безопасности (Если хочешь скрыть следы своего присутствия – затри инфу тут) /var/spool – располагаются различные очереди. /var/mail – располагаются почтовые ящики пользователя.

 

/usr – В этом каталоге находятся все пользовательские программы и файлы, так же некоторые системные программы хранятся в подкаталогах этого каталога.

 

/usr/include – заголовки для программирования на языке СИ.

/usr/src – исходный код программ, тут же – компиляция.

/usr/Home – каталог с домашними папками пользователей (иногда)

Каталог /root – в нём находится домашний каталог системного администратора.

Хранение конфигурации ОС UNIX

Конфигурация хранится в виде текстовых файлов в каталоге /etc в этот каталог разрешена запись только системному администратору, среди таких данных находятся в том числе учётные записи пользователей, и так же скрипты, используемые при запуске системы.

 

/etc/passwd – этот файл хранит в себе информацию обо всех пользователях и их пароли, правда в зашифрованном виде. Пароль расшифровать нельзя. Такие пароли расшифровываются за приемлемое время методом перебора. Все пользователи имеют доступ на чтение, на запись имеет доступ только системный администратор.

 

Alex:X:500:500:alex,100,101…:/home/alex:/bin/bash

 

Если во втором поле X – пароль находится в etc/Shadow

Если там *, то пароль не установлен.

Если никакого символа нет, значит у учётной записи нет пароля.

Если запись типа x.u8rcx…. – зашифрованный пароль.

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

 

/etc/shadow – создан в 90-е годы для больше безопасности теперь в нём хранятся пароли и информация относительно смены паролей, и т.д. Этот файл доступен только системному администратору. Другие пользователи доступа к нему не имеют вообще.

 

Информация записывается в следующем виде:

Alex:x.u8RC: N1:n2:n3:n4:n5:n6:n7

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

N1- указывается дата последней смены пароля

N2- количество дней между сменами пароля, чаще чем указанно тут смена не возможна

N3- Максимальный срок в днях между сменами пароля.

N4 – Дни до предупреждения о истечении срока действия пароля

N5 – дни до отключения пароля при не регистрации пользователя в системе.

N6 – количество дней до истечения сока действия пароля.

N7 – зарезервировано для будущего использования.

Схожие возможности по управлению учётными записями существуют так же в Microsoft Windows Server.

 

 

/etc/group/ - хранит в себе информацию о группах пользователей, информация записывается в следующем формате: USERS::100:ae,alex,……….(список пользователей).

 

/etc/inittab – конфигурационный файл, используемый при запуске системы, используется программой INIT, которая в свою очередь запускает систему. Эта программа является первой программой, которая запускается при запуске системы. Если этот файл будет отсутствовать – запуск системы будет невозможен.

 

/etc/rc.d/ (Может запускаться подругому), в этом Каталоге содержатся скрипты для запуска дополнительных программ, таких как поддержка сети, поддержка всякий web-сервисов (telnet, web, ftp).

 

/etc/fstab – перечень устройств, содержащих файловую систему и делается настройка необходимости подключения их при запуске системы, так же в этом файле указываются устройства, содержащие область подкачки и возможно служебные файловые системы, такие как (/proc-procfs , /sys – sysfs, это в Linux ) Они являются отображением текущего состояния ваших операционных систем.

 

/etc/motd “Сообщение дня” автоматически выводимое при входе пользователя в систему

 

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

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

 

КАТАЛОГ / dev, содержащий файлы устройств.

Рассмотрим файлы устройств на примере LINUX т.к. названия могут быть различны в разных системах.

 

/dev/tty.1 – терминал пользователя номер 1. Фактически – клавиатура, мышь, монитор, подключенные к компьютеру. Терминалов может быть несколько.

 

/dev/ttyS0 – последовательный порт в простонародии называют COM1

.

.

SN - -------- - ------- COMN

 

/dev/had – Это Primary Master компьютера, если на жёстком диске есть несколько разделов, то пишется так: /dev/hda1 – обращаемся к первому разделу. При монтировании файловых систем используются такие указатели.

 

/dev/sda – Это SCSI диск номер 1

 

/dev/fd0 – Floppy дисковод

 

Пример подключения дополнительного жёсткого диска.

Mount –t EXT3(это тип файловой системы которою хотим подключить) /dev/hdd1 /mnt/disk – между каждым слогом – пробел..

Извлечь устройство можно только после того, как оно будет отключено.

 

КАТАЛОГ /PROC

 

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

 

/proc/kcore – отображение физической памяти компьютера в данный момент времени. Размер этого файла совпадает с размером физической памяти системы.

 

/proc/stat – различная статистическая информация о работе системы и т.д.Некоторые файлы можно просто просмотреть, а для просмотра некоторых используются специальные программы.

2.4) Структура файловых систем Windows