Anda di halaman 1dari 11

MANAJEMEN MEMORI

Definisi Manajemen Memori


Manjemen memori (Memory Manager) adalah salah satu bagian sistem operasi yang mempengaruhi
dalam menentukan proses mana yang diletakkan pada antrian. Manajemen memori DOS merupakan
mekanisme pengaturan memori pada sistem operasi DOS. Sistem operasi berjalan dalam modus real
dengan arsitektur berbasis prosesor intel x86. Dalam modus real, hanya 20-bit pertama dari bus
alamat yang akan digunakan oleh sistem operasi untuk mengakses memori, sehingga menjadikan
jumlah memori yang dapat diakses hanya mencapai 220=1048576 bytes (1 MB) saja, dari yang
seharusnya 32-bit/40-bit pada prosesor-prosesor modern. Ada beberapa macam jenis memori
diantaranya :
- Memori Kerja
ROM/PROM/EPROM/EEPROM
RAM
Cache memory
- Memori Dukung
Floppy, harddisk, CD, dll.
2.
Manajemen Memori
Terdapat 2 (dua) manajemen memori yaitu :
a. Manajeman memori statis
Dengan pemartisian statis, jumlah, lokasi dan ukuran proses dimemori tidak beragam sepanjang
waktu secara tetap.
b. Manajemen memori dinamis
Dengan pemartisian dinamis , jumlah, lokasi dan ukuran proses dimemori dapat beragam sepanjang
waktu secara dinamis.
Manajemen Memori Berdasarkan Alokasi memori
Terdapat 2 (dua) cara menempatkan informasi ke dalam memori kerja, yaitu:
a. Alokasi Memori Berurutan (Contiguous Allocation)
Pada alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi memori yang
berurutan.
Kelebihan : sederhana, tidak ada rongga memory bersebaran, proses berurutan dapat dieksekusi secara
cepat.
Kekurangan : memori boros, tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi
b. Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
_ Program/proses ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau
berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi page-page.
Kelebihan : sistem dapat memanfaatkan _ memori utama secara lebih efesien, dan sistem opersi masih
dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat proses yang akan
dieksekusi.
_ Kekurangan : memerlukan pengendalian yang lebih rumit dan memori jadi banyak yang berserakan
tidak terpakai.
c. Penggunaan memori
_ Pencocokan ukuran informasi ke penggalan memori kerja disebut sebagai fit
_Bagian dari memori kerja yang tidak terpakai dan letaknya tersebar di banyak wilayah memori kerja
disebut sebagai fragmen
_ Peristiwa terjadinya fragmen disebut fragmentasi
d. Pencocokan (fit) dan fragmentasi
Beberapa jenis strategi pencocokan antara lain:
_ Cocok pertama (first fit)
Pencocokan terjadi menurut antrian informasi

_ Cocok pertama berdaur (cyclical first fit)


Pencocokan tidak harus dimulai dari urutan penggalan memori yang pertama, tetapi dapat dilakukan
setelah terjadi pencocokan sebelumnya.
_ Cocok terbaik (best fit)
Pencocokan dilakukan sesuai dengan penggalan memori yang ukurannya pas.
_ Cocok terburuk (Worst fit)
Informasi akan menempati penggalan yang ukurannya terbesar.
e. Fragmentasi
Menurut prosesnya terdapat dua macam fragmentasi :
a. Fragmentasi internal
Kelebihan memori pada penggalan memori ketika penggalan memori itu menerima penggalan
informasi yang berukuran kurang dari ukuran penggalan memori.
b. Fragmentasi Ekternal
Penggalan memori bebas yang ukurannya terlalu kecil untuk dapat menampung penggalan informasi
yang akan dimuat ke penggalan memori itu.
Contoh : Proses
3.
Fungsi manajemen memori :
Manajemen memori sangat penting untuk memproses dan fasilitas masukan/keluaran secara efisien,
sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemrogram
atau proses tidak dibatasi kapasitas memori fisik di sistem komputer. Berikut ini kami sebutkan
fungsi manajemen memori diantaranya :
1.Mengelola informasi memori yang dipakai dan tidak dipakai.
2.Mengalokasikan memori ke proses yang memerlukan.
3.Mendealokasikan memori dari proses yang telah selesai.
4.Mengelola swapping antara memori utama dan disk.
4.
Manajemen memori berdasarkan keberadaan swapping atau paging
Terbagi dua yaitu :
1.
Manajemen tanpa swapping atau paging
Yaitu manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama
eksekusi. Yang terdiri dari :
Monoprogramming, ciri-cirinya:
- Hanya satu proses pada satu saat
- Hanya satu proses menggunakan semua memori
- Pemakai memuatkan program ke seluruh memori dari disk atau tape
- Program mengambil kendali seluruh mesin
Multiprogramming Dengan Pemartisian Statis
Terbagi dua :
- Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah sama
- Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah
berbeda
Strategi Penempatan Program Ke Partisi

