3

Когда речь идет о файловых системах и дисках, являются ли «сектора диска», «дисковые блоки», «размер куска» и «записи диска» одинаковыми?


Я почти уверен, что сектор - это в основном блок, но меня больше смущали размеры чанков и особенно записи. Некоторые системные вызовы требуют, чтобы ваша область в памяти, которая буферизует данные с диска, была кратна размеру записи диска. Что это значит?

Ответов: 2

2

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

Сектор диска - это наименьший адресуемый набор байтов на носителе. Обычно это было 512 байт для большинства устройств, хотя размеры секторов 4096 байт становятся все более распространенными.

Файловая система обращалась к устройству с точки зрения физических блоков. Физическим блоком может быть один или несколько смежных секторов (обычно степень двух).

Файлы в файловой системе обращались к данным в виде логических блоков. Логическим блоком был один или несколько смежных физических блоков.

2

Сектор - это физическая область на диске, а размер сектора задается аппаратным обеспечением. Чтение и запись на диск выполняется на секторах. Данные с жесткого диска и с него передаются в секторах.

(Первый дисковый контроллер (для 14-дюймовых дисководов), который я когда-либо программировал, использовал не секторы, а (дисковые) записи. Каждый трек должен был быть отформатирован с макетом записи. Если вы хотите сходить с ума, каждая запись на треке может иметь уникальную длину. Но обычно все записи на каждой дорожке всего тома диска были отформатированы с одинаковой длиной записи. Современные накопители больше не имеют таких возможностей форматирования, но вместо этого используют сектора . С тех пор я не помню, чтобы когда-либо услышав фразу «запись на диск». Примечание: 8 «у дискет была похожая, но упрощенная схема форматирования, которая стала известна как« мягкое разбиение на секторы », поскольку записи всегда имели одинаковую, но не фиксированную длину.)

(На уровне устройства термин « запись» использовался также для физического блока, например магнитной записи на магнитной ленте или записи на диске. В техническом документе о транспорте на магнитной ленте или дисководе запись может называться наименьшим физическим блоком ввода-вывода). Но если вы на самом деле не используете ленту или не работаете на уровне контроллера диска, запись может рассматриваться как объект userland/file/filesystem.)

Запись (чаще всего используется как) концепция файловой системы (или логическая) и (тогда) не имеет значения на нижнем (дисковом) уровне ввода/вывода (т. Е. Чтение или запись записи происходит только в интерфейсе пользователя к системе), Содержимое и размер записи могут быть определены пользователем или продиктованы файлом. Запись может иметь фиксированную длину и соответствовать структуре данных, либо запись может иметь переменную длину (например, строку текста с разделителем новой строки ).

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

Размер записи может быть произвольным. В идеале размер записи выбирается таким образом, чтобы кратный ему размер равнялся размеру сектора (или физического блока), и тогда вместо буферизованного ввода-вывода может быть выполнен блок ввода-вывода (непосредственно в/из пользовательского буфера). Блочный ввод-вывод выполняется быстрее, поскольку он включает в себя на одну копию меньше и использует на один буфер меньше, хотя пользовательской программе, возможно, придется самостоятельно блокировать и деблокировать записи.

Дополнить ответ

Server-Help.Ru - 2019. The website content is licensed CC BY NC SA 4.0. <|> Политика Конфиденциальности