avva: (Default)
[personal profile] avva
Грубер хорошо пишет в недавней записи (англ.) об окошках с новыми документами в любых приложениях. Нет в наше время никакой причины для того, чтобы данные терялись, если приложение упало или по какой-то причине убито. Сохранять надо все, что пишет (рисует, строит, что угодно) пользователь, в фоновом режиме, каждую минуту (например). Это касается "неназванных" еще документов в той же мере, как и существующих файлов.

Date: 2009-02-21 01:00 am (UTC)
From: [identity profile] monomyth.livejournal.com
"всё время. "
слишком много лишнего I/O

Date: 2009-02-21 01:07 am (UTC)
From: [identity profile] salas.livejournal.com
Одно действие пользователя — одна небольшая запись в журнал. Или я чего-то не понимаю?

Date: 2009-02-21 01:40 am (UTC)
From: [identity profile] monomyth.livejournal.com
т.е. нажатие каждой клавишы должно быть записано на диск?
(deleted comment)

Date: 2009-02-21 07:25 am (UTC)
From: [identity profile] lair.livejournal.com
Одно нажатие клавиши занимает около 200 мкс, физическая запись на диск - не более 8 мкс, в 25 раз быстрее.
Угу. Движения высокоточной мышки? Рисунок по планшету?

Вы правда уверены, что приложение будет успевать писать с такой скоростью?

Date: 2009-02-21 04:24 pm (UTC)
From: [identity profile] salas.livejournal.com
Если у нас движение мышки меняет документ — это просто значит, что надо fsync() не после каждой операции, а, скажем, раз в несколько секунд. Впрочем, я бы и в текстовом редакторе считал разумным такой же дефолт.

Date: 2009-02-21 05:36 pm (UTC)
From: [identity profile] lair.livejournal.com
За "раз в несколько секунд" у вас накопится столько отдельных изменений, что их уже не так-то просто будет сохранять.
(deleted comment)

Date: 2009-02-21 05:27 pm (UTC)
From: [identity profile] lair.livejournal.com
В какой момент заканчивается рисование одной кривой, и почему рисование следующей должно быть на фоне записи на диск?
(deleted comment)

Date: 2009-02-21 05:33 pm (UTC)
From: [identity profile] lair.livejournal.com
Почему вы свято уверены, что запись на диск занимает в худшем случае 8 миллисекунд? Почему лайтрум, который пишет каждый stroke кистью, в это время не укладывается?
(deleted comment)

Date: 2009-02-21 07:21 pm (UTC)
From: [identity profile] lair.livejournal.com
Потому что если ваш диск вращается со скоростью 7200 оборотов в минуту, то ближайший свободный сектор в худшем случае окажется в районе головки записи через 8,3 миллисекунды
Это если считать, что надо записать один сектор. А если нет? А если свободные сектора не рядом? А если кроме записи нужно что-то еще сделать?

Я не знаю, что такое лайтрум, но если теоретически запись событий в реальном времени возможна, а он не укладывается, значит, он либо неправильно спроектирован, либо неправильно написан, либо операционная система, с которой он используется ("Виндоуз", надо полагать?), не в состоянии обеспечить таую запись.
Я что-то не вижу теоретической возможности записывать в реальном времени произвольное количество произвольных событий.

Системы реального времени обычно все-таки проектируются под конкретную задачу; я не думаю, что вам удастся заставить всех программистов, пишущих приложения под широко распространенную ОС, писать все их программы как системы реального времени.
(deleted comment)

Date: 2009-02-21 07:43 pm (UTC)
From: [identity profile] lair.livejournal.com
Вполне достаточно для того, чтобы записать символ с клавиатуры или описание мазка кисти.
Угу. Если вы хотите писать журнал действий - вам даже хватит. Проблема в том, что для создания нужного experience (все всегда сохранено) иногда нужно сохранять состояние.

Вы слышали что-нибудь про операционные системы реального времени общего назначения (general purpose real time), типа QNX?
Слышал.
(deleted comment)

