1

Изображение Проблема: enter image description hereОС: Распределение памяти

Учитывая проблемы выше у меня есть несколько вопросов. Во-первых, proc0 заменяет отверстие, которое больше его, что происходит с оставшимся пространством?

Например, в Q1 i: после ввода Proc0 это a. 10->15->15->25->30. Имея 15 заменить 20, theres 5 осталось, так что с ним происходит, и как бы я изобразил, что с ним происходит? Это будет. 10-> 5-> 15-> 15-> 25-> 30 или а. 10-> 15-> 5-> 15-> 25-> 30?

+0

Эта это не обозначение, используемое за пределами академических кругов, поэтому мне непонятно, какой вопрос здесь. – user3344003

+0

Это вопрос о некотором конкретном алгоритме выделения памяти (который, похоже, заботится о том, из какого процессора поступает запрос), о котором мы ничего не знаем. Итак, как мы можем ответить? (Или «Proc» означает что-то другое, чем процессор? Процесс? Как мы должны знать?) –

+0

@DavidSchwartz - это типичная проблема с ОС, которая не нуждается в процессоре для ответа; это теоретический вопрос, который предполагает идеальные ситуации. –

ответ

1

Учитывая, размеры proc

SZ (Proc 0) -> 15 SZ (прок 1) -> 5

Из того, что я в состоянии понять, изменение Free List (10 -> 20 -> 15 -> 25 -> 30) описывается ниже:

Q1: Во-первых, пригодный (размер свободного списка начнет убывающей)

When proc 0 (size=15) is brought to the list, 
Free List converts to (10 -> 5 -> 15 -> 25 -> 30) 
// the freelist size would decrease wherever the first biggest hole is found, 
// so, hole of size 20 is replaced by a hole of size 5 to allocate memory to proc 0 

When proc 1 (size=5) is brought to the list, 
Free List converts to (5 -> 5 -> 15 -> 25 -> 30) 
// the freelist size would decrease wherever the first biggest hole is found, 
// so, hole of size 10 is replaced by a hole of size 5 to allocate memory to proc 1 

Предполагая, что FreeList опять же, (10 -> 20 -> 15 -> 25 -> 30) перед выполнением распределения первых Fit:

2: Следующий Fit (Размер свободного списка начнет убывающей)

When proc 0 (size=15) is brought to the list, 
Free List converts to (10 -> 5 -> 15 -> 25 -> 30) 
// the freelist size would decrease wherever the next biggest hole is found, 
// so, hole of size 20 is replaced by a hole of size 5 to allocate memory to proc 0 

When proc 1 (size=5) is brought to the list, 
Free List converts to (10 -> 0 -> 15 -> 25 -> 30), or better 
Free List converts to (10 -> 15 -> 25 -> 30) // the size of the freelist decreases. 
// the freelist size would decrease wherever the next biggest hole is found, 
// so, hole of size 5 is replaced by a hole of size 0 
// (or, rather no hole left, so list becomes continuous) to allocate memory to proc 1 
Смежные вопросы