Diktat_Prosedural_13_StudiKasus

Iawx 1 statmemi false procedure garbagecollectionk is

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: isi awal blok kontigu terkecil yang diketemukan } NbMin : integer { Blok kontigu terkecil yang diketemukan, dan masih memenuhi syarat ≥ X } ALGORITMA { Cari apakah ada X blok KOSONG } i ← 1; IAwMin ← 0 repeat { Search posisi KOSONG pertama, skema search tanpa boolean } { Selama isi, abaikan } while (i < NB) and (STATMEMi)do i←i+1 { i = NB or not STATMEMi } { Hitung jumlah blok konsekutif } NKosong ← 0; IAwal ← i while (i < NB) and (not STATMEMi ) do i ← i + 1; NKosong ← NKosong + 1 { i = NB or STATMEMi or NKosong = X : jika masih kosong, Nkosong hrs ditambah } if not STATMEMi then NKosong ← NKosong + 1 if (Nkosong ≥ X) then { Blok memenuhi syarat } if ( IAwMin = 0) then { Inisialisasi zone memenuhi syarat } IAwMin ← IAwal; NbMin ← NKosong else {mungkin zone kosong yg ditemukan < dr sebelumnya } if (Nkosong < NbMin) then NbMin ← Nkosong; IAwMin ← IAwal until (i = NB) or (NKosong = X) { Jika NKosong = X, sudah minimum (the best)! } { Terminasi: Tentukan nilai IAw, ubah status jika ada zone kosong memenuhi syarat } if (IAwMin ≠ 0) then { update status memori } IAw ← IAwMin i traversal [ IAwMin..IAwMin+X-1] STATMEMi ← true else { Tidak ada aksi, hanya beri nilai IAw } IAw ← 0 Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 43 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure DealokBlokK (input X, IAw : integer) { I.S. X adalah ukuran zone, bilangan positif dan IAw adalah alamat blok awal zone tersebut, dengan IAw ∈ [1..NB-X], blok dengan indeks IAw s.d. IAw+X-1 pasti berstatus ISI. } { F.S. Tabel status memori dengan indeks blok IAw..IAw+X-1 menjadi KOSONG } { Proses: Sebuah zone berukuran X dan bebawal pada blok IAw di-dealokasi (statusnya dijadikan KOSONG) } KAMUS LOKAL i : integer ALGORITMA i traversal [IAw..IAw+X-1] STATMEMi ← false procedure GarbageCollectionK { I.S. Sembarang } { F.S. Terbentuk sebuah zone kosong di “kiri” } KAMUS LOKAL i : integer NKosong : integer ALGORITMA NKosong ← 0 i traversal [1..NB] if (not STATMEMi)then NKosong ← NKosong + 1 { NKosong bernilai [0..NB] } { Update : mungkin tidak ada zone kosong, maka skema while... } i←1 while (i ≤ NKosong) do STATMEMi ← false i←i+1 { i = NKosong + 1 } while (i ≤ NB) do STATMEMi ← true i←i+1 { i = NB + 1 : semua blok sudah diinisialisasi } Latihan Soal Zone kosong dan zone isi dapat digambarkan sebagai berikut: TTT T TTT Dengan melakukan analogi terhadap mesin akusisi “kata” pada pita karakter, tuliskanlah sekali lagi semua algoritma yang diberikan. Sekarang Anda harus mendefinisikan START, ADV, CC dan EOP dalam terminologi indeks tabel. Analogi prosedur akuisisi adalah: • indeks tabel adalah “kursor” yang memungkinkan sebuah blok yang sedang berada di “jendela” diketahui statusnya, analog dengan CC. • “zone bebas” yang merupakan deretan kontigu dari blok kosong analog dengan kata. • Ignore_BlokIsi adalah analogi dari Ignore_Blank. Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 44 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Perhatikanlah bahwa dengan abstraksi ini, algoritma menjadi lebih jelas! Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 45 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elek...
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