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 записывает страницы более интенсивно.
Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Закрепление областей

Из книги Excel. Мультимедийный курс автора Мединов Олег

Закрепление областей Предположим, что вы работаете с большой таблицей. В процессе работы вам приходится часто использовать полосы прокрутки, чтобы ввести данные в различные ячейки. При этом заголовки столбцов (самые различные, например: Товар, Цена, Количество,


Разделение окна на несколько областей

Из книги Word 2007.Популярный самоучитель автора Краинский И

Разделение окна на несколько областей В некоторых случаях, например при работе с большим документом, может понадобиться держать в поле зрения два участка документа одновременно. Для этого существует команда Разделить, которая находится в группе Окно вкладки Вид на


2.2.7.1 . Зеркалирование дисковых областей

Из книги Руководство администратора баз данных Informix. автора Кустов Виктор

2.2.7.1 . Зеркалирование дисковых областей Зеркалирование в INFORMIX-OnLine DS - это дублирование связной дисковой области, выделенной под базу данных, на такую же по размеру область. Исходная область называется первичной, а ее копия - зеркальной. Цели, для которых применяется


Создание рабочих областей для собраний из Outlook 2007

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

Создание рабочих областей для собраний из Outlook 2007 При создании запроса на собрание в Outlook 2007 можно также создать узел рабочей области для собраний или связать собрание с существующим узлом рабочей области. О рабочих областях для собраний рассказывалось в главе 8. Рабочие


Синхронизация куч

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Синхронизация куч В NT для синхронизации доступа к кучам (глава 5) предусмотрены две функции — HeapLock и HeapUnlock. В каждой из этих функций единственным аргументом является дескриптор. Эти функции удобно применять в тех случаях, когда используется флаг HEAP_NO_SERIALIZE, или когда


Создание областей

Из книги XSLT автора Хольцнер Стивен

Создание областей В версии 1.0 спецификации XSL у шаблонов страниц имелось пять областей (region). Центральная область, соответствующая основной части, телу страницы, называется областью тела (body region). Верхняя часть страницы, верхний колонтитул (header), называется передней


Создание встроенных областей:

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Создание встроенных областей: <fo:inline> Как вы уже видели в главе 11, при помощи элемента <fo:inline> вы можете форматировать части текста, задавая для них задний фон, подчеркивая текст или заключая текст в границы. Элемент позволяет форматировать встроенную область из


13.2.3. Отмена отображения областей

Из книги КОМПАС-3D для студентов и школьников. Черчение, информатика, геометрия автора Большаков Владимир

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


13.2.5. Блокировка областей памяти

Из книги Компьютерная обработка звука автора Загуменнов Александр Петрович

13.2.5. Блокировка областей памяти В Linux и многих других современных операционных системах для областей памяти можно организовать страничный обмен с диском (или отклонять, если их невозможно заменить каким-либо другим способом), когда возникает дефицит памяти. На


1.4.2. Штриховка замкнутых областей

Из книги Секреты приложений Google автора Балуев Денис

1.4.2. Штриховка замкнутых областей Штриховка замкнутых областей на чертежах в двумерных редакторах выполняется автоматически после задания границ и параметров штриховки. Границы штриховки, как правило, можно задавать вручную и (или) автоматически. Автоматический способ


Синхронизация

Из книги Разработка ядра Linux автора Лав Роберт

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


Синхронизация

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Синхронизация Иногда очень сложно отказаться от работы со старыми программами. По разным причинам – многие «прикипели» к интерфейсу любимого электронного календаря, где-то та или иная программа является корпоративным стандартом… Но это совсем не значит, что от


Синхронизация

Из книги автора

Синхронизация Для того чтобы фотографии любого вашего альбома прямо из Picasa появились в Интернете на сервисе Picasa Web Albums, необходимо совершить всего два простых действия. Во-первых, щелкнуть на ссылке «Веб-альбомы» над строкой поиска и ввести данные своей учетной записи


Флаги областей VMA

Из книги автора

Флаги областей VMA Поле флагов vm_flags содержит битовые флаги, которые определены в файле <linux/mm.h>. Они указывают особенности поведения и содержат описательную информацию о страницах памяти, которые входят в данную область памяти. В отличие от прав доступа, которые связаны


Списки и деревья областей памяти

Из книги автора

Списки и деревья областей памяти Как уже рассказывалось, к областям памяти осуществляется доступ с помощью двух структур данных дескриптора памяти: полей mmap и mm_rb. Эти две структуры данных независимо друг от друга указывают на все области памяти, связанные с данным


Синхронизация потоков

Из книги автора

Синхронизация потоков Обычным требованием для многопоточных приложений является синхронизация работы нескольких потоков. Для этого в Qt предусмотрены следующие классы: QMutex, QReadWriteLock, QSemaphore и QWaitCondition.Класс QMutex обеспечивает такую защиту переменной или участка