Прежде всего, запись в Википедии довольно полна по этому вопросу.
Я попытаюсь объяснить рациональное разделение, помимо аргументов резервного копирования / организации, уже представленных в других ответах, чтобы доказать, что с точки зрения производительности единственным преимуществом разделения является минимизация фрагментации.
ОС должны делать предположения о том, как пользователь использует и хранит свои данные. Проблема может быть сведена к следующему:
Предположим, у вас есть кусок памяти, скажем, 256B, который вы можете представить как 256 блоков в последовательности.
|_|_|_|_|...|_|
Теперь вы хотите сохранить 3 файла, один с 64, другой с 64, другой с 128 ящиками: вы должны выделить их?
1: | 64 | 64 | 128 | or
2: | 64 | 128 | 64 | ?
Это зависит ... от того, какие фрагменты будут сохраняться в течение длительного времени или нет, и какие наиболее вероятные фрагменты будут сохранены после удаления одного из фрагментов.
Представьте, что в следующей операции 2 фрагмента из 64 будут удалены с диска, новый фрагмент из 128 будет сохранен. В примере 1 вы можете сразу сохранить 128, но во втором примере сначала вам нужно переместить сохраненный фрагмент 128 в границу, и только затем вы можете добавить новый блок.
Теперь представьте себе это, но со всеми видами разных размеров, сохраненными нетривиальным способом (т.е. не все сначала 4B, затем все 8B и т. Д.) На гигантском диске (размер в ГБ). Известно, что это очень сложная проблема.
ОС решает эту проблему с помощью эвристики. Это не делает оптимальную стратегию, но использует некоторую эвристику, чтобы поместить куски в правильные места. Одна важная информация заключается в том, как часто размер блоков сохраняется пользователем / ОС, поскольку он предоставляет некоторую априорную информацию о следующих фрагментах, откуда ОС может попытаться угадать.
Разбиение диска эффективно сообщает ОС, что конкретный регион диска принадлежит этому разделу. Это означает, что больше не будет одной последовательности из 256 блоков, а будет две последовательности из 128 блоков (раздел A и B). ОС больше не будет делать предположения о том, где ее разместить: вы сами решаете, какой корень в вашем каталоге вы выберете (размахивая рукой).
Почему это может улучшить производительность?
Типичный пример - когда у вас есть два разных поведения при использовании ОС. Например, разница между:
- ежедневное использование ОС, в которой много записей и стираний, и
- когда вы храните тяжелые файлы, такие как видео или альбомы, которые вы не сильно меняете.
Разбиение может повысить производительность, если вы ежедневно используете ОС одним способом, а другой - просто для хранения тяжелых файлов, которые вы изменяете очень редко в течение срока службы ОС.
Поскольку ваше поведение согласовано в каждом разделе, ОС, скорее всего, улучшит его распределение, минимизировав тем самым фрагментацию.
Теперь, является ли это актуальным или нет для обычных пользовательских случаев, я бы сказал, нет, потому что, кто разрабатывает стратегии распределения, является умным, и эвристика продумана для этих случаев.
Для серверов и других систем это может иметь значение, но пойти на это после профилирования .
РЕДАКТИРОВАТЬ для включения SSD
Насколько я понимаю, эта проблема не зависит от того, говорим ли мы о SSD или жестких дисках. Эта проблема является очень фундаментальной в том смысле, что она требует только того, чтобы вы хотели заполнить конечное пространство элементами непостоянного размера, которые постоянно добавляются и удаляются.