13.2.4. Синхронизация областей памяти на диск
13.2.4. Синхронизация областей памяти на диск
Если для записи в файл используется карта памяти, модифицированные страницы памяти и файл будут в течение некоторого времени отличаться. Если процессу необходимо немедленно записать страницы на диск, для этого служит msync().
#include <sys/mman.h>
int msync(caddr_t addr, size_t length, int flags);
Первые два параметра, addr и length, устанавливают область для синхронизации с диском. Параметр flags устанавливает, каким образом должны синхронизироваться память и диск. Он состоит из одного или нескольких перечисленных ниже флагов, объединенных с помощью битового "ИЛИ".
MS_ASYNC Модифицированные версии области памяти запланированы на "скорую" синхронизацию. Использовать можно только либо MS_ASYNC, либо MS_SYNC. MS_SYNC Модифицированные страницы в области памяти записываются на диск до возврата системного вызова msync(). Использовать можно только либо MS_ASYNC, либо MS_SYNC. MS_INVALIDATE Эта опция позволяет ядру выяснять, записываются ли изменения на диск. Хотя эта опция не дает гарантию того, что они не будут записаны, она сообщает ядру, что необходимость сохранения изменений отсутствует. Этот флаг применяется только при особых условиях. 0 Передача 0 в msync() работает в ядрах Linux, хотя она не очень хорошо документирована. Она похожа на MS_ASYNC, но означает, что страницы должны записываться на диск при любом удобном случае. Обычно это значит, что они будут сбрасываться на диск при каждом следующем запуске потока ядра bdflush (обычно он запускается каждые 30 секунд), в то время как MS_ASYNC записывает страницы более интенсивно.Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Синхронизация куч
Синхронизация куч В NT для синхронизации доступа к кучам (глава 5) предусмотрены две функции — HeapLock и HeapUnlock. В каждой из этих функций единственным аргументом является дескриптор. Эти функции удобно применять в тех случаях, когда используется флаг HEAP_NO_SERIALIZE, или когда
Флаги областей VMA
Флаги областей VMA Поле флагов vm_flags содержит битовые флаги, которые определены в файле <linux/mm.h>. Они указывают особенности поведения и содержат описательную информацию о страницах памяти, которые входят в данную область памяти. В отличие от прав доступа, которые связаны
Списки и деревья областей памяти
Списки и деревья областей памяти Как уже рассказывалось, к областям памяти осуществляется доступ с помощью двух структур данных дескриптора памяти: полей mmap и mm_rb. Эти две структуры данных независимо друг от друга указывают на все области памяти, связанные с данным
Создание областей
Создание областей В версии 1.0 спецификации XSL у шаблонов страниц имелось пять областей (region). Центральная область, соответствующая основной части, телу страницы, называется областью тела (body region). Верхняя часть страницы, верхний колонтитул (header), называется передней
Создание встроенных областей: <fo:inline>
Создание встроенных областей: <fo:inline> Как вы уже видели в главе 11, при помощи элемента <fo:inline> вы можете форматировать части текста, задавая для них задний фон, подчеркивая текст или заключая текст в границы. Элемент позволяет форматировать встроенную область из
Синхронизация
Синхронизация Иногда очень сложно отказаться от работы со старыми программами. По разным причинам – многие «прикипели» к интерфейсу любимого электронного календаря, где-то та или иная программа является корпоративным стандартом… Но это совсем не значит, что от
Синхронизация
Синхронизация Для того чтобы фотографии любого вашего альбома прямо из Picasa появились в Интернете на сервисе Picasa Web Albums, необходимо совершить всего два простых действия. Во-первых, щелкнуть на ссылке «Веб-альбомы» над строкой поиска и ввести данные своей учетной записи
13.2.3. Отмена отображения областей
13.2.3. Отмена отображения областей После окончания отображения в памяти процесс может отменить отображение памяти с помощью munmap(). Это приводит к тому, что последующие доступы к этому адресу будут генерировать SIGSEGV (если только память не будет перераспределена) и сохраняет
13.2.5. Блокировка областей памяти
13.2.5. Блокировка областей памяти В Linux и многих других современных операционных системах для областей памяти можно организовать страничный обмен с диском (или отклонять, если их невозможно заменить каким-либо другим способом), когда возникает дефицит памяти. На
Создание рабочих областей для собраний из Outlook 2007
Создание рабочих областей для собраний из Outlook 2007 При создании запроса на собрание в Outlook 2007 можно также создать узел рабочей области для собраний или связать собрание с существующим узлом рабочей области. О рабочих областях для собраний рассказывалось в главе 8. Рабочие
Синхронизация потоков
Синхронизация потоков Обычным требованием для многопоточных приложений является синхронизация работы нескольких потоков. Для этого в Qt предусмотрены следующие классы: QMutex, QReadWriteLock, QSemaphore и QWaitCondition.Класс QMutex обеспечивает такую защиту переменной или участка
Разделение окна на несколько областей
Разделение окна на несколько областей В некоторых случаях, например при работе с большим документом, может понадобиться держать в поле зрения два участка документа одновременно. Для этого существует команда Разделить, которая находится в группе Окно вкладки Вид на
Закрепление областей
Закрепление областей Предположим, что вы работаете с большой таблицей. В процессе работы вам приходится часто использовать полосы прокрутки, чтобы ввести данные в различные ячейки. При этом заголовки столбцов (самые различные, например: Товар, Цена, Количество,
2.2.7.1 . Зеркалирование дисковых областей
2.2.7.1 . Зеркалирование дисковых областей Зеркалирование в INFORMIX-OnLine DS - это дублирование связной дисковой области, выделенной под базу данных, на такую же по размеру область. Исходная область называется первичной, а ее копия - зеркальной. Цели, для которых применяется
1.4.2. Штриховка замкнутых областей
1.4.2. Штриховка замкнутых областей Штриховка замкнутых областей на чертежах в двумерных редакторах выполняется автоматически после задания границ и параметров штриховки. Границы штриховки, как правило, можно задавать вручную и (или) автоматически. Автоматический способ
Синхронизация
Синхронизация При совместном использовании нескольких различных устройств важно обеспечить их полную синхронизацию. Работа всего оборудования должна опираться на одинаковую информацию о времени, а обслуживающие программы – уметь работать с разнообразными типами