Satu Antrian Tunggal Untuk Semua Partisi


Keuntungan : Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya mengelola
satu antrian.
Kelemahan : Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil
ditempatkan di partisi sangat besar.

Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi) . Keuntungan :
Meminimalkan pemborosan memori
Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi - partisi lain
kosong
2.
Manajemen dengan swapping atau paging
Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.

1. Multiprogramming dengan Pemartisisan Dinamis


Jumlah , lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.
Kelemahan:
- Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.
- Merumitkan alokasi dan dealokasi memori
2. Pencatatan Pemakaian memori
- Pencatatan memakai peta bit (Bit Map)
- Pencatatan memakai linked list
5.
Sistem Buddy
Sistem buddy adalah algoritma pengelolaan memori yang memanfaatkan kelebihan penggunaan
bilangan biner dalam pengalamatan memori. Karakteristik bilangan biner digunakan untuk
mempercepat Penggabungan lubang-lubang berdekatan ketika proses Terakhir atau dikeluarkan.
Mekanisme pengelolaan sistem buddy tersebut memiliki keunggulan dan kelemahan.
Keunggulan Sistem Buddy
1. Sistem buddy mempunyai keunggulan dibanding algoritma-algoritma yang mengurutkan blok-blok
berdasarkan ukuran. Ketika blok berukuran 2k dibebaskan, maka manajer memori hanya mencari
pada senarai lubang 2k untuk memeriksa apakah dapat dilakukan penggabungan. Pada algoritma
algoritma lain yang memungkinkan blok-blok memori dipecah dalam sembarang ukuran, seluruh
senarai harus dicari.
2. Dealokasi pada sistem buddy dapat dilakukan dengan cepat.
Kelemahan Sistem Buddy
1. Utilisasi memori pada sistem buddy sangat tidak efisien.
2. Masalah ini muncul dari dari kenyataan bahwa semua permintaan dibulatkan ke 2k terdekat yang
dapat memuat. Proses berukuran 35 kb harus dialokasikan di 64 kb, terdapat 29 kb yang disiakan.
Overhead ini disebut fragmentasi internal karena memori yang disiakan adalah internal terhadap
segmen-segmen yang dialokasikan