Date: 2009-02-21 08:00 pm (UTC)
From: [identity profile] lair.livejournal.com
Текущее состояние документа, будь то текст или рисунок или что-угодно, определяется его состоянием в любой предыдущий момент времени (snapshot) и внесёнными изменениями, которые суть действия.
...только в том случае, если каждое действие детерминированно.

Если Вы слышали про QNX, тогда Ваше высказывание о том, что систему реального времени можно создать только для выполнения конкретной задачи, выглядит немного странно.
"A RTOS facilitates the creation of a real-time system, but does not guarantee the final result will be real-time; this requires correct development of the software."

Date: 2009-02-21 11:39 pm (UTC)
From: [identity profile] salas.livejournal.com
А зачем в редакторе (текстовом, графическом, каком угодно) недетерминированные действия?

Date: 2009-02-21 11:42 pm (UTC)
From: [identity profile] lair.livejournal.com
Во-первых, [livejournal.com profile] avva пишет о любых приложениях, а не только о редакторах. Например, в банальном приложении, осуществляющем захват аудио-потока (кстати, это аудио-редактор) содержимое файла после нажатия кнопки "Запись" недетерминировано.

Во-вторых, даже в текстовом редакторе есть недетерминированная операция: вставка текущей даты и времени.

(no subject)

From: [identity profile] salas.livejournal.com - Date: 2009-02-22 12:12 am (UTC) - Expand

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2009-02-22 12:16 am (UTC) - Expand

(no subject)

From: [identity profile] salas.livejournal.com - Date: 2009-02-22 12:28 am (UTC) - Expand

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2009-02-22 12:32 am (UTC) - Expand

(no subject)

From: [identity profile] salas.livejournal.com - Date: 2009-02-22 12:38 am (UTC) - Expand

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2009-02-22 12:44 am (UTC) - Expand

(no subject)

From: [identity profile] salas.livejournal.com - Date: 2009-02-22 01:02 am (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2009-02-22 09:21 am (UTC) - Expand

(no subject)

From: [identity profile] os80.livejournal.com - Date: 2009-03-26 05:02 pm (UTC) - Expand

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2009-02-22 09:10 am (UTC) - Expand
(deleted comment)

Date: 2009-02-22 09:13 am (UTC)
From: [identity profile] lair.livejournal.com
Конечно. Действия - это Ваши нажатия клавиш и движения мыши. Они детерминированы.
...только их результат для документа недетерминирован. Представьте себе, что я (в виндовом приложении) нажал ctrl-v. Клавиши детерминированы? Детерминированы. А результат? Конечно, нет - он зависит от состояния клипбоарда, который в вашем примере не отслеживается.

Или, скажем, я запустил (мышкой) макрос, который вставляет подпись с текущей датой. Тоже недетерминированная операция.

Date: 2009-02-21 01:52 am (UTC)
From: [identity profile] salas.livejournal.com
Почему бы и нет?

Date: 2009-02-21 02:12 am (UTC)
From: [identity profile] monomyth.livejournal.com
т.е. свапы, подгрузка файлов и т.д. все это долно внезапно прерываться и уступать место записи на диск нажатой кнопки. Таким образом ввод пользователя получает приоритет над приложением, а само приложение над ядром операционной системы, чудесно, наверное, будет.

Date: 2009-02-21 02:27 am (UTC)
From: [identity profile] msh.livejournal.com
свапы, подгрузка файлов и т.д. все это долно внезапно прерываться и уступать место записи на диск нажатой кнопки.

Типа эта .. типа того .. 21 век. Многозадачные системы, NCQ/TCQ, все такоэ

Date: 2009-02-21 02:28 am (UTC)
From: [identity profile] salas.livejournal.com
Что такое приоритет ввода над приложением и приложения над ядром?

Если речь о том, что поток, обрабатывающий ввод пользователя, должен в момент этого самого ввода получать высокий приоритет — то я об этом выше не писал, но вообще-то, афаик, большинство современных ОС именно так и устроены.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 07:41 pm
Powered by Dreamwidth Studios