172 похожих чатов

Подскажите. Почему когда копирую на флешку файлы большого размера, то

после того как копирование завершено система просит не отключить устройство и так еще минут 5?

11 ответов

12 просмотров

Пишет на флеху же

Так происходит, потому что так реализована работа с блочными устройствами (HDD, SSD, флешки, SD-карты и т.д.) в ядре: вся непосредственная низкоуровневая работа с блочными устройствами идёт асинхронно относительно действий пользователя. То есть, несмотря на то, что «копирование» с точки зрения юзерспейса закончилось, ядро всё ещё продолжает взаимодействовать с блочным устройством, записывая небольшими кусочками все запрошенные для копирования данные. Более того, само блочное устройство имеет свой контроллер, который реально записывает данные (например, в сами чипы флеш-памяти, которые лежат в основе SSD/USB-флешках/SD-карт), и ядро опрашивает этот контроллер и не даёт отмонтировать файловую систему блочного устройства до момента, пока контроллер не скажет «я всё записаль». Поэтому один из способов узнать, что система закончила свою работу, — это запустить команду sync в терминале и дождаться, пока ОС не скажет, что все данные уже записались (т.е. когда программа sync завершит работу). Скорее всего «система» (видимо, ты имеешь в виду графический интерфейс) делает то же самое, то есть использует тот же самый интерфейс, что команда sync, просто красиво пишет, что «диск ещё занят».

Оптимизация работы

ALex- Автор вопроса
асоциальный пикотранзистор ᶘಠᴥಠᶅ
Так происходит, потому что так реализована работа ...

Спасибо за развернутый ответ. Я просто нажимаю отмонтировать устройство жду когда появится табличка, что устройство можно отсоединить. Непонятно почему разрабы не привяжут время физического копирования к графическому. Я так пару раз флешку дергал, а потом оказывалось, что на ней пусто.

ALex
Спасибо за развернутый ответ. Я просто нажимаю отм...

В теории нельзя предсказать, когда конкретно контроллер блочного устройства скажет, что данные таки записались. С другой стороны, говорят, в Windows 10 (https://thenextweb.com/news/windows-10-now-lets-you-pull-out-usb-drives-without-safely-removing-them) таки это реализовали, но в моей голове совершенно не укладывается как.

асоциальный пикотранзистор ᶘಠᴥಠᶅ
В теории нельзя предсказать, когда конкретно контр...

Скорость записи известна, объем тоже. Время по идее несложно найти =)

ALex- Автор вопроса
асоциальный пикотранзистор ᶘಠᴥಠᶅ
В теории нельзя предсказать, когда конкретно контр...

В винде как раз все ок. Как графическое копирование пропало, сразу дергаешь и инфа на флешке. А в лине ждёшь мин 5 еще😂

ALex
В винде как раз все ок. Как графическое копировани...

А если ты потом передумал копировать на флешку и удалил файл какой-то. Винда тебе две дырки протрет, а линукс скорее всего ни одной =)

Evgeniy Naumov
Скорость записи известна, объем тоже. Время по иде...

Скорость записи неизвестна, есть огромная разница между random write и sequential write, предугадать время записи сложновато.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта