Anda di halaman 1dari 19

A.

Penjadwalan proses
Preemptive, Non Preemptive; FCFS, SJF, SRTF, RR, Prioritas,
Multilevel Queue, Multilevel Feed- back Queue

 Algoritma Penjadwalan First Come First Served (FCFS)


Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU.
Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan
kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu
kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi.
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih
dahulu. Dan rata-rata waktu tunggu (Average waiting time) cukup tinggi.Algoritma penjadwalan
FCFS merupakan salah satu strategi penjadwalan non-Preemptive karena sekali CPU dialokasikan
pada suatu proses, maka proses tersebut akan tetap memakai CPU sampai proses tersebut
melepaskannya, yaitu jika proses berhenti atau meminta I/O. Kelemahan dari Algoritma
penjadwalan ini adalah adanya convoy effect.
skema proses yang meminta CPU mendapat prioritas. Implementasi dari FCFS mudah diatasi
dengan FIFO queue.
Contoh:
Terdapat 3 proses seperti pada tabel berikut:

Hitunglah AWT menggunakan algoritma FCFS

Maka gantt chart kedatangan proses:

Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:
AWT = (0+23+29)/3 = 17,3 ms

Kelemahan dari algoritma ini:

1. Waiting time rata-ratanya cukup lama.


2. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses
besar yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-
preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt
oleh proses yang lain.

 Algoritma Shortest Job First Scheduler (SJF/SJFS)

Pada algoritma ini setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst time
terkecil. Hal ini mengakibatkan waiting time yang pendek untuk setiap proses dan karena hal
tersebut maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa
algoritma ini adalah algoritma yang optimal.
Burst time : asumsi berapa lama sebuah proses membutuhkan CPU diantara proses menunggunya
I/O. Hal ini tidak dapat diprediksi secara tepat sebelum dimulainya sebuah proses. Artinya jumlah
waktu yang dibutuhkan sebuah proses dalam menggunakan CPU dalam sebuah satuan
waktu.(Sebuah proses dapat menggunakan CPU selama beberapa kali selama task yang diberikan
belum diselesaikan).
Algoritma ini digunakan ketika CPU bebas proses yang mempunyai waktu terpendek untuk
menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai waktu yang
sama maka FCFS algoritma digunakan untuk menyelsaikan masalah tersebut.Prinsip algoritma
penjadwalan ini adalah, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu.
Oleh karena itu, algoritma ini optimal jika digunakan, tetapi sulit untuk diimplementasikan karena
sulit mengetahui CPU burst selanjutnya.

CONTOH SHORTEST JOB FIRST (SJF) :

Contoh:
Ada 4 buah proses yang datang berurutan yaitu :
 P1 dengan arrival time pada 0.0 ms dan burst time 7 ms,.
 P2 dengan arrival time pada 2.0 ms dan burst time 4 ms.
 P3 dengan arrival time pada 4.0 ms dan burst time 1 ms.
 P4 dengan arrival time pada 5.0 ms dan burst time 4 ms.

Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan
mengunakan algoritma SJF.
Average waiting time rata-rata untuk ketiga proses tersebut adalah sebesar (0 +6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah sebesar (9+1+0+2)/4=3 ms.
Ada beberapa kekurangan dari algoritma ini yaitu:
1. Susahnya untuk memprediksi burst time proses yang akan dieksekusi selanjutnya.
2. Proses yang mempunyai burst time yang besar akan memiliki waiting time yang besar pula karena
yang dieksekusi terlebih dahulu adalah proses dengan burst time yang lebih kecil.
Algoritma ini dapat dibagi menjadi dua bagian yaitu :

1. Preemptive : Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready
queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka
proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue
tersebut. Preemptive SJF sering disebut juga Shortest-Remaining- Time-First scheduling.(SRTF)
CONTOH SJF-PREEMPTIVE:

2. Non-preemptive : CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser
proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst
time yang lebih kecil.
CONTOH SJF-NON PREEMPTIVE :
 Algoritma Priority Scheduling
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki
prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing.
Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

1. Time limit.
2. Memory requirement.
3. Akses file.
4. Perbandingan antara burst M/K dengan CPU burst.
5. Tingkat kepentingan proses.

Priority scheduling juga dapat dijalankan secara preemptive maupun non-preemptive. Pada
preemptive, jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi daripada
proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU
dialihkan untuk proses yang baru datang tersebut. Sementara itu, pada non-preemptive, proses
yang baru datang tidak dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di
depan queue.
Kelemahan pada priority scheduling adalah dapat terjadinya indefinite blocking( starvation). Suatu
proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapat
proses lain yang memiliki prioritas lebih tinggi darinya.
Solusi dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari setiap proses yang
menunggu dalam queue secara bertahap.
Contoh:
Terdapat 5 proses seperti pada tabel berikut:

Hitunglah AWT menggunakan algoritma PS.


Maka gantt chart kedatangan proses:

Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:

AWT = (12+22+19+2)/5 = 11 ms.

 Algoritma Round Robin


Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar time
quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses
berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses
mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih lama dari (n-
1)q dengan q adalah lama 1 quantum.
Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan
sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin banyak
peralihan proses sehingga banyak waktu terbuang.
Permasalahan utama pada Round Robin adalah menentukan besarnya time quantum. Jika time
quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1
quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu
untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya,
jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma first come
first served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time
yang lebih kecil dari 1 time quantum.

Contoh:
Terdapat 3 proses seperti pada tabel berikut:
Hitunglah AWT menggunakan algoritma RR dengan Q=3.

Maka gantt chart kedatangan proses:

Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:

AWT = (12+9+12)/3 = 11 ms.

PROSES KEJADIAN ALGORITMA ROUND ROBIN :


Urutan Kejadian Algoritma Round Robin
Penggunaan Waktu Quantum

Ide dasar dari algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya, jika setiap proses
dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue seperti pada gambar
berikut:Multilevel Queue

Gambar Multilevel Queue

Dari gambar tersebut terlihat bahwa akan terjadi pengelompokan proses-proses berdasarkan
prioritasnya. Kemudian muncul ide untuk menganggap kelompok-kelompok tersbut sebagai
sebuah antrian-antrian kecil yang merupakan bagian dari antrian keseluruhan proses, yang sering
disebut dengan algoritma multilevel queue.
Dalam hal ini, dapat dilihat bahwa seolah-olah algoritma dengan prioritas yang dasar
adalah algoritma multilevel queue dimana setiap queue akan berjalan dengan algoritma FCFS
yang memiliki banyak kelemahan. Oleh karena itu, dalam prakteknya, algoritma multilevel
queue memungkinkan adanya penerapan algoritma internal dalam masing-masing sub-antriannya
yang bisa memiliki algoritma internal yang berbeda untuk meningkatkan kinerjanya.
Berawal dari priority scheduling, algoritma ini pun memiliki kelemahan yang sama
dengan priority scheduling, yaitu sangat mungkin bahwa suatu proses pada queue dengan prioritas
rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasi hal tersebut, salah satu caranya
adalah dengan memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian,
sehingga jika suatu antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan
digantikan oleh antrian dibawahnya, dan tentu saja batas waktu untuk tiap antrian bisa saja sangat
berbeda tergantung pada prioritas masing-masing antrian.
Multilevel Feedback Queue

Algoritma ini mirip sekali dengan algoritma multilevel queue. Perbedaannya ialah algoritma ini
mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka
proses itu akan dipindahkan ke antrian yang lebih rendah. Hal ini menguntungkan proses interaksi
karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang
menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya. Biasanya prioritas tertinggi
diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh
dan M/K dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin
besar.

Gambar Multilevel Feedback Queue

Algoritma ini didefinisikan melalui beberapa parameter, antara lain:

a. Jumlah antrian.
b. Algoritma penjadwalan tiap antrian.
c. Kapan menaikkan proses ke antrian yang lebih tinggi.
d. Kapan menurunkan proses ke antrian yang lebih rendah.
e. Antrian mana yang akan dimasuki proses yang membutuhkan.

Dengan pendefinisian seperti tadi membuat algoritma ini sering dipakai, karena algoritma ini
mudah dikonfigurasi ulang supaya cocok dengan sistem. Tapi untuk mengatahui mana penjadwal
terbaik, kita harus mengetahui nilai parameter tersebut.
Multilevel feedback queue adalah salah satu algoritma yang berdasar pada algoritma multilevel
queue. Perbedaan mendasar yang membedakan multilevel feedback queue dengan multilevel
queue biasa adalah terletak pada adanya kemungkinan suatu proses berpindah dari satu antrian ke
antrian lainnya, entah dengan prioritas yang lebih rendah ataupun lebih tinggi, misalnya pada
contoh berikut :

1. Semua proses yang baru datang akan diletakkan pada queue 0 ( quantum= 8 ms).
2. Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan
dihentikan dan dipindahkan ke queue 1 ( quantum= 16 ms).
3. Queue 1 hanya akan dikerjakan jika tidak ada lagi proses di queue 0, dan jika suatu proses
di queue 1 tidak selesai dalam 16 ms, maka proses tersebut akan dipindahkan ke queue 2.
4. Queue 2 akan dikerjakan bila queue 0 dan 1 kosong, dan akan berjalan dengan algoritma
FCFS.

Disini terlihat bahwa ada kemungkinan terjadinya perpindahan proses antar queue, dalam hal ini
ditentukan oleh time quantum, namun dalam prakteknya penerapan algoritma multilevel feedback
queue akan diterapkan dengan mendefinisikan terlebih dahulu parameter-parameternya, yaitu:

1. Jumlah antrian.
2. Algoritma internal tiap queue.
3. Aturan sebuah proses naik ke antrian yang lebih tinggi.
4. Aturan sebuah proses turun ke antrian yang lebih rendah.
5. Antrian yang akan dimasuki tiap proses yang baru datang.

Contoh: Terdapat tiga antrian; Q1=10 ms, FCFS Q2=40 ms, FCFS Q3=FCFS proses yang masuk,
masuk ke antrian Q1. Jika dalam 10 ms tidak selesai, maka proses tersebut dipindahkan ke Q2.
Jika dalam 40 ms tidak selesai, maka dipindahkan lagi ke Q3. Berdasarkan hal-hal di atas maka
algoritma ini dapat digunakan secara fleksibel dan diterapkan sesuai dengan kebutuhan sistem.
Pada zaman sekarang ini algoritma multilevel feedback queue adalah salah satu yang paling
banyak digunakan.
F. Virtual Memory

DEMAND PAGING
Demand Paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir sama
dengan permintaan halaman ( paging ) hanya saja halaman ( page ) tidak akan dibawa ke dalam
memori fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat keras
untuk mengetahui lokasi dari page saat ia diperlukan. Page diletakkan di memori hanya jika
diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah,
respon lebih cepat dan lebih banyak user yang menggunakan.
Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah (swap)
ke memori. Menggunakan lazy swapper untuk melakukan swapping bila page tersebut
akan digunakan yang berarti sebuah page tidak pernah ditukar ke memori kecuali page
diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid
maka dilakukan penghentian.

Untuk membedakan antara page pada memori dengan page pada disk digunakan valid-invalid
bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel
page untuk page yang tidak sedang di memori (ada pada disk) diset “invalid”.

Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke sistem
operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt
disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama,
kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur untuk menangani page
fault.

 Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses
dihentikan dan page sedang tidak berada di memori.
 Jika acuan invalid dilakukan trap ke sistem operasi.
 Sistem mencari frame kosong
 Sistem melakukan proses swapping ke frame bebas.
 Tabel page di-reset, bit valid-invalid diset 1 atau valid
 instruksi di-restart.

Apabila tidak ditemukan frame bebas maka dilakukan page replacement yaitu mencari beberapa
page di memori yang tidak digunakan kemudian dilakukan swap out ke backing store. Terdapat
beberapa algoritma page replacement dimana performansi algoritma diharapkan menghasilkan
jumlah page fault minimum. Beberapa page kemungkinan dibawa ke memori beberapa kali
Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat
keras untuk sistem paging dengan swapping yaitu Tabel page : table mempunyai kemampuan
untuk memberi entry bit valid-invalid atau nilai khusus untuk bit proteksi

Memori sekunder : digunakan untuk membawa page yang tidak di memori dan biasanya adalah
disk kecepatan tinggi yang disebut swap device.

Algoritma page replacement

Algoritma page replacement secara umum diinginkan mempunyai rata-rata page fault terendah.
Algoritma dievaluasi dengan menjalankan pada string tertentu dari memori reference dan
menghitung jumlah page fault. String yang mengacu ke memori disebut reference string (string
acuan). String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan
alamat dari memori acuan.
Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai skema yang
unik. Algoritma page replacement secara umum diinginkan yang mempunyai rata-rata page fault
terendah. Algoritma page replacement di antaranya adalah:

1. Algoritma page replacement Acak


2. Algoritma page replacement FIFO
3. Algoritma page replacement Optimal
4. Algoritma page replacement NRU
5. Algoritma page replacement LRU
6. Algoritma page replacement Second Chance Page
7. Algoritma page replacement Clock

Mari kita bahas satu per-satu Algoritma Page Replacement di atas.

1. Algoritma Page Replacement Acak

Dari segi mekanisme algoritma tersebut, setiap akan timbul page fault, page yang diganti dengan
pilihan secara acak. Untuk segi tekniknya sendiri pun algoritma ini tidak perlu menggunakan
informasi dalam menentukan page yang diganti, di dalam memory utama itu sendiri pun sudah
mempunyai bobot yang sama untuk dipilih, karena teknik ini dapat dipakai untuk memilih page
sembarang. Termasuk page yang sudah dipilih dengan benar-benar / page yang tidak seharusnya
diganti.

Contoh gambar algoritma page replacement acak

2. Algoritma Page Replacement FIFO (First In - First Out)

Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama seperti prinsip
antrian tak berprioritas. Page yang masuk terlebih dahulu maka page tersebut akan keluar duluan
juga. Untuk algoritma ini menggunakan structure data stack. Jadi cara kerjanya yaitu dimana ketika
tidak ada frame yang kosong saat terjadi page fault maka korban yang dipilih adalah frame dengan
stack paling bawah seperti hal nya halaman yang sudah lama tersimpan didalam memory maka
dari itu algoritma ini juga bisa memindahkan page yang sering digunakan.
Contoh gambar page replacement FIFO

Dulu algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun 70-an, pada saat
itu juga Belady menemukan keganjalan pada algoritma ini dan dikenal dengan anomali Belady.
Anomali Belady itu sendiri ialah keadaan dimana page fault rate meningkat seiring dengan
pertambahannya jumlah frame.

Contoh gambar anomali Belady pada algoritma FIFO

3. Algoritma Page Replacement Optimal

Pengertian dari algoritma ini sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip
dari algoritma ini sangat efisien sekali karena hanya mengganti halaman yang sudah tidak terpakai
lagi dalam jangka waktu lama sehingga page fault yang terjadi akan berkurang dan terbebas dari
anomali Belady Selain itu juga page fault dari algoritma ini memiliki rate paling tinggi dari
algoritma lainnya dari semua kasus, akan tetapi belum bisa disebut sempurna karena sulit untuk
dimengerti dan dari segi system pun belum tentu bisa mengetahui page untuk berikutnya tetapi
dapat disimulasikan hanya untuk suatu program. Untuk intinya gunakanlah hingga mendekati page
optimal agar bisa memanfaatkannya.

Contoh gambar page replacement optimal

4. Algoritma Page Replacement NRU (Not Recently Used)

Untuk mekanisme dari algoritma ini diberi dua bit untuk mencatat status page, diantaranya bit M
dan R yaitu :
Bit M : Page yang telah dimodifikasi
Bit M = 0 berarti tidak dimodif
Bit M = 1 berarti sudah dimodif
Bit R : Page yang sedang dipacu / referenced
Bit R = 1 berarti sedang di acu
Bit R = 0 berarti tidak sedang di acu

Adanya dua bit di atas maka akan dapat dikelompokkan menjadi 4 kelas page, yaitu :
Kelas 0 => Tidak sedang di acu / belum di modif (R=0, M=0)
Kelas 1 => Tidak sedang di acu / telah di modif (R=0, M=1)
Kelas 2 => Sedang di acu / belum di modif (R=1, M=0)
Kelas 3 => Sedang di acu / telah di modif (R=1, M=1)

Jadi, apabila algoritma ini diasumsikan kelas-kelas bernomor lebih rendah baru akan digunakan
kembali dalam relatif jangka waktu lama. Intinya algoritma ini mudah dipahami dan
dikembangkan karena sangat efisien walaupun tak banyak langkah dalam pemilihan page dan
kelemahannya juga tidak optimal tapi dalam kondisi normal yang memadai.

5. Algoritma Page Replacement LRU (Least Recently Used)

Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah


algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit cost yang lebih
besar. Sama seperti algoritma optimal, algoritma LRU tidak mengalami anomali Belady.
Algoritma ini memakai linked list untuk mendata halaman mana yang paling lama tidak terpakai.
Linked list inilah yang membuat cost membesar, karena harus meng-update linked list tiap saat
ada halaman yang di akses.
Contoh gambar page replacement LRU

6. Algoritma Page Replacement Second Chance Page

Algoritma second chance merupakan hasil modifikasi dari algoritma FIFO yang disempurnakan
lagi. Algoritma ini menggunakan tambahan berupa reference bit yang nilainya 0 atau 1. Jika dalam
FIFO menggunakan stack, maka second chance menggunakan circular queue. Halaman yang baru
di-load atau baru digunakan akan diberikan nilai 1 pada reference bit-nya. Halaman yang reference
bit-nya bernilai 1 tidak akan langsung diganti walaupun dia berada di antrian paling bawah
(berbeda dengan FIFO).

Urutan langkah kerja algoritma second chance adalah sebagai berikut:

 Apabila terjadi page fault dan tidak ada frame yang kosong, maka akan dilakukan razia
(pencarian korban) halaman yang reference bit-nya bernilai 0 dimulai dari bawah antrian
(seperti FIFO).
 Setiap halaman yang tidak di- swap (karena reference bit-nya bernilai 1), setiap dilewati
saat razia reference bit-nya akan diset menjadi 0.

Contoh gambar algoritma page replacement SCP


7. Algoritma Page Replacement Clock

Algoritma Clock merupakan hasil modifikasi dari algoritma FIFO yang kedua dan juga merupakan
model lain dari algoritma page replacement second chance page, namun dalam implementasinya
menggunakan 'circular queue' dengan page berbentuk lingkaran.

Jika :
Nilai bit = 0, ganti page
Nilai bit = 1
- Ubah nilai bit = 0
- Pointer bergerak ke page berikutnya searah jarum jam.

G. Alokasi Berurut (Contiguous)


Memori harus mengakomodasi kebutuhan SO dan proses user. Memori utama biasanya terbagi dalam dua
bagian:
 Resident operating system, biasanya tersimpan di alamat memori rendah.
 User proces menggunakan memori beralamat tinggi/besar.
Alokasi berurut terbagi menjadi tiga yakni:
1. Partisi statis
Ciri-ciri dari partisi statis sebagai berikut:
1. Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.
2. Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses
yang lain.
3. Dibagi menjadi 2 bagian:
a) Berukuran sama
Banyak kelemahan, antara lain:
Proses yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan.
Sebaliknya bila ukuran proses lebih kecil daripada ukuran partisi, maka akan terjadi pemborosan ruang
memori (Fragmentasi internal).
b) Berukuran tidak sama
Untuk mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan ukuran sama, yaitu
proses ukuran kecil diletakkan ke partisi yang kecil dan sebaliknya.
Ada 2 jenis strategi:
1) Satu antrian untuk setiap partisi
Tiap proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya.
Kelemahan: ada partisi yang memiliki antrian panjang dan ada yang kosong.
2) Satu antrian untuk seluruh partisi
Semua proses dimasukkan pada satu antrian yang sama, Algoritma penjadwalan melakukan pemilihan
partisi
Kelemahan: jika proses yang berukuran kecil terpaksa masuk ke partisi sisa yang besar, sehingga terjadi
pemborosan ruang.

