Struktur data untuk alokasi memori dinamis


12

Pikirkan model pemeriksaan sel. Apakah ada struktur data yang dapat mengalokasikan potongan memori yang berdekatan dengan panjang berapa pun (seperti misalnya malloc di C), dan membebaskannya, sambil menghindari segmentasi memori, dan mengeksekusi setiap operasi dalam kasus deterministik O (log n) terburuk saat n ukuran total memori?

Dengan menghindari segmentasi memori yang saya maksud bahwa jika jumlah total sel bebas adalah F, maka saya harus dapat mengalokasikan segmen yang berdekatan dari sel F atau sekitar sel F.

Jawaban:


6

Bahkan tanpa batas waktu, tidak mungkin untuk "menghindari segmentasi memori" kecuali Anda dapat memindahkan objek yang dialokasikan, seperti dalam pemulung sampah. Lihat Robson's "Batas untuk Beberapa Fungsi Mengenai Alokasi Penyimpanan Dinamis", yang menunjukkan bahwa mengalokasikan byte dalam blok ukuran antara n dan N membutuhkan Ω ( m log ( N / n ) ) byte memori.mnNΩ(mlog(N/n))

Selain itu, sistem buddy mencapai batas ini dan dapat dilakukan dalam waktu logaritmik.


Terima kasih untuk referensi. Saya mengizinkan untuk memindahkan objek yang dialokasikan (jika tidak, ini terlihat cukup mudah untuk menghasilkan contoh yang buruk). Apakah batas bawah yang Anda sebutkan masih berlaku?
Manu

m

O(logn)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.