1

Тема: Процес відтворення файлів.

Підкажіть будь ласка, я з Linux знайомий поверхнево. Раніше, на Windows, коли відтворювалось аудіо чи відео, то відповідний файл неможливо було видалити, я так розумію, якийсь процес його (файл) використовував і не давав доступу до деяких операцій. Зараз, на Linux, файли таким чином без проблем видаляються, ну невеликі аудіо- та відеокліпи то точно. Що там відбувається? Файл копіюється, у тимчасову папку чи до оперативної пам'яті? Дякую.

2

Re: Процес відтворення файлів.

Це залежить від програми, яка робе з файлом. У Вінді теж так буває, коли відкритий файл (а на справді відкритий, зчитаний та закритий) не блокований нічим.

3 Востаннє редагувалося HetmanNet (17.11.2015 18:49:26)

Re: Процес відтворення файлів.

temlees написав:

Підкажіть будь ласка, я з Linux знайомий поверхнево. Раніше, на Windows, коли відтворювалось аудіо чи відео, то відповідний файл неможливо було видалити, я так розумію, якийсь процес його (файл) використовував і не давав доступу до деяких операцій. Зараз, на Linux, файли таким чином без проблем видаляються, ну невеликі аудіо- та відеокліпи то точно. Що там відбувається? Файл копіюється, у тимчасову папку чи до оперативної пам'яті? Дякую.

У оперативну пам'ять якщо дуже коротко, але файл не весь а лише певний розмір, тому короткі відео та аудіо при великій кількості оперативи можуть бути повністю у ній. Розмір частки файлу що буде у оперативці залежить від частоти звертання до тих чи інши частин файлу, методу доступу (послідовно читаєш файл чи рандомно), і т.д. Механізм цікавий і спрямований на ефективне використання оперативи та задіяння вільної для пришвидшення роботи поки вона не треба. Тому лінукс мабуть єдина ОС яка використає оперативу по максимуму з користю. Але це довга історія, якщо буде бажання можу розповісти чи знайти що почитати чи подивитися. Тож не дивуйся видаленню файлів відкритих у програмах, бо якщо програма не заблокувала його для запису а ядро його повністю завантажило в оперативу він є вільним для решти операцій, наприклад видаленню.

Подякували: temlees1

4

Re: Процес відтворення файлів.

HetmanNet написав:

Але це довга історія, якщо буде бажання можу розповісти чи знайти що почитати чи подивитися.

Дуже дякую, можете підказати, що почитати або подивитися, бажано англійською, або українською, якщо є :).

5 Востаннє редагувалося HetmanNet (17.11.2015 19:11:31)

Re: Процес відтворення файлів.

temlees написав:
HetmanNet написав:

Але це довга історія, якщо буде бажання можу розповісти чи знайти що почитати чи подивитися.

Дуже дякую, можете підказати, що почитати або подивитися, бажано англійською, або українською, якщо є :).

Якщо озвучите українською то буде українською.
Варто подивитися відео з лекторами: Вячеслав Бирюков, Виктор Ашик, Антон Карпов, Владимир Иванов. Ці об'єктивні в 90%, якщо не в 99% і чітко розділяють дійсність та свої враження чи вподобання.

6

Re: Процес відтворення файлів.

Наскільки я знаю, файл під час відтворення може бути заблокований, там біля нього створюється файл блоку ".lock", такий метод має назву POSIX сумісний (але це не заборонить вам видалити його вручну).
Як раніше вже сказали, по перше файл копіюється в кеш, але і це все не все, програма яка зробила запит до файлу, запитала індентифікатор файлу (перетворила ім’я файлу на вказівник на фізичне місце на диску), може надалі зчитувати чи записувати у файл, так як вказівник на місце в неї вже є (поки вказівник використовується, файлова система не може зайняти місце на яке він вказує).
Якщо ви видалите ім’я файлу, то ви вже не зможете більше робити запит ім’я<->вказівник.
Але ті програми, які все ще мають цей вказівник, взмозі продовжити його читати чи навіть записувати.
Є навіть спосіб за допомогою якого можна знайти програму, яка все ще працює з вилученим файлом, та витягти з неї вказівник на файл, таким чином скопіювати простір на який цей вказівник вказує.

Подякували: reverse2500, raxp2