2. Partisi Dinamis
Ciri-ciri:
1. Pada kondisi awal, memori tidak dibagi menjadi partisi-partisi
2. Pemartisian dilakukan pada saat image proses akan disalin ke memori utama.
3. Ukuran partisi yang dialokasikan akan disesuaikan dengan ukuran image proses.
4. Partisi akan dibebaskan jika program sudah selesai.
5. Keuntungan : tidak terjadi fragmentasi internal alokasi memori disesuaikan dengan besarnya image proses.
Cara kerja:
1. Pengalokasian dilakukan dengan mencari hole  suatu ruang memori utama yang kosong, yang cukup
besar untuk menampung image proses.
2. Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses lainnya sehingga tidak bisa
digunakan lagi  fragmentasi eksternal.
3. Salah satu cara untuk mengatasi masalah ini adalah melakukan memory compaction.
Yaitu: menggeser image proses-proses yang ada di memori sehingga hole terkumpul di satu tempat saja
Kelemahan:
 proses alokasi dan dealokasi menjadi lebih rumit
 Perlu pengelolaan informasi area memori yang masih kosong.

Ada 2 metode pengelolaan memori kosong:


1. Peta bit (bitmap)
 Menggunakan area memori khusus untuk mencatat seluruh area kosong pada memori utama.
 Memakai nilai 0 dan 1
 Nilai 0  alamat memori tersebut masih kosong

 Nilai 1  alamat memori tersebut sudah terisi