PENJADWALAN
a1. First-Come First- Serve (FCFS)
Merupakan algoritma yang paling sederhana dalam penjadwalan proses. Proses yang
melakukan request terhadap CPU akan diproses oleh CPU. Implementasinya dengan menggunakan
algoritma First In First Out FIFO. FCFS bersifat non-preemptive yaitu proses yang dikerjakan oleh
CPU tidak dapat diinterupsi oleh proses yang lainnya.
Proses diasumsikan datang bersamaan dan masuk dalam antrian penggunaan CPU. Proses akan
dikerjakan berdasarkan nomor urutan proses, sedangkan yang lainnya menunggu sampai proses
diatasnya selesai dikerjakan.
Dari Gant Chart dapat diperoleh waktu tunggu proses dari CPU yang dapat diambil waktu rataratanya.
Waiting Time P1 = 0, Waiting Time P2 = 10, Waiting Time P3 = 11, Waiting Time P4 = 13, Waiting
Time P5 = 14.
Avarage Waiting Time (AWT) = (WT P1 + WT P2 + WT P3 + WT P4 + WT P5)/5
Avarage Waiting Time (AWT) = (0 + 10 + 11 + 13 + 14)/5 = 9.6 ms
FCFS dapat juga bekerja dengan adanya prioritas terhadap proses, prioritas dengan nilai terkecil akan
diberi status sebagai prioritas tinggi dan akan dikerjakan terlebih dahulu.
Avarage Waiting Time (AWT) = (0 + 1 + 6 + 16 + 18)/4 = 8.2 ms
Masalah utama pada FCFS adalah adanya antrian dari proses yang menjadi panjang karena waiting
time yang rata-rata panjang. Proses-proses yang telah berada dalam posisi ready akan tetapi CPU
belum dapat memprosesnya. Hal ini yang disebut dengan starvation.
2. Shortest Job First (SJF)
Pendekatan SJF berbeda dengan FCFS, algoritma SJF tergantung dengan panjang proses yang ada
pada queue. Ketika CPU akan melakukan proses, CPU akan memilik proses dengan CPU burst paling
kecil. SJF dapat bekerja dengan mode preemptive maupun non-preemptive.

Gant chat :
Waiting Time P1 = 3
Waiting Time P2 = 16
Waiting Time P3 = 9
Waiting Time P4 = 0
Avarage Waiting Time = (3 + 16 + 9 + 0)/4 = 7 ms
b. Preemptive
SJF dengan waktu kedatangan (arrival time) berbeda.
Proses akan di-preemptive jika ada proses masuk, dah penjadwalan dilakukan ulang dengan
membandingkan proses yang masuk dengna proses yang sedang dijalankan. Sebaga contoh pada tabel
ketika P1 dijalankan dengna membutuhkan 8 ms, akan tetapi datang burst dari proses P2 dengan burst
time 4 ms pada deti ke-1. Proses akan berhenti pada detik 1 kemudian membandingkan proses P1
dengan P2. Karena P2 < P1 maka proses P1 akan dikembalikan ke ready queue dengan P1 = 7 dan
memproses P2. Demikian seterusnya.
Gant chart :
Waiting Time P1 = 0 + (10-1) = 9
Waiting Time P2 = 1-1 = 0
Waiting Time P3 = 17-2 = 15
Waiting Time P4 = 5-3 = 2
Average Waiting Time = (9 + 0 + 15 + 2 )/4 = 6.5 ms
3. Round Robin (RR)
Round Robin hampir mirip dengan FCFS akan tetapi terdapat proses perpindahan antar proses dimana
satu proses melakukan interupsi terhadap proses yang lainnya atau disebut juga dengan preemptive.
Proses preemptivedengan menggunakan time quantum atau time slice.
Sebagai contoh :
Proses
Burst
P1
24
P2
3
P3
3
Dengan time slice sebesar 4 ms, penjadwalan yang terjadi adalah sebagai berikut:
P1 mendapatkan kesempatan pada 4 ms (time slice) pertama, karena P1 > time slice maka P1 hanya
akan diproses selama time slice, sisa P1 sebesar P1 time slice akan di preemptive-kan. Selanjutnya
penjadwalan akan beralih ke P2, karena P2 < time slice maka P2 diproses hingga selesai, setelah itu
penjadwalan beralih ke P3 dan seterusnya.
Waiting Time P1 = 0 + (10 4) = 6
Waiting Time P2 = 4
Waiting Time P3 = 7
Average Waiting Time = (6 + 4 + 7 )/3 = 5.66 ms
Pada algoritma RR, tidak ada proses yang dikerjakan dalam satu waktu lebih dari time slice yang
disediakan. Jika terdapat n proses pada queue dengan time slice sebesar q, maka setiap proses akan
mendapatkan waktu 1/n dengan masing-masing proses sebesar q .Setiap proses akan menunggu
setidaknya sebanyak (n-1)x q untuk proses selanjutnya. Sebagai contoh terdapat 5 proses dengan time
slice sebesar 20 ms maka masing-masing proses akan mendapatkan waktu sebanyak 20 ms setiap 100
ms.
Performance dari RR tergantung pada ukuran time slice. Jika time slice terlalu besar maka RR akan
sama atau mendekati performance FCFS. Akan tetapi jika time slice kecil maka muncul
problem context switch yang terlalu banyak, yaitu proses perpindahan dari satu proses ke proses lain

