Cтраница 2
Затем доступ запрашивает пишущий процесс. Запрос отклонен, поскольку пишущим процессам необходим монопольный доступ, и пишущий процесс приостанавливается. Пока в базе есть хотя бы один активный читающий процесс, доступ остальным читателям разрешается, а они все приходят и приходят. Если, предположим, новый читающий процесс запрашивает доступ каждые 2 с, а провести в базе ему надо 5 с, то пишущий процесс никогда в базу не попадет. [16]
Она происходит, когда в группе процессов каждый получает монопольный доступ к некоторому ресурсу и каждому требуется еще один ресурс, принадлежащий другому процессу в группе. Все процессы оказываются заблокированными, и ни один никогда не сможет заработать снова. [17]
![]() |
Ожидание - дело малоинтересное. Прежде чем пинать принтер, посмотрите, сколько заданий в очереди ожидает вывода. [18] |
Задание печати, отправленное на принтер, обычно поступает в очередь и находится в ней до тех пор, пока принтер не завершит вывод всех предыдущих заданий. Если принтер находится на вашем рабочем столе и вы обладаете монопольным доступом к нему, печать обычно начинается через несколько секунд. Но если один принтер обслуживает большое количество пользователей, ждать приходится довольно долго. [19]
Операция сохранения измененного макроса во время его выполнения другим пользователем может привести к ошибкам при выполнении. Во избежание этого рекомендуется перед изменением макроса открывать базу данных для монопольного доступа. [20]
Доступ к разделу осуществляется посредством указателя раздела, который может употребляться в специальном операторе над базой данных ( см. разд. Когда указатель раздела состоит из одного лишь имени базы данных, подразумевается монопольный доступ ко всей базе данных. [21]
СУБД должна позволять двум или более программам параллельно обращаться к данным и корректировать их. Для того чтобы исключить нежелательные взаимодействия между параллельными программами, должна быть также предусмотрена возможность монопольного доступа к базе данных. [22]
Программное обеспечение общего поля внешней памяти на НМД и НМЛ позволяет организовать определенный порядок работы с набором данных, расположенных ля общих устройствах. Пользователь имеет возможность логически резервировать НМД и НМЛ на период, задаваемый с помощью макрокоманд резервирования и освобождения устройства, что обусловливает монопольный доступ к заданному накопителю от соответствующей ЭВМ. [23]
В этой модели операция синхронизации разделяется на две разные операции. Чтобы считать или записать общую переменную, процессор ( то есть его программное обеспечение) сначала должен выполнить операцию acqui re над переменной синхронизации, чтобы получить монопольный доступ к общим разделяемым данным. Потом процессор выполняет операцию release над переменной синхронизации, чтобы показать, что он завершил работу. Операция rel ease не требует завершения незаконченных записей, но сама она не может быть завершена, пока не закончатся все ранее начатые записи. Более того, новые операции памяти могут начинаться сразу же. [24]
Проблема заключается в том, что кэш оперирует блоками по 32 или 64 байт. Обычно слова, окружающие слово блокировки, нужны центральному процессору, удерживающему это слово. Поскольку команда TSL представляет собой запись ( так как она модифицирует слово блокировки), ей требуется монопольный доступ к блоку кэша, содержащему слово блокировки. Таким образом, каждая команда TSL помечает блок кэша владельца блокировки как недействительный и получает приватную, эксклюзивную копию для запрашивающего центрального процессора. Как только владелец блокировки изменит слово, соседнее с блокировкой, блок кэша перемещается на его машину. В результате весь блок кэша, содержащий слово блокировки, постоянно как челнок мотается взад-вперед от центрального процессора, удерживающего блокировку, к центральному процессору, пытающемуся ее получить. Все это создает довольно значительный и совершенно излишний трафик шины. [25]
Кроме того, обеспечивается определенная независимость программ и данных, характерная для СУБД, за счет средств определения данных, с помощью которых описывается база. Это описание включается в систему КАМА отдельно и независимо от прикладных программ на этапе подготовки системы к работе. К особенностям средств управления базами данных следует отнести также возможность одновременного просмотра в режиме диалога нескольких участков базы данных, монопольный доступ к обновляемым файлам, динамическое открытие ( закрытие) файлов в процессе работы системы и наличие дополнительной возможности использования СУБД ОКА с помощью интерфейса КАМА-ОКА. В последнем случае система ОКА работает как подзадача системы КАМА и предоставляет прикладным программам все возможности управления данными системы ОКА. [26]
Когда строка кэш-памяти меняется, нужно сообщить в исходный узел, даже если существует только одна копия строки кэш-памяти. Если существует несколько копий, изменение одной из них требует объявления всех остальных недействительными. Поэтому нужен какой-либо протокол, чтобы устранить ситуацию состояния гонок. Например, чтобы изменить общую строку кэш-памяти, один из держателей этой строки должен запросить монопольный доступ к ней перед тем, как изменить ее. В результате все другие копии будут объявлены недействительными. [27]
Это можно сделать, если запрашивающая сторона сначала будет выполнять простую операцию чтения, чтобы убедиться, что мьютекс свободен. Только убедившись, что он свободен, центральный процессор выполняет команду TSL, чтобы захватить его. В результате большинство операций опроса представляют собой операции чтения, а не операции записи. Когда мьютекс считан, владелец выполняет операцию записи, для чего требуется монопольный доступ. При этом все остальные копии этого блока кэша объявляются недействительными. [28]