Восстановление после тупиков. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Восстановление после тупиков.



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

1. В большинстве систем нет достаточно эффективных средств, чтобы приостановить процесс, вывести его из системы и возобновить в последствии с того места, где он был остановлен.

2. Если даже такие средства есть, то их использование требует затрат и внимания оператора.

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

После обнаружения тупиков и удаления процессов необходимо производить проверку на тупики.

Организация памяти компьютера.

Запоминающие устройства компьютера разделяются на два уровня:

1. Основной (главный и оперативный);

2. Вторичный (внешняя память).

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

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

 

Оперативная память (ОЗУ).

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

Размерности: 64 Мб, 128 Мб, 256 Мб, 512 Мб, 1024 Мб.

КЭШ-память процессора.

Для достаточно быстрых компьютеров необходимо обеспечить быстрый доступ к ОЗУ иначе микропроцессор будет приостанавливать работу и быстродействие компьютера уменьшиться. Это сверхоперативная память относительно небольшого объема, в которой хранятся наиболее часто используемые участки ОЗу. КЭШ-память располагается «между» микропроцессором и ОЗУ. И при обращении микропроцессора к памяти сначала производиться поиск нужных данных в КЭШ-памяти. Поскольку время доступа КЭШ-памяти в несколько раз меньше, чем к обычной памяти. И обычно необходимые данные содержаться в КЭШ-памяти и среднее время доступа к памяти уменьшается.

BIOS – постоянная память (ПЗУ).

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

CMOS – полупостоянная память.

Это небольшой участок памяти для хранения конфигурации компьютера. Содержимое памяти не меняется при выключении компьютера. Изменить ее можно с помощью программы настройки конфигурации компьютера setup в BIOS.

Электронные диски.

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

Магнитные диски.

Эти носители в отличии от ОЗУ предназначены дл постоянного хранения информации. Жесткий несъемный диск C, D, G; сменные гибкие диски: дискеты, диски, A, E, F. Вся информация на дисках представлена в форме файлов.

Логические диски.

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

Пример: жесткий диск равен 40 Гб, на нем можно расположить два логических: C=10 Гб и D=30 Гб.

Жесткий диск.

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

 

Flash-накопители

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

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

Второй тип имеет меньшие размеры ячеек и быстрый последовательный доступ.

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

Среди главных достоинств это памяти можно назвать следующие:

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

· информация может храниться очень длительное время (десятки лет);

· сравнительно небольшие размеры;

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

· не содержит движущихся деталей (как в жестких дисках).

Основные недостатки флэш-памяти:

· невысокая скорость передачи данных (в сравнении с динамической оперативной памятью);

· незначительный объем (по сравнению с жесткими дисками);

· ограничение по количеству циклов перезаписи (хотя эта цифра в современных разработках очень высока – более миллиона циклов).

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

Понятие «управление данными» в настоящее время понимается как управление файлами.

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

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

Подсистема управления данными решает следующие задачи:

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

· обеспечение надежности хранения данных и их восстановления в случае сбоев;

· защита данных пользователя от несанкционированного доступа;

· управление одновременным совместным использованием данных со стороны нескольких процессов.

Характеристика файлов.

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

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

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

Тип файла. Можно выделить несколько существующих типов файлов, например, файлы данных, символьные и двоичные файлы, файлы программ и т.п.

Размер файла. Принято указывать в байтах, но в настоящее время еще часто указывается в тех единицах, в которых файл занимает наименьший размер (например, 6,29 МБ (6 602 180 байт)).

Временные штампы. Под этим термином понимаются различные отметки даты и времени. Как правило, наиболее важным является время последней модификации и время создания файла.

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

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

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

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

 

Каталоги

Каталог (Catalog) – справочник файлов и каталогов с ссылками на их расположение.

Справочник (Directory) – таблица идентификаторов и ссылок к соответствующим элементам данных.

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

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

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

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

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

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

Система обеспечивает гибкий и одновременно защищенный доступ к файлам.

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

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

Для эффективного управления файлами требуется также несколько блоков структурированных данных, главным из которых является блок управления файлом (БУФ), называемый также дескриптором файла.

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

 

Размещение файлов

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

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

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

Рис. 16.1 Способы размещения файлов на диске

 

Непрерывное размещение имеет два серьезных достоинства.

Информация о размещении файла очень проста и занимает мало места. Фактически достаточно хранить два числа: номер начального блока файла и число занимаемых блоков (или размер файла в байтах, по которому легко вычислить число блоков).

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

К сожалению, недостатки непрерывного распределения еще более весомы.

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

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

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

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

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

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

В современных ОС для файловых систем на магнитных дисках практически всегда используют сегментированное размещение. Иное дело файловые системы на дисках, предназначенных только для чтения (например, CD ROM). Нетрудно понять, что в этом случае недостатки непрерывного размещения не имеют никакого значения, а его достоинства сохраняются.

Еще одной важной характеристикой размещения файлов является степень его «дробности». До сих пор мы предполагали, что файл может занимать любое целое число блоков, а под блоком фактически понимали сектор диска. Проблема в том, что для дисков большого объема число блоков может быть слишком большим. Допустим, в некоторой файловой системе размер блока равен 512 байт, а для хранения номеров блоков файла используются 16-разрядные числа. В этом случае размер области данных диска не сможет превысить 512 * 216 = 32 Мб. Конечно, можно перейти к использованию 32-разрядных номеров блоков, но тогда суммарный размер информации о размещении всех файлов на диске становится чересчур большим. Обычный выход из этого затруднения заключается в том, что минимальной единицей размещения файлов считают кластер (называемый в некоторых системах блоком или логическим блоком), который принимается равным 2k секторов, т.е., например, 1, 2, 4, 8, 16, 32 сектора, редко больше. Каждому файлу отводится целое число кластеров, и в информации о размещении файла хранятся номера кластеров, а не секторов. Увеличение размера кластеров позволяет сократить количество данных о размещении файлов «и в длину и в ширину»: во-первых, для каждого файла нужно хранить информацию о меньшем числе кластеров, а во-вторых, уменьшается число двоичных разрядов, используемых для задания номера кластера (либо при той же разрядности можно использовать больший диск). Так, при кластере размером 32 сектора и 16-разрядных номерах можно адресовать до 1 Гб дисковой памяти.

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

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

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

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

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

В системах с непрерывным размещением часто каждый непрерывный фрагмент диска описывают так же, как файл, но отмечают его флажком «свободен».

Удобный и простой способ заключается в использовании битовой карты (bitmap) свободных кластеров. Она представляет собой массив, содержащий по одному биту на каждый кластер, причем значение 1 означает «кластер занят», а 0 – «кластер свободен». Для поиска свободного непрерывного фрагмента нужного размера система должна будет просмотреть весь массив.



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 39; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.189.7 (0.052 с.)