Преимущества FIFO перед файлом?

Обсуждаем вопросы продвижения Linux в школах, делимся опытом, рассказываем об успехах, просим помощи

Модератор: Модераторы разделов

Ответить
Rabb1t
Сообщения: 3

Преимущества FIFO перед файлом?

Сообщение Rabb1t »

Здравствуйте.
Подскажите, почему fifo лучше файла? То что работает быстрее понятно, но почему именно? Защищаем лабу и никак не можем найти ответ, который удовлетворит преподавателя.
Надеюсь, что вопрос задан корректно.

Заранее, спасибо.
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: Преимущества FIFO перед файлом?

Сообщение Kopilov »

Если речь о файле на жестком диске -- то, очевидно, потому, что не используется жесткий диск (один из самых медленных элементов компьютера).
Если файл в оперативной памяти -- намного медленнее не будет, но ньюансы так же есть.
Во-первых, двум программам может быть сложно работать с файлом одновременно, правильно "понимая" друг друга, а запуск программ последовательно -- тоже потеря времени.
Во-вторых, большой файл в памяти разместить трудно, а с fifo (я так понимаю, речь о pipe, в сленге: конвейер, command1 | command2) объём передаваемых данных ничем не ограничен, если обе программы работают одновременно, создавая и поглощая данные с одной скоростью.
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Преимущества FIFO перед файлом?

Сообщение Женя Подсыпальников »

Rabb1t писал(а):
24.06.2014 16:34
Надеюсь, что вопрос задан корректно.

Надеюсь, что нет... :)
По мне - так воспринимается типа "так чем же циркулярка лучше лобзика ?"

Отличия - в порядке чтения. Во Фифе - хронология чтения соответствует хронологии записи.
Ещё - во Фифе - иногда держится лишь фиксированный объём (меньше памяти),
что, например, может не позволить писателю "вспомнить, что он писал вчера"... :)
Пойдём на рыбалку !
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Преимущества FIFO перед файлом?

Сообщение Bizdelnick »

Rabb1t писал(а):
24.06.2014 16:34
никак не можем найти ответ, который удовлетворит преподавателя.

Как правило такой ответ можно найти только спросив кого-то, кто уже сдавался тому же преподу. Независимо от того, о чём вопрос, и к какой вообще области знаний он относится. Другой путь - узнать, над чем работал препод последние годы, и искать ответ применительно к его работе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: Преимущества FIFO перед файлом?

Сообщение Kopilov »

Согласен, говорить "лучше" тут нельзя (иначе файлов бы не существовало :) )
Я пытался ответить на вопрос "почему работает быстрее -- там, где применим".
Спасибо сказали:
Rabb1t
Сообщения: 3

Re: Преимущества FIFO перед файлом?

Сообщение Rabb1t »

Kopilov писал(а):
24.06.2014 16:53
Если речь о файле на жестком диске -- то, очевидно, потому, что не используется жесткий диск (один из самых медленных элементов компьютера).
Если файл в оперативной памяти -- намного медленнее не будет, но ньюансы так же есть.
Во-первых, двум программам может быть сложно работать с файлом одновременно, правильно "понимая" друг друга, а запуск программ последовательно -- тоже потеря времени.
Во-вторых, большой файл в памяти разместить трудно, а с fifo (я так понимаю, речь о pipe, в сленге: конвейер, command1 | command2) объём передаваемых данных ничем не ограничен, если обе программы работают одновременно, создавая и поглощая данные с одной скоростью.


Благодарю. Что-то такое мы ему уже говорили и что-то ему не понравилось, попробуем еще раз :)

Женя Подсыпальников писал(а):
24.06.2014 17:17
Rabb1t писал(а):
24.06.2014 16:34
Надеюсь, что вопрос задан корректно.

Надеюсь, что нет... :)
По мне - так воспринимается типа "так чем же циркулярка лучше лобзика ?"

Отличия - в порядке чтения. Во Фифе - хронология чтения соответствует хронологии записи.
Ещё - во Фифе - иногда держится лишь фиксированный объём (меньше памяти),
что, например, может не позволить писателю "вспомнить, что он писал вчера"... :)


"Какие преимущества fifo перед файлом?". именно таким вопросом он нас мучает уже почти месяц)


Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Преимущества FIFO перед файлом?

Сообщение Hephaestus »

Rabb1t писал(а):
25.06.2014 07:38
"Какие преимущества fifo перед файлом?".