yang akan menimbulkan permasalahan. Hal ini terjadi karena perbedaan kecepatan processor dan
memori, dengan terjadinya perpindahan yang terlalu sering proses pembacaan CPU ke memori dan
sebaliknya akan membebani sistem.
HRRN (highest Response Ratio Next)
merupakan penjadwalan non-preemptive, mengunakan proritas dinamis. Penjadwalan ini
memperbaiki Shortest Job Frist perioritas proses tidak hanya merupakan fungsi waktu layanan,tetapi
jumlah waktu tunggu proses. HRRN dihitung berdasarkan rumus :
Prioritas=(waktu tunggu + waktu layanan)/waktu layanan
Algoritma ini merupakan Penjadwalan berprioritas dinamis Penjadwalan untuk mengoreksi
kelemahan SJF. Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan
fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah
pemroses, proses berjalan sampai selesai. Prioritas dinamis HRN dihitung berdasarkan rumus :
Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan Karena waktu layanan muncul sebagai
pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang
maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus. Disebut
HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu
tanggap tertinggi yang harus dilayan

GS (Guaranteed Schedulling )
merupakan penjadawalan preemptive menggunakan prioritas dinamis. Jika terdapat N pemakai, setiap
pemakai diusahakan senantiasa mendapatkan(1/N) waktu Prosesor. Pada saat terjadi penjadwalan
dihitung rasio waktu running semenjak login setiap pemakai dan waktu pemakai prosesor secara
keseluruhan.
Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat
dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan
mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan
informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai
sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih
mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui,
maka dapat dihitung rasio antara waktu pemroses
yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang
telah diperuntukkan proses itu. Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu
CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki.
Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik
ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem
real-time dan memiliki penjadwalan berprioritas dinamis.
MLQ ( Multi LeveL Queues )
merupakan penjadwalan preemptive, Peroses-proses dibagi atas group dan ditempatkan pada antrian
yang berbeda.
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.
9. MFQ (Multi Level feedback Queues)
merupakan algoritma penjadwalan preemptive berprioritas dinamis berdasarkan jumlah Quantum
Time, MFQ menggunakan sejumlah antrian dengan prioritas dan Quantum Time yang
berbeda.Algoritma ini merupakan penjadwalan berprioritas dinamis Penjadwalan ini bertujuan untuk
mencegah (mengurangi) banyaknya swapping dengan proses-proses yang sangat banyak
menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu
(jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas
prioritas bagi proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya
berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya.
Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi. Mekanisme ini
mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses
interaktif yang singkat harus menunggu lama.
Adil (Fairness)
Adil adalah proses-proses diperlukan sama yaitu mendapatkan jatah waktu pemroses yang sama dan
tak ada proses yang tidak kebagian layanan pemroses sehingga mengalami startvision. Sasaran
pendjadwalan seharusnya menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
Efesiensi
Efesiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. Sasaran
penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efesiensi mencapai
maksimum. Sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk
mengeksekusi program pemakai dan sistem operasi.
Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk :
Sistem interaktif
Sistem waktu nyata
Waktu tanggap pada sistem interaktif (Interaktif)
Waktu tanggap dalam sistem interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter
terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul dilayar (terminal).
Waktu tanggap ini disebut terminal response time.
Waktu tanggap pada sistem waktu nyata(Real Time)
Pada sistem waktu nyata, waktu tanggap didefinisikan sebagai waktu dari saat kejadian (internal atau
eksernal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response
time. Sasaran pendjadwalan adalah meminimalkan waktu tanggap.
Turn Arround Time
Turn arround time adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system
sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan dalam
sistem, diekspresikan sebagai jumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu,
yaitu;
Turn Arround Time = waktu eksekusi + waktu tunggu

Sasaran penjadwalan adalah meminimalkan turn arround time.


Throughtput
Throughtput adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu
unit/interval waktu. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses per satu
interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem. Kriteriakriteria tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak dimungkinkan
optimasi semua kriteria secara simultan. Contoh :
Untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih diantara
prosesproses itu. Cara ini meningkatkan overhead sistem dan mereduksi throughput. Kebijaksanaan
perancangan penjadwalan melibatkan kompromi diantara kebutuhan-kebutuhan yang saling
bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.
5.2 Tipe-Tipe Penjadwalan
Terdapat tiga tipe penjadwalan berada secara bersama-sama pada sistem operasi yang kompleks, yaitu
:
1. Penjadwal jangka pendek (short-tem scheduller)
2. Penjadwal jangka menengah (medium-term scheduller)
3. Penjadwal jangka panjang (long-term scheduller)
Penjadwal Jangka Pendek
Penjadwal ini bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori
utama. Sasaran utama penjadwal ini memaksimalkan kinerja untuk memenuhi satu kumpulan kriteria
yang diharapakan. Penjadwal ini dijalankan setiap terjadi pengalihan proses untuk memilih proses
berikutnya yang harus dijalankan.
Penjadwal Jangka Menengah
Setelah eksekusi selama suatu waktu, proses mungkin ditunda karena membuat permintaan layanan
masukan/keluaran atau memanggil suatu system call. Proses-proses tertunda tidak dapat membuat
suatu kemajuan selesai sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan.
Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori sekunder
agar tersedia ruang untuk proses-proseslain. Kapasitas memori utama terbatas untuk sejumlah proses
aktif. Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder
disebutswapping.
Penjadwal jangka menengah adalah menangani proses-proses swapping. Proses-proses mempunyai
kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya
terunda hilang dan proses dimasukkan kembali ke memori utama dan ready. Penjadwal jangka
menengah mengendalikan transisi dari suspended-ready (dari keadaan suspend ke ready) prosesproses swapping.
Penjadwal Jangka Panjang
Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus
dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu
waktu proses, memori, perangkat I/O), program-program ini berprioritas rendah, digunakan sebagai
pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah. Sasaran utama
penjadwal jangka pangjang adalah memberi keseimbangan job-job campuran. Dikaitkan dengan statestate proses.
5.3 Strategi Pendjadwalan
Terdapat dua strategi penjadwalan, yaitu:
1. Penjadwalan nonpreemptive (run to completion)
2. Penjadwalan preemptive

Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh proses lain
sampai proses itu selesai.
Penjadwalan Preemptive
Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih proses lain sehingga
proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali
pada proses itu.
Penjadwalan preemptive berguna pada sistem dimana proses-proses yang mendapat perhatian
tanggapan pemroses secara cepat. Misalnya :
Pada sistem waktu nyata, kehilangan interupsi (yaitu interupsi tidak segera dilayani) dapat berakibat
fatal.
Pada sistem interaktif/time-sharing, penjadwalan preemptive penting agar dapat menjamin waktu
tanggap yang memadai.
Penjadwalan preemptive bagus, tapi tidak tanpa ongkos. Perlaihan proses (yaitu proses beralih ke
proses lain) memerlukan overhead (karena banyak tabel yang dikelola). Agar preemptive efektif,
banyak proses harus berada di memori utama sehingga proses-proses tersebut dapat segera running
begitu diperlukan. Menyimpan banyak proses tak running benar-benar di memori merupakan suatu
overhead tersendiri.
5.4 Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan ,baik nonpreemptive maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya:
FIFO (Frist In First Out)
SJF (Shortest Job First)
HRN (Highest Ratio Net)
MFQ (Multiple Feedback Queues).
Algoritma-algoritma yang menerapkan strategi preemptive diantaranya:
RR (Round Robin)
SRF (Shortest remaining First)
PS (Priority Schedulling)
GS (Guaranteed Schedulle)
Penjadwalan Round Robin (RR)
Penjadwalan ini merupakan:
Penjadwalan preemptive, buka dipreempt oleh proses lain tapi terutama oleh penjadwal berdasarkan
lama waktu berjalannya proses, disebut preempt-by-time.
Penjadwalan tanpa protes.
Semua Proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut kwata (quantum)
atau time slice dimana proses itu berjalan.
Ketentuan
Ketentuan algoritma round robin adalah sebagai berikut:
1.Jika kwanta habis dan proses belum selesai maka proses menjadi runable dan pemroses dialihkan ke
poses lain.
2.Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses
menjadi blocked dan pemroses dialihkan ke proses lain.
3.Jika kwanta belum habis tapi proses telah selesai maka proses diakhiri dan pemroses dialihkan ke
proses lain.
Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:

Mengelola senarai proses ready (runnable) seusai urutan kedatangan.


Ambil proses yang berada diujung depan antrian menjadi running.
Bila kwanta belum habis dan proses selesai maka ambil proses diujung depan antrian proses ready.
Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses
ready dan ambil proses diujung depan antrian proses ready.
Masalah penjadwalan ini adalah menentukan besar kwanta, yaitu:
Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
Kwanta terlalu kecil mengakibatkan peralihan proses terlalu banyak sehingga menurunkan efesiensi
pemroses.
Harus ditetapkan kwanta waktu yang optimal berdasar kebutuhan sistem terutama dari hasil
percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem.
Berdasarkan kriteria penilaian penjadwalan:
Fairness
Penjadwalan RR adil bila dipandang dari persamaan pelayanan oleh pemroses.
Efesiensi
Penjadwalan RR cenderung efesien pada sistem interaktif.
Waktu tanggap
Penjadwalan RR memuaskan untuk sistem interaktif, tidak memakai untuk sistem waktu nyata.
Turn Arround Time
Penjadwalan RR cukup bagus.
Throughput
Penjadwalan RR cukup bagus.
Penggunaan:
Cocok untuk sistem interaktif-time sharing dimana kebanyakan waktu dipergunakan menunggu
kejadian eksternal. Contoh ; text-editor, kebanyakan waktu program adalah menunggu keyboard,
hingga dijalankan proses-proses lain.
Tidak cocok untuk sistem real-time.
Penjadwalana FIFO
Penjadwalan ini merupakan:
Penjadwalana non-preemptive
Penjadwalan tidak berprioritas
Ketentuan:
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu:
Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
Begitu proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantik/arti antrian, yaitu proses yang
datangduluan, dilayani duluan juga), tapi dinyatakan tak adil karena job-job yang perlu waktu lama
membuat job-job pendek menunggu. Job-job tak penting dapat membuat job-job penting menunggu.
FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain, misalnya :
keputusan berdasarkan prioritas proses. Untuk proses-proses berprioritas sama diputuskan
berdasarkan FIFO.
Berdasarkan kriteria penilaian penjadwalan :
Fairness
Penjadwalan FIFO adil bila dipandang dari semantik antrian.
Efesiensi
Penjadwalan FIFO sangat efesien
Waktu tanggap

