Основная концепция внутренней фрагментации

Предположим, у меня есть два процесса по 50 байт и только один раздел размером 100 байт. Предположим, что первый процесс занимает раздел и остается 50 байт. Может ли второй процесс находиться в том же разделе, даже если есть свободное место, или произойдет внутренняя фрагментация?

Также верно ли, что если присутствует внутренняя фрагментация, то присутствует и внешняя фрагментация?


person Zephyr    schedule 01.08.2017    source источник


Ответы (1)


Поскольку существует только один раздел, произойдет внутренняя фрагментация, поскольку внутренняя фрагментация — это оставшееся пространство внутри раздела, и в этом примере внутри раздела останется свободным 50 байтов.

Также верно ли, что если присутствует внутренняя фрагментация, то присутствует и внешняя фрагментация?

Нет не правда. Внешняя фрагментация — это свободное пространство, оставшееся, когда у вас нет больших блоков, и у вас есть свободные блоки (или разделы), но ни один из них сам по себе не может удовлетворить требование.

Таким образом, общий объем свободного пространства будет больше или равен требуемому пространству, но оно не будет непрерывным, и это называется внешней фрагментацией.

person Sumeet    schedule 01.08.2017
comment
Так не может ли второй процесс занять эти 50 байт? - person Zephyr; 02.08.2017
comment
@Zephyr Если это схема с фиксированными разделами, то может. Иначе не может. - person Sumeet; 02.08.2017
comment
Я думаю, что даже в фиксированном разделе у нас не может быть 2 процессов. Я где-то читал, что в случае алгоритма первой подгонки 2 процесса не могут занимать одну и ту же дыру, даже если есть свободное место. Это правда? - person Zephyr; 02.08.2017
comment
@Zephyr В схеме с фиксированным разделом, если дыра в 100 байтов занята процессом 50 байтов, то оставшиеся 50 байтов становятся еще одной дырой. - person Sumeet; 02.08.2017