Diktat_Prosedural_13_StudiKasus

Diktat_Prosedural_13_StudiKasus

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: itma dengan dua pass adalah sebagai berikut : NKosong = banyaknya blok kosong Inisialisasi K dengan 0 Pass pertama : cacah banyaknya blok kosong i traversal [1..NB] if statusnya KOSONG then K bertambah satu if K=0 then { Tidak ada yang harus dikerjakan } else { Pass kedua : } Set status blok 1..K menjadi KOSONG Set status blok K+1..NB menjadi ISI Realisasi Prosedur procedure InitMemK { I.S. sembarang } { F.S. Semua blok memori dinyatakan KOSONG } { Proses : semua status blok dengan indeks [1..NB] dijadikan KOSONG dengan traversal blok [1..NB]. Proses sekuensial tanpa penanganan kasus kosong (NB ≥ 0) } KAMUS i : integer ALGORITMA i traversal [1..NB] STATMEMi ← false Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 41 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AlokBlokKF (input X : integer, output IAw : integer) { Strategi pengalokasian adalah First Fit } { I.S. sembarang. X adalah banyaknya blok yang diminta untuk dialokasi, yaitu dijadikan isi } { F.S. IAw akan berisi indeks blok kosong pertama pada tabel Status Memori jika ada X blok kontigu berstatus KOSONG yang masih bisa dialokasi, kemudian memutakhirkan status pemakaian memori IAw bernilai 0 jika tidak ada blok kontigu berukuran minimal X } { Proses : lihat penjelasan } KAMUS LOKAL i : integer NKosong : integer { banyaknya blok kosong KOSONG } ALGORITMA { Cari apakah ada X blok KOSONG } i←1 repeat { Search blok 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 kosong konsekutif } NKosong ← 0; IAw ← i while (i < NB) and (not STATMEMi) and (NKosong < X) 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 until (i = NB) or (NKosong ≥ X) { Terminasi: Tentukan nilai IAw, Ubah status jika ada zone kosong memenuhi syarat } if (NKosong ≥ X) then { Update status memori } i traversal [IAw..IAw+X-1] STATMEMi ← true else { Tidak perlu melakukan update, namun IAw harus diisi } IAw ← 0 Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 42 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AlokBlokKB (input X : integer, output IAw : integer) { Strategi pengalokasian adalah Best Fit } { I.S. Sembarang. X adalah banyaknya blok yang diminta untuk dialokasi, yaitu dijadikan ISI } { F.S. IAw akan berisi indeks blok kosong pertama pada tabel Status Memori jika ada X blok kontigu berstatus KOSONG yang masih bisa dialokasi, kemudian memutakhirkan status pemakaian memori IAw bernilai 0 jika tidak ada blok kontigu berukuran minimal X } { Proses : lihat penjelasan } KAMUS LOKAL i : integer NKosong : integer { # blok kosong KOSONG kontigu pada saat dihitung } IAwMin : integer { Pos...
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