Penjadwalan FIFO sangat jelek, tidak cocok untuk sistem interaktif apalagi waktu nyata.
Turn arround time
Penjadwalan FIFO jelek
Throughput
Penjadwalan FIFO jelek.
Penggunaan:
Cocok untuk sistem batch yang sangat jarang interaksi dengan pemakai. Contoh aplikasi analisis
numerik, pembuatan tabel.
Penjadwalan ini sama sekali tak berguna untuk sistem interaktif karena tidak memberi waktu
tanggap yang bagus.
Tidak dapat digunakan untuk sistem waktu nyata.
Penjadwalan Berprioritas (PS)
Ide penjadwalan adalah tiap proses diberikan prioritas dan proses berprioritas tinggi running
(mendapat jatah waktu proses).
Prioritas dapat diberikan secara :
Prioritas statis
Prioritas dinamis
Prioritas Statis
Prioritas statis berarti rioritas tak berubah
Keunggulan
mudah diimplementasikan
mempunyai overhead relatif kecil
Kelemahan
Penjadwalan tak tanggap perbuhana lingkungan yang mungkin menghendaki penyesuaian prioritas.
Prioritas Dinamis
Prioritas dinamis merupakan mekanisme menanggapi perubahan lingkungan sistem beroperasi.
Prioritas awal diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai
yanglebih tepat sesuai lingkungan.
Kelemahan
Implementasi mekanisme prioritas dinamis lebih kompeks dan mempunyai overhead lebih besar.
Overhead ini diimbangi dengan peningkatan daya tanggap sistem.
Contoh penjadwalan berprioritas
Proses-proses yang sangat banyak operasi I/O menghabiskan kebanyakan waktu menunggu selesainya
operasi I/O. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses memerlukan
pemroses segera diberikan, proses akan segera memulai permintaan I/O berikutnya hingga
mengakibatkan proses blocked menunggu selesainya operasi I/O. Dengan demikian pe mroses dapat
dipergunakan proses-proses lain. Proses-proses I/O bound berjalan paralel bersama proses-proses lain
yang benar-benar memerlukan pemroses, sementara proses-proses I/O bound itu menunggu selesainya
operasi DMA.
Proses-proses yang sangat banyak operasi I/O kalau harus menuggu lama untuk memakai pemroses
(karena prioritas rendah) hanya akan membebani meori karena harus disimpan tanpa perlu
prosesproses itu dimemori karena tidak selesai-selesai menunggu operai I/O dan menunggu jatah
pemroses.
Algoritma Prioritas Dinamis
Algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan.
Algoritma sederhana yang memberi layanan bagus adalah men-set prioritas dengan nilai 1/f dimana f
adalah ratio kwanta terakhir yang digunakan proses.

