Системное программирование в UNIX средствами Free Pascal

Кэширование: вызовы sync и fsync


Из соображений эффективности в традиционной файловой системе копии суперблоков смонтированных систем находятся в оперативной памяти. Их обновление может выполняться очень быстро, без необходимости обращаться к диску. Аналогично все операции между памятью и диском обычно кэшируются в области данных оперативной системы вместо немедленной записи на диск. Операции чтения также буферизуются в кэше. Следовательно, в любой заданный момент времени данные на диске могут оказаться устаревшими по сравнению с данными кэша в оперативной памяти. В UNIX существуют две функции, которые позволяют процессу убедиться, что содержимое кэша совпадает с данными на диске. Системный вызов sync используется для сброса на диск всего буфера памяти, содержащего информацию о файловой системе, а вызов fsync используется для сброса на диск всех данных и атрибутов, связанных с определенным файлом.



Содержание раздела