2. Linked list
 Informasi mengenai hole kosong berikutnya dicatat pada hole kosong sebelumnya.
 Tidak diperlukan area memori khusus. Karena seluruh informasi tercatat di area memori kosong itu sendiri
sehingga menghemat kapasitas memori utama.

Diperlukan algoritma untuk menentukan hole mana yang akan dialokasikan ke suatu proses.
1. Algoritma Best-fit
 Mencari memori blok yang paling kecil yang dapat menampung image proses
 Memerlukan waktu lama karena harus searching seluruh blok memori utama
 Fragmentasi eksternal dapat ditekan sekecil mungkin

2. Algoritma First-fit
 Mencari memori kosong dari alamat awal sampai menemukan blok yang dapat menampung image proses
 Sederhana dan cepat.

3. Algoritma Next-fit
 Hampir sama dengan First-fit.
 Bedanya: proses searching dimulai dari alamat alokasi terakhir

4. Algoritma Worst-fit
 Mencari hole yang paling besar di seluruh area memori utama.
 Tujuannya: hole sisa yang tercipta setelah alokasi masih cukup besar untuk dialokasikan ke proses lainnya.
3. Sistem Buddy
 Berupa pemartisian secara dinamis
 Ciri khusus adalah partisi yang terbentuk senantiasa berukuran besar sebesar bilangan 2n
2,4,8,16…..256,512,1024(1Mb)
Alokasi memori pada sistem buddy:
1) Menentukan ukuran partisi
 Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran bilangan pangkat 2 terkecil
 Misal : ukuran image proses = 12kb, maka ukuran partisi yang bisa digunakan adalah 16kb.

2) Pengalokasian
 Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan.
 Jika tidak ada maka dicarikan hole yang berukuran sedikit lebih besar. Kemudian dipecah secara bertahap
sesuai dengan aturan bilangan pangkat 2.
 Misal : ukuran image proses = 12kb dan hole yang paling kecil adalah 64kb.
 maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah lagi menjadi 2 partisi 16kb.
 dan partisi 16kb pertama yang bisa dipakai untuk image proses 12kb.

Anda mungkin juga menyukai