Proses yang menggunakan 2 msec kwanta 100 ms maka prioritasnya 50.


Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
Proses yang menggunakan seluruh kwanta berprioritas 1.
Keunggulan Algoritma Penjadwalan Berprioritas
Biasanya memenuhi kebijaksanaan yang ingin mencapai maksimasi suatu kriteria diterapkan.
Kombinasi
Algoritma penjadwalan berprioritas dapat dikombinasikan yaitu mengelompokan proses-proses
menjadi kelas-kelas prioritas. Penjadwalan berprioritas diterapkan antar kelas-kelas proses itu.
Penjadwalan round-robin atau FIFO diterapkan pada proses-proses di satu kelas.
Penjadwalan dengan Banyak Antrian (MFQ)
Penjadwalan ini merupakan:
Penjadwalan preemptive (by-time)
Penjadwalan berprioritas dinamis.
Penjadwalan ini untuk mencegah banyaknya swapping dengan proses-proses yang sangat
banyakmenggunakan pemroses (karena menyeelesaikan tugasnya memakan waktu lama) diberi jatah
waktu (jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan ini menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas tertinggi
berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan
empat kwanta, dan seterusnya. Ketentuan yang berlaku adalah sebagai berikut:
Jalankan proses pada kelas tertinggi
Jika proses menggunakan seluruh kwanta yang dialokasikan maka diturunkan kelas prioritasnya.
Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekasnime ini dapat mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah
proses-proses interaktif yang singkat harus menunggu lama.

Anda mungkin juga menyukai