A.
Pengertian
Penjadwalan
atau scheduling adalah sebuah metode dalam system operasi yang mengatur
proses-proses yang akan berjalan dalam suatu system operasi. Hal ini sangat
diperlukan karena pada saat ini komputer berbasiskan multiprogramming. Sehingga
dalam suatu waktu akan berlangsung dua atau lebih pemrosesan. Tanenbaum
menyebutkan, bagian dari sistem operasi yang membuat pilihan dinamakan
scheduller, sedangkan algoritma yang digunakan dinamakan schedulling algorithm.
Secara garis besar penjadwalan dibedakan menjadi dua kelompok besar, yaitu:
1. Non-preemptive
Pada metode ini jika suatu proses telah berjalan maka sistem operasi maupun operasi lain tidak dapat mengambil alih eksekusi prosesor. Pengalihan prosesor hanya dapat dilakukan jika proses yang sedang berjalan tadi telah berhenti. Metode ini digunakan pada sistem batch dan sekuensial
2. Preemptive
Metode ini lebih canggih dari pada non-preemptive, karena sistem operasi dan operasi lain dapat mengambil alih eksekusi prosesor tanpa harus menunggu proses lain yang sedang running berhenti. Metode ini digunakna pada sistem real time.
Proses penjadwalan yang dilakukan oleh sistem operasi sebenarnya dipicu dari beberapa hal yaitu:
1. Proses berubah dari status running ke blocked, hal ini dapat terjadi ketika suatu proses melakukan system call untuk meminta operasi I/O
2. Proses berubah dari status running ke ready, hal ini dapat terjadi ketika suatu proses yang berstatus running telah habis time slice-nya.
3. Proses berubah dari status blocked ke ready, dalam hal ini merupakan kelanjutan dari pemicu nomor 1 diatas, ketika permintaan terhadap I/O telah terpenuhi maka proses yang tadinya berstatus blocked berubah menjadi ready
4. Ketika suatu proses berhenti atau terminated. Hal ini berarti suatu proses telah selesai dijalankan sehingga system operasi kemudian akan menjalankan proses yang telah ready.
Secara garis besar penjadwalan dibedakan menjadi dua kelompok besar, yaitu:
1. Non-preemptive
Pada metode ini jika suatu proses telah berjalan maka sistem operasi maupun operasi lain tidak dapat mengambil alih eksekusi prosesor. Pengalihan prosesor hanya dapat dilakukan jika proses yang sedang berjalan tadi telah berhenti. Metode ini digunakan pada sistem batch dan sekuensial
2. Preemptive
Metode ini lebih canggih dari pada non-preemptive, karena sistem operasi dan operasi lain dapat mengambil alih eksekusi prosesor tanpa harus menunggu proses lain yang sedang running berhenti. Metode ini digunakna pada sistem real time.
Proses penjadwalan yang dilakukan oleh sistem operasi sebenarnya dipicu dari beberapa hal yaitu:
1. Proses berubah dari status running ke blocked, hal ini dapat terjadi ketika suatu proses melakukan system call untuk meminta operasi I/O
2. Proses berubah dari status running ke ready, hal ini dapat terjadi ketika suatu proses yang berstatus running telah habis time slice-nya.
3. Proses berubah dari status blocked ke ready, dalam hal ini merupakan kelanjutan dari pemicu nomor 1 diatas, ketika permintaan terhadap I/O telah terpenuhi maka proses yang tadinya berstatus blocked berubah menjadi ready
4. Ketika suatu proses berhenti atau terminated. Hal ini berarti suatu proses telah selesai dijalankan sehingga system operasi kemudian akan menjalankan proses yang telah ready.
Penjadwalan merupakan
salah satu fungsi dasar dari sistem
operasi. Hampir semua sumber daya komputer dijadwalkan
sebelum digunakan.
• CPU-I/O Burst
Cycle
Kesuksesan penjadwaln CPU tergantung
dari observasi proses-proses. Pengeksekusian proses terdiri putaran ekseskusi
CPU dan penungguan I/O. Eksekusi proses dimulai dari CPU
burst, yaitu diikuti oleh I/O burst kemudian diikuti CPU burst lainnya
lalu I/O burst lainnya dan begitu seterusnya.
Gambar 1
Urutan pergantian CPU Burst dengan I/O Burst
•
Penjadwalan CPU
Ketika CPU mengalami waktu
idle, sistem operasi harus memilih salah
satu proses untuk masuk kedalam antrian yang
akan untuk dieksekusi. Pemilihan tersebut
dilakukan oleh penjadwal jangka pendek atau
penjadwal CPU. Penjadwalan memilih proses yang ada di memori
serta siap untuk dieksekusi, dan mengalokasikan CPU untuk mengeksekusinya.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready.
4. Terminates.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready.
4. Terminates.
Penjadwalan nomor 1 dan 4 bersifat non-preemptive atau
cooperative sedangkan lainnya preemptive. Dalam penjadwalan non-preemptive
sekali CPU telah dialokasikan untuk sebuah proses, maka tidak
dapat di ganggu, penjadwalan model seperti
ini digunakan oleh Windows 3.x; Windows 95 telah
menggunakan penjadwalan preemptive yaitu saat suatu proses sedang dieksekusi, CPU dapat diambil alih oleh proses lain sehingga proses di tunda dan dilanjutkan kembali hingga proses selesai.
• Kriteria Penjadwalan
Setiap algoritma penjadwalan dapat berbeda dengan
nilai yang berbeda dan sistem komputer yang berbeda. Dalam
penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah: menggunakan penjadwalan preemptive yaitu saat suatu proses sedang dieksekusi, CPU dapat diambil alih oleh proses lain sehingga proses di tunda dan dilanjutkan kembali hingga proses selesai.
• Kriteria Penjadwalan
o CPU Utilization. Kita menginginkan kerja CPU sesibuk mungkin. Konsepnya pemanfaatan CPU mempunyai jangkauan dari 0 sampai 100 persen. Di sistem yang sebenarnya mungkin hanya mempunyai jangakuan dari 40 (untuk pemanggilan ringan sistem) sampai 90 persen (pemanggilan berat sistem).
o Throughput. Pengukuran kinerja CPU adalah banyaknya proses yang diselesaikan per satuan waktu. Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang berbeda, hasil kinerja bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang terbaik.
o Turnaround Time. Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah proses. Misal, kita memilki sistem komputer yang identik dan proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma yang lain. Interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time.Turnaround time adalah jumlah periode tunggu untuk dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi I/O atau waktu yang dihabiskan dari saat program atau job mulai masuk sistem sampai proses diselesaikan sistem.
o Turnaround = waktu eksekusi + waktu menunggu
o Waiting Time. Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau I/O, karena hanya mempengaruhi jumlah waktu yang dibutuhkan proses diantrian ready. Waiting time adalah jumlah waktu yang dbutuhkan proses di antrian ready.
o Response time. Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria. Sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke pengguna. ukuran lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Hal ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk respon tersebut. Turnround time umumnya dibatasi oleh kecepatan peralatan keluaran. Ada dua jenis response time berdasarkan penggunaannya pada sistem interaktif dan sistem waktu nyata (real time), yaitu:
1. Terminal response time merupakan response time pada sistem interaktif sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar.
2. Event response time merupakan response time pada sistem waktu nyata sebagai waktu dan kejadian (internal/eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi.
Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan
penggunaan CPU dan throughput, dan meminimalkan turnaround time, waiting time, dan response
time.
• Algoritma Penjadwalan
Masalah penjadwaln CPU adalah memutuskan proses mana yang berada di dalam antrian ready akan dialokasikan ke CPU. Ada beberapa algoritma penjadwalan CPU beberapa diantaranya akan di jelaskan pada bagian berikut ini.
o First-Come First-Served (FCFS)
Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap proses yang berada pada status ready dimasukkan ke dalam antrian FIFO sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi
terlebih dahulu.
o Shortest-Job First (SJF)
Algoritma ini mempunyai cara penjadwalan yang berbeda dengan FCFS. Dengan algoritma ini maka setiap proses yang ada di antrian ready 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.
o Penjadwalan dengan Prioritas
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses dengan nilai prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:
a. Batas waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses
o Round Robin
Algoritma ini didesin untuk sistem time-sharing. Proses akan mendapat jatah sebesar time quantum dengan nilai quantum umumnya sebesar 10-100 ms. 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 (1/n), dan tak akan menunggu lebih lama dari (n-1)/q.
o Antrian Multilevel (Multilevel Queue)
Ide dasar dari algoritma ini adalah berdasarkan pada sistem prioritas proses. Prinsipnya adalah, jika setiap proses dapat dikelompokkan berdasarkan prioritasnya.
o 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. 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.
Lengkapnya http://www.4shared.com/file/mYpWcbet/Makalah_Kel2_3B_Non-Reg_Inform.html
thanks gan sudah share
BalasHapusisolasi double tape