Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Функции файловой системы и иерархия данных.
Файловая система - это компонент ОС, который отвечает за сохранение данных в массовую память (жёсткий диск, флеш-память, оптические носители, и т.д.).
Объектами файловой системы являются файлы и каталоги. Файл хранит информацию; он удобен в использовании программистам и является той единицей, которой ОС может назначить права доступа. Каталоги содержат файлы и подкаталоги и позволяют пользователю о ОС удобно организовывать файлы в иерархическую структуру. Каталог - это таблица, в которой есть по одной записи для каждого находящегося в каталоге файла или подкаталога. Структура записи каталога зависит от файловой системы. Обычно запись содержит имя файла (или подкаталога) и связанную с файлом информацию, такую как атрибуты, или информацию, необходимую для считывая содержимого файла из массовой памяти. Каталоги обычно организованы в древовидную структуру. У дерева есть корневой каталог (в системах Unix обозначается символом " /" ), а другие каталоги являются ветвями корневого каталога (если содержатся непосредственно в нём), или исходят из корневого каталога. Следовательно, за исключением корневого каталога, и каждого файла или каталога есть старший каталог, т.е. каталог, к которому он относится.
Рис. Дерево файловой системы Файловая система ставит в соответствие абстрактную модель файлов и каталогов и их действительное расположение на диске, для чего ведёт соответствующую инфраструктуру. Эти структуры содержат информацию, необходимую для поиска файлов и каталогов на диске. Данные на массовых носителях информации хранятся секторами. В задачу файловой системы входит организовывать секторы в файлы и каталоги, а также вести учёт того, какие секторы заняты, а какие свободны. В более новых ёмких массовых носителях единицы информации, используемые для хранения файлов, имеют ещё больший размер. Современные файловые системы адресуют данные через структуры фиксированного размера, такие как блок (Block) или кластер (Cluster). Такие единицы могут хранить в разы больше данных, чем сектор, и как правило являются наименьшими единицами хранения данных в файловой системе. Если размер файла меньше единицы данных, то под него всё равно выделяется целая единица. Чтение данных большими блоками быстрее, что положительно сказывается на скорости обмена данных.
Семафоры. Понятие тупиковой ситуации при выполнении параллельных вычислительных процессов. Предотвращение и обход тупиков. Обнаружение и распознавание тупика.
Семафоры Семафор – это защищенная переменная, значение которой можно опрашивать и менять только при помощи специальных операций Р и V и операции инициализации, которая называется «инициализация семафора». Двоичные семафоры могут принимать только значения 0 и 1. Считающие семафоры (семафоры со счетчиками) могут принимать неотрицательные целые значения.
Операция Р над семафором S записывается как Р(S) и выполняется следующим образом: если S> 0 то S: =S=1 иначе (ожидать на S)
Операция V над семафором S записывается как V(S) и выполняется следующим образом: если (один или более процессов ожидают на S) то (разрешить одному из этих процессов продолжить работу) иначе S: =S+1
Семафоры можно использовать для реализации механизма синхронизации процессов путем блокирования/возобновления: один процесс блокирует себя (выполняя операцию Р(S) с начальным значением S=0), чтобы подождать наступления некоторого события; другой процесс обнаруживает, что ожидаемое событие произошло, и возобновляет заблокированный процесс (при помощи операции V(S)).
Считающие семафоры особенно полезны в случае, если некоторый ресурс выделяется из пула идентичных ресурсов. Каждая Р-операция показывает, что ресурс выделяется некоторому процессу, а V-операция – что ресурс возвращается в общий пул. Параллельные процессы Процессы называются параллельными, если они существуют одновременно. Они могут работать совершенно независимо друг от друга или они могут быть асинхронными – это значит, что им необходимо периодически синхронизироваться и взаимодействовать. Обычно весьма трудно определить, какие операции можно и какие нельзя выполнять параллельно. Отлаживать параллельные программы гораздо сложнее, чем последовательные; после того как выявленная ошибка предположительно исправлена, может оказаться, что восстановить последовательность событий, на которой эта ошибка появилась впервые, не удастся, поэтому, вообще говоря, просто нельзя утверждать с уверенностью, что данная ошибка устранена. Тупики Тупики (дедлоки) – важные факторы, которые должны учитывать разработчики ОС.
Один процесс может оказаться в тупиковой ситуации, если он будет ждать наступления события, которое никогда не произойдет. Два или более процессов могут попасть в тупик, при котором каждый процесс будет удерживать ресурсы, запрашиваемые другими процессами, в то время как самому ему требуются ресурсы, удерживаемые другими.
Динамически перераспределяемые ресурсы у процесса можно отобрать, а динамически неперераспределяемые нельзя. Выделенные, или закрепленные ресурсы в каждый конкретный момент времени может монопольно использовать только один процесс. Для возникновения тупиковой ситуации должны существовать необходимые условия: «взаимоисключение» (процессы заявляют исключительные права на управление своими ресурсами), «ожидание дополнительных ресурсов» (процессы могут удерживать за собой ресурсы, ожидая выделения им дополнительных запрошенных ресурсов), «неперераспределенность» (ресурсы нельзя принудительно отнимать у процессов), «круговое ожидание» (существует цепочка процессов, в которой каждый процесс удерживает ресурс, запрашиваемый другим процессом, который в свою очередь удерживает ресурс, запрашиваемый следующим процессом, и т.д.). Работа с тупиками: · Предотвращение тупиков (если обеспечить нарушение хотя бы одного необходимого условия, то в системе полностью исключается всякая возможность возникновения тупика). · Обход тупиков (тупиковая ситуация в принципе допускается, но в случае приближения тупиковой ситуации принимаются предупредительные меры). · Обнаружение тупиков (возникающие тупики локализуются с выдачей соответствующей информации для привлечения внимания операторов и системы). · Восстановление после тупиков (обеспечивается выход из тупиковых ситуаций – почти всегда с некоторой потерей результатов текущей работы).
Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 1367; Нарушение авторского права страницы