Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к экзамену.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.25 Mб
Скачать

Основные проблемы реализации архивных хранилищ

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

8. Синхронизация: семафоры, мьютексы, барьеры, взаимоблокировки — реентерабельность.

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

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

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

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

Семафоры

Семафоры – примитивы синхронизации предложены Дейкстрой (Dijkstra) в 1968 г. в качестве компонента операционной системы THE

Семафор - это целочисленная неотрицательная переменная, для которой определены 2 операции: P (от датского слова proberen – проверять) и V (от verhogen – увеличивать).

Операции P и V выполняются атомарно

Классическое определение этих операций выглядит следующим образом:

P(S): пока S == 0 процесс блокируется;

S = S - 1;

V(S): S = S + 1;

Эта запись означает следующее: при выполнении операции P над семафором S сначала проверяется его значение. Если оно больше 0, то из S вычитается 1. Если оно меньше или равно 0, то процесс блокируется до тех пор, пока S не станет больше 0, после чего из S вычитается 1. При выполнении операции V над семафором S к его значению просто прибавляется 1.

Виды семафоров

Двоичный семафор

  • S может принимать значения 0 и 1, инициализируется значением 1

  • обеспечивает эксклюзивный доступ к ресурсу (например, при работе в критической секции)

  • одновременно может выполняться только один поток

Счетный семафор

  • S инициализируется значением N (число доступных единиц ресурса)

  • представляет ресурсы, состоящие из нескольких однородных элементов

  • позволяет потокам исполняться, пока есть неиспользуемые элементы