ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Damir Shayhutdinov <damir@tecon.ru>
To: Gennadiy Redko <uit1@zaz.zp.ua>
Cc: community@altlinux.org
Subject: Re: [Comm] USB-диск. безопасно извлечь
Date: Thu, 16 Mar 2006 13:19:03 +0300
Message-ID: <20060316101903.GA7944@damir.rnd.local> (raw)
In-Reply-To: <441934A0.9090407@zaz.zp.ua>

On Thu, Mar 16, 2006 at 11:49:20AM +0200, Gennadiy Redko wrote:
> Damir Shayhutdinov пишет:
> 
> > 
> > Оно не прибудет по-любому, пока есть -o sync. Поэкспериментируйте.
> > 
> Так что все-таки происходит?
> Если кэш устройства пустой, то sync не должен ничего писАть на
> флэш, даже будучи запущенным.
> А если не пустой - тогда почему бы и не записать ?
Э-эх *одевает профессорскую мантию и подготовливает длинную лекцию*

Есть такая программа - sync(1). Она делает системный вызов sync(2),
который сбрасывает все буферы файлов на диск.

В отличие от этой программы, есть такая опция монтирования (-o sync). Она
похожа на действие системного вызова sync, вызываемого постоянно. То есть
любые операции записи (write) будут блокированы до тех пор, пока данные 
физически не попадут на диск. (к этой опции есть альтернатива - опция O_SYNC
при открытии файла, но я про нее говорить здесь не буду).

Пишет программа на диск строчку из допустим 4 байт - и выполнение
программы приостанавливается, пока эти 4 байта физически не будут записаны.
И если программе надо допустим записать 1024 раза по 4 байта - то она будет
1024 раза ждать пока эти данные будут физически записаны (и блок флешки
будет перезаписан 1024 раза).

Но если монтировать без -o sync, то эти 1024 вызовов по 4 байта
операционной системой будут преобразованы в одну запись длиной 4096 байт,
что будет сделано гораздо быстрее, и, что важнее, асинхронно с выполнением
основной программы - то есть программа не будет ждать, а сможет выполнять
свои вычисления дальше.

Таким образом, в зависимости от опции -o sync в параметрах монтирования в 
вышеприведенном примере, запись 4096 байт может быть выполнена 1024
физическими записями на диск (с -o sync) и одной физической записью (без
-o sync или что то же самое, с -o async).
Износ флешки таким образом, при включенном -o sync и вышеописанном использовании 
ускоряется в тысячу раз. Это конечно экстремальный случай, для
иллюстрации, но задумайтесь, разве изменение метаинформацией о файлах
(что происходит при каких-то изменениях в файловой системе) не является
похожим случаем?


-- 
WBR,
Damir Shayhutdinov


  reply	other threads:[~2006-03-16 10:19 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-14 13:35 unix9
2006-03-14 13:43 ` Алексей Синицын
2006-03-14 14:00     ` Алексей Синицын
2006-03-14 14:12         ` Алексей Синицын
2006-03-14 14:01 ` Genix
2006-03-14 13:57   ` Вячеслав Диконов
2006-03-14 14:21     ` Genix
2006-03-14 14:20     ` Genix
2006-03-14 14:23   ` Gennadiy Redko
2006-03-14 14:21     ` Genix
2006-03-14 14:58       ` Gennadiy Redko
2006-03-14 18:03         ` Алексей Синицын
2006-03-15  6:47           ` some_x
2006-03-15  6:51             ` Алексей Синицын
2006-03-15  6:51           ` Roman Savochenko
2006-03-15  7:08             ` Алексей Синицын
2006-03-15  7:22               ` Roman Savochenko
2006-03-15  7:36                 ` Алексей Синицын
2006-03-15  7:45                   ` Roman Savochenko
2006-03-15  8:20                     ` ALT Linux User
2006-03-15  8:27                       ` Roman Savochenko
2006-03-15  8:36                       ` Olvin
2006-03-15 10:27                         ` ALT Linux User
2006-03-15 10:56                           ` Roman Savochenko
2006-03-15 11:04                             ` ALT Linux User
2006-03-15 11:12                               ` Roman Savochenko
2006-03-15 12:03                                 ` Damir Shayhutdinov
2006-03-15 14:03                                   ` Roman Savochenko
2006-03-15 14:34                                     ` Damir Shayhutdinov
2006-03-15 14:43                                     ` Алексей Синицын
2006-03-15 15:03                                       ` ALT Linux User
2006-03-15 15:22                                         ` Roman Savochenko
2006-03-16  9:42                                           ` Алексей Синицын
2006-03-15 16:42                                   ` Gennadiy Redko
2006-03-15 17:07                                     ` Damir Shayhutdinov
2006-03-15 19:26                                       ` Gennadiy Redko
2006-03-15 19:33                                         ` Andrey Rahmatullin
2006-03-16 10:33                                           ` Nick S. Grechukh
2006-03-15 19:39                                         ` ALT Linux User
2006-03-15 20:06                                           ` Gennadiy Redko
2006-03-15 20:21                                         ` Damir Shayhutdinov
2006-03-15 20:38                                           ` Gennadiy Redko
2006-03-15 20:48                                             ` Gennadiy Redko
2006-03-16  8:53                                               ` Damir Shayhutdinov
2006-03-16  9:49                                                 ` Gennadiy Redko
2006-03-16 10:19                                                   ` Damir Shayhutdinov [this message]
2006-03-16 10:38                                                     ` Gennadiy Redko
2006-03-16 10:52                                                         ` Gennadiy Redko
2006-03-16 11:07                                                           ` Nick S. Grechukh
2006-03-16 11:16                                                   ` Alex Yustasov
2006-03-16 10:01                                                 ` Roman Savochenko
2006-03-16 10:24                                                   ` Damir Shayhutdinov
2006-03-16 11:08                                                     ` Roman Savochenko
2006-03-14 14:27   ` Sergey
2006-03-14 15:12   ` Olvin
2006-03-15 16:55 ` Andrei Lomov
2006-03-15 19:23   ` ALT Linux User

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060316101903.GA7944@damir.rnd.local \
    --to=damir@tecon.ru \
    --cc=community@altlinux.org \
    --cc=community@lists.altlinux.org \
    --cc=uit1@zaz.zp.ua \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git