Diktat_Prosedural_13_StudiKasus

Update p kurangi nbp sebanyak x nbp nbp x awp

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: llectionB I.S. : Sembarang. F.S. : Semua blok kosong ada di kiri dan blok isi di kanan: • Jika ada zone kosong, hanya ada satu elemen lis, karena dijadikan satu zone kosong • Jika tidak list zone kosong tidak ada elemennya (kosong), maka tidak dilakukan apaapa Proses : Jika list zone kosong tidak kosong, jadikan sebuah list dengan elemen tunggal beralamat P, Aw(P) bernilai 1 dan Nb(P) bernilai NB. Skema solusi algoritma adalah : Inisialisasi Nkosong dengan Nol if List zone kosong tidak kosong then Akumulasi jumlah blok kosong, sambil delete list sehingga tersisa satu elemen Update elemen terakhir else { tidak ada yang perlu dilakukan, karena semua zone ISI } Realisasi Prosedur procedure InitMemB { Representasi berkait zone kosong } { I.S. Sembarang } { F.S. Semua blok memori dinyatakan KOSONG } { Proses : create list kosong, buat elemen baru, insertFirst } KAMUS LOKAL P : address ALGORITMA FIRSTZB ← Nil { Create list kosong } { Alokasi elemen baru: } Allocate(P); IAw(P) ← 1; Nb(P) ← NB; Next(P) ← Nil { Insert First: } FIRSTZB ← P Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 51 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AlokBlokBF (input X : integer, output IAw : integer) { I.S. Sembarang. X adalah banyaknya blok yang diminta untuk dialokasi, yaitu dijadikan ISI } { F.S. IAw adalah alamat awal sebuah zone bebas dengan X buah blok kontigu kosong, zone bebas paling “kiri”, jika ada. IAw=0, jika tidak ada zone kontigu berukuran Iaw } { Strategi pengalokasian adalah First Fit } KAMUS LOKAL P : address Found : boolean ALGORITMA { Search elemen list dengan properti Nb(P) ≥ X, } { Skema search dengan boolean } P ← FirstZB; PrecP ← Nil; Found ← false IAw ← 0 while (P ≠ Nil) and not Found do if (Nb(P) ≥ X) then IAw ← Na(P); Found ← true if (Nb(P) = X) then { Delete } if (PrecP = Nil) then FirstZB ← Next(FirstZB) { Delete First } else Next(PrecP) ← Next (P) { Delete after Prec P } Deallocate(P) else { Nb(P) > X, update P, kurangi Nb(P) sebanyak X } Nb(P) ← Nb(P) - X ; Aw(P) ← Aw(P) + X { update } else PrecP ← P); P ← Next (P) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 52 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AlokBlokBB (input X : integer, output IAw : integer) { Representasi berkait zone KOSONG } { I.S. Sembarang. X adalah banyaknya blok yang diminta untuk dialokasi, yaitu dijadikan ISI } { F.S. IAw adalah alamat awal sebuah zone bebas dengan X buah blok kontigu kosong, zone bebas minimal ukurannya jika ada. IAw=0, jika tidak ada zone kontigu berukuran IAw } { Strategi pengalokasian adalah Best Fit, skema search dengan boolean } KAMUS LOKAL P, PrecP Found PMin : address { PrecP adalah address sebelum P } : boolean : address { Posisi awal dari blok kontigu terkecil yang diketemukan } PrecPMin : address { Address sebelum PMin } FoundBest : boolean { Sudah ketemu yang terbaik : ukurannya = X } ALGORITMA { Search elemen list dengan properti Nb(P) ≥ X, skema search dengan boolean } PrecPMin ← Nil; Pmin ← Nil P ← FirstZB; PrecP ← Nil; Found ← false; FoundBest ← false while (P ≠ Nil) and not FoundBest do if (Nb(P) ≥ X) then Found ← true if Nb(P)=X then { Sudah terbaik } FoundBest ← true if Pmin = Nil then { Minimum diinisialisasi } PMi...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online