1. Не требует свободного пространства на диске.
2. Работает быстрее, так как ОЗУ быстрее, чем дисковая подсистема.
3. Данные обрабатываются потоком, а значит можно обработать больше, чем есть свободного пространства и свободной памяти.

Для подкрепления пример.
Есть такой способ соединить два видеофайла в формате avi.
Чисто механическое соединение невозможно.
Значит нужно файлы разжать в формат "сырого" видео.
Однако такие разжатые файлы будут иметь размер в десятки гигабайт. Хранить такие объемы может быть негде.
FIFO позволяет решить эту проблему.
Каждый файл разжимается в отдельный FIFO-файл, эти файлы механически соединяются в один, который затем снова сжимается нужным кодеком - и всё это происходит одновременно.
Поскольку данные обрабатываются потоком, то их не требуется нигде хранить и сохраняется только результат.
Условно говоря, можно таким образом соединить два файла avi по 1,5Гб каждый при объеме памяти в 1,5Гб и свободном дисковом пространстве в 3Гб.
Отрицательной стороной описанного способа соединения видеофайлов является нагрузка на процессор и затраты по времени, поскольку файлы не просто соединяются, а ещё и дважды перекодируются. Также возможна потеря качества, но её можно свести к минимуму.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Преимущества FIFO перед файлом?

Сообщение Женя Подсыпальников »

Rabb1t писал(а):
25.06.2014 07:38
Какие преимущества fifo перед файлом?


Вы можете попробывать удивить спрашивающего следующим железом логики :) :

Начните так:
"Дело в том, <И.О>, что файл можно привести к функциям Фифы, но с затратами.
Значит, преимуществами Фифы - можно считать затраты на уравнивание файла к Фифе, а именно:"
- Закрыть доступ читателям со стороны автора
- Считать автором файл у некий буфер
- Смесить данные "взад" на величину нового сообщения (потеряв равный участок старого)
- Записать новый участок
- Записать файл
- Открыть доступ читателям

А у Фифы - то всё "из коробки".
Таким образом, показаны затраты приведения файла к Фифе,
а значит преимущесва последней поперёд первого :)
Пойдём на рыбалку !
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Преимущества FIFO перед файлом?

Сообщение Bizdelnick »

ИМХО препод хочет одного конкретного ответа, а не рассуждений на тему. Скорее всего он хочет услышать про возможность чтения прямо в момент записи, то бишь возможность параллельной работы общающихся программ. А может и нет.
Spoiler
Kopilov писал(а):
24.06.2014 16:53
ньюансы
Женя Подсыпальни... писал(а):
25.06.2014 11:12
попробывать
Грамотеи...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Rabb1t
Сообщения: 3

Re: Преимущества FIFO перед файлом?

Сообщение Rabb1t »

Вообщем, сказали преподу ваши варианты.
Это все верно, но не самое важное.
Сказали про хронологию и оказались уже ближе к ключевому ответу... но сам ответ так и не узнали)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Преимущества FIFO перед файлом?

Сообщение Hephaestus »

Rabb1t писал(а):
30.06.2014 12:25
Вообщем, сказали преподу ваши варианты.
Это все верно, но не самое важное.
Интересный у Вас препод.
Но боюсь, в данном случае "самое важное" глубоко субъективно. То есть оно может быть самым важным для вашего препода и совершенно ненужным для всех остальных. Выше Bizdelnick сказал практически об этом.
Думаю, что если ознакомиться с мнением авторов FIFO, то "самое важное" будет что-то ещё, не совпадающее ни с мнением Вашего препода, ни с мнениями, высказанными здесь.
Если Вы всё таки узнаете "правильный" ответ на этот вопрос, сообщите здесь. Мне аж интересно стало.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Silender
Сообщения: 23

Re: Преимущества FIFO перед файлом?

Сообщение Silender »

Bizdelnick писал(а):
25.06.2014 11:29
Скорее всего он хочет услышать про возможность чтения прямо в момент записи

Это самое главное на мой взгляд. Более того читалка может быть вообще левой, никак не связанной с системой, которая пишет.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Преимущества FIFO перед файлом?

Сообщение s.xbatob »

Глупый вопрос. Их нельзя сравнивать. У файла (я так понимаю - регулярного) и fifo разная дисциплина и разное назначение.

Образно говоря вам предложили сравнить круглое с мягким, вы начали всерьёз сравнивать, а теперь удивляетесь, что ваши доводы не нравятся.
Спасибо сказали:
Ответить