Penjadwalan
Processor Pada Sistem Operasi Linux
1. Konsep Proses Pada
Sistem Operasi
Sistem
operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut
biasanya disebut dengan job, sedangkan pada sistem time sharing, program
disebut dengan program user atau task. Beberapa buku teks menggunakan istilah
job atau proses. Proses adalah program yang sedang dieksekusi. Eksekusi proses
dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack
dan daerah data. Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di
sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem
komputer. Proses penjadwalan yang akan dibahas disini adalah proses penjadwalan
sistem operasi Solaris dan Linux. Tujuan utama penjadwalan proses optimasi
kinerja menurut kriteria tertentu, dimana kriteria untuk mengukur dan optimasi
kerja penjadwalan.
Penjadwalan
CPU adalah basis dari multi programming sistem operasi. Dengan cara men-switch
CPU diantara proses, maka akan berakibat sistem operasi bisa membuat komputer
produktif. Dalam bab ini kami akan mengenalkan tentang dasar dari konsep
penjadwalan dan beberapa algoritma penjadwalan.
Pada
sistem Operasi, terdapat 3 tipe penjadwal berada secara bersama-sama pada
sistem operasi yang kompleks, yaitu:
a.
Penjadwal jangka pendek (short term
scheduller)
Bertugas
menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.
Penjadwalan ini dijalankan setiap terjadi pengalihan proses untuk memilih
proses berikutnya yang harusdijalankan.
b.
Penjadwal jangka menengah (medium term
scheduller)
Setelah
eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena
membuat permintaan layanan masukan/keluaran atau memanggil suatu system call.
Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju 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-proses lain. Kapasitas memori utama terbatas untuk
sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda dari memori
utama ke memori sekunder disebut swapping. Proses-proses mempunyai kepentingan
kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang
membuatnya tertunda hilang dan dimasukkan kembali ke memori utama dan ready.
c.
Penjadwal jangka panjang (long term
scheduller)
Penjadwalan
ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus
dieksekusi. Batch biasanya berupa proses-proses dengan penggunaan sumber daya
yang intensif (yaitu waktu pemroses, memori, masukan/keluaran), program-program
ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama
periode aktivitas job-job interaktif rendah.Meskipun tiap-tiap proses terdiri
dari suatu kesatuan yang terpisah namun adakalanya proses-proses tersebut butuh
untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses
lainnya sebagai input. Pada saat proses dieksekusi, akan terjadi perubahan status.
Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang
berlangsung saat itu. Status proses terdiri dari :
a.
New, proses sedang dibuat.
b.
Running, proses sedang dieksekusi.
c.
Waiting, proses sedang menunggu beberapa event yang akan terjadi (seperti
menunggu untuk menyelesaikan I/O atau menerima sinyal).
d.
Ready, proses menunggu jatah waktu dari CPU untuk diproses.
Secara blog diagram,
maka dapat digambarkan sebagai berikut :
Gambar
1. Urutan proses pada sistem operasi
Masing-masing proses
direpresentasikan oleh Sistem
Operasi dengan menggunakan
Process Control Block (PCB). Informasi yang terdapat pada setiap proses
meliputi :
a.
Status Proses. New, ready, running, waiting dan terminated.
b.
Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh
proses tersebut.
c.
CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur
komputer yang bersangkutan.
Register-register tersebut terdiri-atas: accumulator, index register,
stack pointer, dan register serbaguna dan beberapa informasi tentang kode
kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada
saat terjadi interrupt.
d.
Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu
proses, pointer ke
antrian penjadwalan, dan
beberapa parameter penjadwalan
yang lainnya.
e.
Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit
register, page table, atau segment table tergantung pada sistem memory yang
digunakan oleh sistem operasi.
f.
Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang
digunakan, time limits, account numbers, jumlah job atau proses.
g.
Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti
tape driver) yang dialokasikan untuk
proses tersebut, deretan file yang dibuka.
Swithing proses dari
proses satu ke proses berikutnya, ditunjukkan seperti gambar berikut ini.
Gambar
2. Switching proses dari satu proses ke proses berikutnya.
2. Kriteria Penjadwalan
Algoritma
penjadwalan CPU yang berbeda akan memiliki perbedaan properti.Untuk memilih
algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut.
Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma
penjadwalan CPU, antara lain:
1. CPU
utilization.
Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam
bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara
40-90%.
2. Throughput. Adalah
banyaknya proses yang selesai dikerjakan dalam satu satuan waktu.
3. Turnaround
time. Banyaknya waktu yang diperlukan untuk mengeksekusi
proses, dari mulai menunggu untuk meminta tempat di memori utama,menunggu di
ready queue, eksekusi oleh CPU, dan mengerjakan I/O.
4. Waiting
time.
Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting
time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.
5. Response
time.
Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon
pertama yang menanggapi permintaan tersebut.
6. Fairness.Meyakinkan bahwa
tiap-tiap proses akan mendapatkan pembagian waktupenggunaan CPU secara terbuka
(fair).
3. Dispathcer
Dispatcher
adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian
proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang
terkandung di dalamnya meliputi:
a.
Switching context;
b.
Switching ke user-mode;
c.
Melompat ke lokasi tertentu pada user program untuk memulai program.Waktu yang
diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk
menjalankan proses yang lainnya disebut dispatch latency.
4. Algoritma
Penjadwalan
Proses memerlukan
prosesor dan penjadwalan
pemakaian prosesor. Berdasarkan berbagai ketentuan pada penjadwalan
proses serentak, dapat disusun teknik penjadwalan prosesor. Dapat dipandang
semua proses serentak itu sebagai satu kumpulan proses yang memerlukan
prosesor.
Penjadwalan
proses didasarkan pada sistem operasi yang menggunakan prinsip
multiprogramming. Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka
CPU akan semakin produktif.
Algoritma
diperlukan untuk mengatur giliran proses-proses yang ada di ready queue yang
mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan
sebagai berikut :
1. First
Come First Served (FCFS) Scheduling
FCFS
merupakan algoritma penjadwalan yang paling sederhana yang digunakan dalam 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.
Kelemahan
dari algoritma ini:
a. Waiting
time rata-ratanya cukup lama.
b. 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.
c. Pada
algoritma ini, maka proses yang pertama kali meminta jatah waktu untuk menggunakan
CPU akan dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU
pertama kali akan dialokasikan ke CPU pertama kali.
2. Shortest
Job First (SJF) Scheduling
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.
Ada
beberapa kekurangan dari algoritma ini yaitu:
·
Susahnya untuk memprediksi burst time
proses yang akan dieksekusi selanjutnya.
·
Proses yang mempunyai burst time yang
besar akan memiliki waiting time yang besar pula SJF (Shortest Job First)
karena yang dieksekusi terlebih dahulu adalah proses dengan burst time yang
lebih kecil.
Algoritma
ini dapat dibagi menjadi dua bagian yaitu :
·
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.
·
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.
3. 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:
o
Time limit.
o
Memory requirement.
o
Akses file.
o
Perbandingan antara I/O burst dengan CPU
burst.
o
Tingkat kepentingan proses.
Pada
algoritma ini terdapat 2 macam penjadwalan, yaitu :
·
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.
·
Nonpreemtive. 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).
Solusi dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari
setiap proses yang menunggu dalam queue secara bertahap.
4. Round
Robin Scheduling
Algoritma ini menggilir
proses yang ada di antrian. Setiap proses mendapat jatah sebesar time quantum.
Jika time quantum-nya habis atau proses sudah selesai,CPU akan dialokasikan ke
proses berikutnya.
Gambar
3. Urutan kejadian algoritma round robin
Konsep
dasar dari algoritma ini adalah dengan menggunakan time- sharing. Pada dasarnya
algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses
mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time) untuk
membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses
ditunda dan ditambahkan pada ready queue. Jika suatu proses
memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses
tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera
digunakan oleh proses selanjutnya dan sebaliknya.
Algoritma
Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman
waktu. Namun di sisi lain, algoritma ini akan terlalu sering melakukan
switching seperti yang terlihat pada gambar 4.
Semakin
besar quantum-timenya maka switching yang terjadi akan semakin sedikit.
Pada
multiprogramming, selalu akan terjadi beberapa proses berjalan dalam suatu
waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya
ada satu proses yang berjalan pada saat tertentu.
Konsep
dasar dari multiprogramming ini adalah: suatu proses akan menggunakan CPU
sampai proses tersebut dalam status wait (misalnya meminta I/O) atau selesai.
Pada saat wait , maka CPU akan nganggur (idle). Untuk mengatasi hal ini, maka
CPU dialihkan ke proses lain pada saat suatu proses sedang dalam wait, demikian
seterusnya.
Tidak ada komentar:
Posting Komentar