Minggu, 02 April 2017

Penjadwalan CPU (Sistem Operasi)

MAKALAH
SISTEM OPERASI



PENJADWALAN CPU







 Disusun Oleh :
Anna Muslimah (12161508)
Nadia Fatihatuz Z. (12161528)
Navida Shofuro (12161529)
Rahma Sunita (12161531)
Uswatun Khasanah (23160332)




KATA PENGANTAR


          Puji dan syukur kami panjatkan kepada Allah SWT, karena atas rahmat dan hidayah-Nyalah sehingga kami dapat menyelesaikan tugas mata kuliah Sistem Operasi  yang berjudul “Penjadwalan CPU”.
Makalah ini berisi tentang  penjadwalan CPU yang terdiri dari Konsep Dasar, Kriteria Penjadwalan, Algoritma Penjadwalan, Multiple-Processor Scheduling, Real-Time Penjadwalan, Penjadwalan Thread, Contoh Sistem Operasi, Penjadwalan Java Thread, dan Evaluasi Algoritma.

Semoga  makalah ini dapat menambah wawasan yang lebih luas kepada pembaca, walaupun  makalah ini memiliki kelebihan dan kekurangan. Penyusun mohon untuk saran dan  kritiknya. Terima kasih.



Penyusun



BAB I
PEMBAHASAN

PENJADWALAN CPU

A.    KONSEP DASAR

Tujuan dari multi programming adalah untuk mempunyai proses yang berjalan secara bersamaan, untuk memaksimalkan kinerja dari CPU. Untuk sistem uniprosesor, tidak pernah ada proses yang berjalan lebih dari satu. Bila ada proses yang lebih dari satu maka yang lain harus mengantri sampai CPU bebas.

Penjadwalan adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer dijadwalkan sebelum digunakan. CPU yaitu salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadwalan di sistem operasi. Maksimum utilisasi CPU diperoleh dengan multiprogramming CPU-I / O Burst Cycle – Eksekusi proses terdiri dari siklus eksekusi CPU dan I / O menunggu CPU burst distribusi.Ide dari multi porgamming sangat sederhana. Ketika sebuah proses dieksekusi, yang lain harus menunggu sampai selesai. Di system komputer yang sederhana CPU akan banyak dalam posisi idle.Semua waktu ini sangat terbuang,. Dengan multiprogramming kita mencoba menggunakan waktu secara produktif. Beberapa proses di simpan dalam memori dalam satu waktu. Ketika proses harus menunggu, sistem operasi mengambil CPU untuk memproses proses tersebut dan meninggalkan proses yang sedang dieksekusi.

CPU-I/O Burst Cycle
Keberhasilan dari penjadwalan CPU tergantung dari beberapa properti prosesor. Proses eksekusi mengandung siklus CPU ekskusi dan I/O Wait. Proses hanya akan bolak-balik dari dua state ini. Proses eksekusi dimulai dengan CPU Burst, setelah itu diikuti oleh I/O burst, dan dilakukan secara bergiliran.
Durasi dari CPU burst ini telah diukur secara ekstensif, walaupun mereka sangat berbeda dari proses ke proses. Mereka mempunyai frekuensi kurva yang sama seperti yang diperlihatkan gambar dibawah ini.



Histogram CPU-burst Times

Penjadwalan CPU

Ketika CPU mengalami waktu idle, sistem operasi harus memilih salah satu proses untuk masuk kedalam antrian yang akan dieksekusi. Pemilihan tersebut dilakukan oleh penjadwal jangka pendek atau penjadwal CPU.

Ada tiga tipe penjadwal yang berada bersama pada sistem operasi kompleks, yaitu :
a.              Penjadwal jangka pendek yang bertugas menjadwalkan alokasi pemroses di antara proses-proses yang telah siap di memori utama.
b.             Penjadwal jangka menengah akan menangani serta mengendalikan transisi dari suspended-toready dari proses-proses swapping.
c.              Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi.     
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 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.

B.     KRITERIA PENJADWALAN

Setiap algoritma penjadwalan dapat berbeda dengan nilai yang berbeda dan sistem komputer yang berbeda. Dalam penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah:
1.      CPU utilization : kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 ke 100 persen. Di sistem yang sebenarnya seharusnya ia mempunyai range dari 40 persen samapi 90 persen
2.      Throughput : jika CPU sibuk mengeksekusi proses, jika begitu kerja telah dilaksanakan. Salah satu ukuran kerja adalah banyak proses yang diselesaikan per unit waktu, disebut throughput. Untuk proses yang lama mungkin 1 proses per jam ; untuk proses yang sebentar mungkin 10 proses perdetik.
3.      Turnaround time : dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Interval dari waktu yang dijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah prose disebut turn around time. Trun around time adalah jumlah periode untuk menunggu untuk bisa ke memori, menunggu di ready queue, eksekusi di CPU, dan melakukan I/O
4.      Waiting time : algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau I/O; itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready. Waiting time adalah jumlah periode menghabiskan di antrian ready.
5.      Response time : di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria. Sering sebuah proses bisa memproduksi output diawal, dan bisa meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke user. Ukuran yang lain adalah waktu dari pengiriman permintaan sampai respon yang pertama di berikan. Ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untu respon tersebut.
Biasanya yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan minimalkan turnaround time, waiting time, dan response time dalam kasus tertentu kita mengambil rata-rata.

C.    ALGORITMA PENJADWALAN

Masalah penjadwalan 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.

  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 ke dalam antrian FIFO sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi terlebih dahulu.

Misalnya ada tiga buah proses yang ystem secara bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time 5 ms, P3 memiliki burst time 3 ms. Hitunglah wating time rata-rata dan turnaround time (burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS.

Proses
Burst Time
P1
24 ms
P2
5 ms
P3
3 ms

Waiting time untuk P1 adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai) dan untuk P3 sebesar 29 ms (menunggu P1 dan P2 selesai). Waiting time rata-ratanya adalah sebesar (0+24+29)/3 = 17,6 ms.

Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2 sebesar 29 ms (dihitung dari awal kedatangan P2 hingga selesai dieksekusi), untuk p3 sebesar 32 ms. Turnaround time rata-rata untuk ketiga proses tersebut adalah (24+29+32)/3 = 28,3 ms. 

Kelemahan dari algoritma ini:
a. Waiting time rata-ratanya cukup lama.
b. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu satu 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.

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 sistem hal tersebut maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.
Ada beberapa kekurangan dari algoritma ini yaitu:
• Kesulitan untuk memprediksi burst time proses yang akan dieksekusi selanjutnya .
• 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  antrian ready 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 antrian ready tersebut. Preemptive SJF sering disebut juga Shortest-Remaining-Time-First scheduling.
Proses
Arrival Time
Burst Time
P1
0 ms
7 ms
P2
2 ms
4 ms
P3
4 ms
1 ms
P4
5 ms
4 ms
2.      Non-preemptive. CPU tidak memperbolehkan proses yang ada di antrian ready untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil.

Misalnya ada empat buah proses dengan masing-masing waktu kedatangan burst time di jelaskan pada yste di bawah ini. Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan mengunakan algoritma SJF.
Solusi preemptive:


Rata-rata waiting time adalah (9 + 1 + 0 +2)/4 = 3, dimana :
P1: (0-0+11-2) = 9
P2: (2-2+5-4) = 1
P3: (4-4) = 0
P4: (7-5) = 2
Rata-rata turnaround time adalah ((9+7)+(1+4)+(0+1)+(4+2))/4 = 7
  Solusi Non-preemptive: 
Rata-rata waiting time adalah (0 + 6 + 3 + 7)/4 = 4, dimana:
P1: (0-0) = 0
P2: (8-2) = 6
P3: (7-4) = 3
P4: (12-5) = 7
Rata-rata turnaround time adalah ((0+7)+(6+4)+(3+1)+(7+4))/4 = 8

Meskipun algoritma ini optimal, namun pada kenyataannya sulit untuk diimplementasikan karena sulit untuk mengetahui panjang CPU burst berikutnya. Namun nilai ini dapat  diprediksi. CPU burst berikutnya biasanya diprediksi sebagai suatu rata-rata eksponensial yang ditentukan dari CPU burst sebelumnya atau “Exponential Average”.
 



Penjadwalan dengan prioritas (Priority Scheduling)

Algoritma SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiap-tiap proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan untuk proses yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan prioritas terbesar). Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive dan preemptive. Jika ada proses P1 yang ystem pada saat P0 sedang berjalan, maka akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dengan prioritas P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1.
 Misalnya terdapat lima proses P1, P2, P3, P4 dan P5 yang sistem secara berurutan dengan CPU burst dalam milidetik.
Process
Burst Time
Priority
P1
10
3
P2
1
1
P3
2
3
P4
1
4
P5
5
2
Waktu tunggu untuk P1 adalah 6, P2 adalah 0, P3 adalah 16, P4 adalah 18 dan P5 adalah
1 sehingga rata-rata waktu tunggu adalah (6 + 0 +16 + 18 + 1)/5 = 8.2 milidetik.




Round-Robin Scheduling
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. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya.

Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context switch.

Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan
quantum-time sebesar 4 milidetik.

Process
Burst Time
P1
24
P2
3
P3
3
  
Waktu tunggu untuk P1 adalah 6, P2 adalah 4, dan P3 adalah 7 sehingga rata-rata waktu
tunggu adalah (6 + 4 + 7)/3 = 5.66 milidetik.
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-4. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.
 
Waktu turnaround juga tergantung ukuran waktu quantum. Seperti pada Gambar 4-5, rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan. Secara umum, rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.

Antrian Multilevel (Multilevel Queue)

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


Gambar 3 Penjadwalan multilevel queue


Dari gambar tersebut terlihat bahwa akan terjadi pengelompokan-pengelompokan proses-proses berdasarkan prioritasnya. Kemudian muncul gagasan untuk menganggap kelompok-kelompok tersebut 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 antrian akan berjalan dengan algoritma FCFS dan dapat diketahui bahwa algoritma FCFS memiliki banyak kelemahan, oleh karena itu dalam prakteknya, algoritma multilevel queue memungkinkan adanya penerapan algoritma internal dalam masing-masing subantriannya untuk meningkatkan kinerjanya, dimana setiap sub-antrian bisa memiliki algoritma internal yang berbeda.

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 sistem 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.

Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.

Algoritma ini didefinisikan melalui beberapa parameter, antara lain:
• Jumlah antrian
• Algoritma penjadwalan tiap antrian
• Kapan menaikkan proses ke antrian yang lebih tinggi
• Kapan menurunkan proses ke antrian yang lebih rendah
• Antrian mana yang akan dimasuki proses yang membutuhkan



Gambar 4 Antrian multilevel feedback

Dengan pendefinisian seperti tadi membuat algoritma ini sering dipakai. Karena algoritma ini mudah dikonfigurasi ulang supaya cocok dengan ystem. Tapi untuk mengatahui mana penjadwal terbaik, kita harus mengetahui nilai parameter tersebut. Multilevel feedback queue adalah salah satu algoritma yang berdasar pada algoritma ystemic 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.

·         Semua proses yang baru system akan diletakkan pada antrian 0 (quantum = 8 ms)
·         Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan dihentikan dan dipindahkan ke antrian pertama (quantum = 16 ms)
·         Antrian pertama hanya akan dikerjakan jika tidak ada lagi proses di antrian 0, dan jika suatu proses di antrian pertama 1 tidak selesai dalam 16 ms, maka proses tersebut akan dipindahkan ke antrian kedua
·         Antrian kedua akan dikerjakan bila antrian 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:

a. Jumlah antrian
b. Algoritma internal tiap antrian
c. Aturan sebuah proses naik ke antrian yang lebih tinggi
d. Aturan sebuah proses turun ke antrian yang lebih rendah
e. Antrian yang akan dimasuki tiap proses yang baru ystem

Berdasarkan hal-hal di atas maka algoritma ini dapat digunakan secara fleksibel dan diterapkan sesuai dengan kebutuhan ystem. Pada masa sekarang ini algoritma multilevel feedback queue adalah salah satu yang paling banyak digunakan.

D.     MULTIPLE PROCESSOR SCHEDULING

·         Aturan yang berbeda untuk prosesor homogen atau heterogen.
·         Load berbagi dalam pembagian kerja, seperti semua prosesor yang memiliki jumlah yang sama untuk melakukannya.
·         Setiap processor dapat menjadwalkan dari ready queue umum (setara mesin) ATAU bisa menggunakan pengaturan budak master.

Dalam ilmu komputer, penjadwalan multiprosesor adalah masalah optimasi NP-Lengkap. Maka perumusan masalahnya adalah: Diberikan J set pekerjaan di mana ji pekerjaan telah li panjang dan jumlah prosesor mi, apa mungkin waktu minimum yang diperlukan untuk jadwal semua pekerjaan di J pada prosesor m sedemikian sehingga tidak ada tumpang tindih?” Aplikasi dari masalah ini sangat banyak, tetapi, seperti yang disarankan dengan nama masalah, paling kuat terkait dengan penjadwalan tugas komputasi dalam lingkungan multiprosesor.

E.     PENJADWALAN REAL-TIME

·         Hard real-time sistem yang dibutuhkan untuk menyelesaikan tugas yang kritis dalam jumlah dijamin waktu.
·         Soft real-time komputasi mensyaratkan bahwa proses yang kritis menerima prioritas di atas yang kurang beruntung.

Sebuah operasi real-time sistem (RTOS) adalah sebuah sistem operasi (OS) yang dimaksudkan untuk melayani permintaan aplikasi real-time.

Karakteristik kunci dari RTOS adalah tingkat konsistensinya tentang jumlah waktu yang diperlukan untuk menerima dan menyelesaikan tugas suatu aplikasi, variabilitas adalah jitter. Sebuah sistem real-time operasi yang sulit telah jitter kurang dari satu sistem operasi soft real-time. Tujuan utama desain bukan throughput yang tinggi, melainkan jaminan kategori kinerja lunak atau keras. Sebuah RTOS yang biasanya atau umumnya dapat memenuhi batas waktu adalah OS real-time lembut, tapi jika dapat memenuhi batas waktu deterministik itu adalah OS real-time keras.

A real-time OS memiliki algoritma lanjutan untuk penjadwalan. Penjadwal memungkinkan fleksibilitas orkestrasi, lebih luas komputer sistem prioritas proses, tetapi real-time OS lebih sering didedikasikan untuk satu set sempit aplikasi. Faktor kunci dalam OS real-time adalah latency interrupt, latency minimal dan benang minimal switching, tetapi real-time OS dinilai lebih untuk seberapa cepat atau seberapa kemampuannya dalam merespon  jumlah pekerjaan yang dilakukan dalam jangka waktu tertentu.

F.     PENJADWALAN THREAD

·         Lokal Penjadwalan Bagaimana perpustakaan benang yang memutuskan benang untuk menempatkan ke suatu LWP yang tersedia.
·         Global Penjadwalan Bagaimana kernel yang memutuskan untuk menjalankan kernel thread berikutnya
Threads dapat dijadwalkan, dan perpustakaan benang menyediakan beberapa fasilitas untuk menangani dan mengendalikan penjadwalan benang. Hal ini juga menyediakan fasilitas untuk mengontrol penjadwalan threads selama operasi sinkronisasi seperti mengunci sebuah mutex. Setiap thread telah menetapkan sendiri parameter penjadwalan. Parameter ini dapat diatur menggunakan atribut objek thread sebelum thread dibuat. Parameter juga dapat dinamis set selama eksekusi thread.

Mengontrol penjadwalan thread bisa menjadi tugas yang rumit. Karena  scheduler menangani semua benang systemwide, parameter penjadwalan dari thread berinteraksi dengan orang-orang dari semua thread lain dalam proses dan dalam proses lainnya. Fasilitas berikut ini adalah yang pertama digunakan jika Anda ingin mengontrol penjadwalan thread.

Perpustakaan thread memungkinkan programmer untuk mengontrol penjadwalan pelaksanaan thread dengan cara berikut:

·         Dengan menetapkan atribut penjadwalan saat membuat thread
·         Dengan dinamis mengubah penjadwalan atribut thread dibuat
·         Dengan mendefinisikan efek mutex pada penjadwalan thread ketika membuat mutex (dikenal sebagai penjadwalan sinkronisasi)
·         Dengan dinamis mengubah penjadwalan thread selama operasi sinkronisasi (dikenal sebagai penjadwalan sinkronisasi)

G.    CONTOH SISTEM OPERASI

Solaris scheduling

Proses Penjadwalan Solaris
Pada Solaris, prioritas tertinggi dijadwalkan pertama. Kernel thread informasi penjadwalan dapat diungkapkan dengan ps-elcL. Sebuah proses bisa ada di salah satu dari status berikut: berjalan, tidur atau siap. Kernel Threads Model Solaris 10 kernel threads model terdiri dari objek utama berikut:
·         Kernel thread: Ini adalah apa yang dijadwalkan / dijalankan pada prosesor
·         User benang: Benang user-level negara dalam proses.
·         Proses: Objek yang melacak lingkungan eksekusi dari sebuah program.
·         Proses (LWP) ringan: Eksekusi konteks untuk thread pengguna. Associates thread pengguna dengan kernel thread.
Pada Solaris 10 kernel, kernel layanan dan tugas dijalankan sebagai thread kernel. Ketika benang pengguna dibuat, LWP terkait dan inti thread juga dibuat dan terkait dengan thread pengguna.   
(Model tunggal tingkat pertama kali diperkenalkan pada Solaris 8’s perpustakaan benang alternatif, yang dibuat default di Solaris 9. Sebelum itu, benang pengguna harus mengikat ke LWP yang tersedia sebelum menjadi layak untuk berjalan di prosesor.)
Model Prioritas

Kernel Solaris sepenuhnya RTI. Ini berarti bahwa semua thread, termasuk thread yang mendukung kegiatan sendiri kernel, dapat ditangguhkan untuk memungkinkan thread-prioritas yang lebih tinggi untuk menjalankan.

Solaris mengakui 170 prioritas yang berbeda, 0-169. Dalam prioritas tersebut jatuh beberapa kelas penjadwalan yang berbeda:
·         TS (timeshare): Ini adalah kelas standar untuk proses dan kernel thread terkait. Prioritas dalam rentang kelas 0-59, dan disesuaikan secara dinamis dalam upaya untuk mengalokasikan sumber daya prosesor secara merata.
·         IA (interaktif): Ini adalah versi yang disempurnakan dari kelas TS yang berlaku untuk jendela di-fokus di GUI. Tujuannya adalah untuk memberikan sumber daya tambahan untuk proses terkait dengan jendela tertentu. Seperti TS, range IA adalah 0-59.
·         FSS (wajar-saham scheduler): Kelas ini adalah berbagi berbasis bukan prioritas berbasis. Threads dikelola oleh FSS dijadwalkan berdasarkan saham yang terkait dan penggunaan prosesor. FSS juga memiliki jangkauan 0-59.
·         FX (tetap prioritas): Prioritas untuk benang yang terkait dengan kelas ini adalah tetap. (Dengan kata lain, mereka tidak bervariasi secara dinamis selama masa pakai benang.) FX juga memiliki jangkauan 0-59.
·         SYS (sistem): Kelas SYS digunakan untuk jadwal thread kernel. Threads di kelas ini adalah “terikat” benang, yang berarti bahwa mereka berjalan sampai mereka blok atau lengkap. Prioritas untuk SYS benang berada di kisaran 60-99.
·         RT (real-time): Thread di kelas RT adalah tetap prioritas, dengan kuantum waktu tetap. Prioritas mereka berkisar 100-159, sehingga benang yang RT akan mendahului thread sistem.

Dari jumlah tersebut, FSS dan FX dilaksanakan di Solaris 9. (Pilihan ekstra-biaya untuk Solaris 8 termasuk SHR (saham-based) kelas, tetapi ini telah dimasukkan ke dalam FSS.)

Windows XP scheduling

H.    PENJADWALAN JAVA THREAD

Fitur:
   1. JVM menggunakan algoritma jadwal, penjadwalan preemptive berdasarkan prioritas.
   2. Semua thread Java mempunyai prioritas dan thread dengan prioritas tertinggi ia
       dijadwalkan untuk dijalankan oleh JVM.
3.      Dalam kasus dua thread memiliki prioritas yang sama FIFO sebuah pemesanan diikuti.
 Sebuah thread yang berbeda dipanggil untuk berjalan dalam satu kasus peristiwa berikut terjadi:
1.       sedang berjalan keluar thread yaitu negara Runnable baik balok atau berakhir.
2.       Sebuah thread dengan prioritas lebih tinggi daripada thread yang sedang berjalan memasuki negara Runnable. Benang prioritas yang lebih rendah adalah mendahului dan thread dengan prioritas tinggi dijadwalkan untuk berjalan.

Waktu Mengiris tergantung pada pelaksanaannya. Sebuah thread sukarela dapat menghasilkan kontrol melalui hasil () method. Setiap kali thread yeilds kontrol CPU thread lain dengan prioritas yang sama dijadwalkan untuk berjalan. Sebuah thread sukarela menghasilkan kontrol CPU disebut Koperasi Multitasking.
Thread Prioritas
JVM memilih untuk menjalankan thread Runnable dengan prioritas tertinggi.
Semua thread Java mempunyai prioritas dalam kisaran 1-10.
Prioritas utama adalah 10, prioritas terendah adalah 1.Normal yaitu prioritas. Prioritas secara default adalah 5.
Thread.MIN_PRIORITY – prioritas thread minimum
Thread.MAX_PRIORITY – prioritas thread maksimum
Thread.NORM_PRIORITY – prioritas thread maksimum
Setiap kali Java thread baru dibuat ia mempunyai prioritas yang sama seperti benang yang menciptakannya.Thread prioritas dapat diubah oleh setpriority () method. Java Berdasarkan Round-Robin Scheduler

I.       EVALUASI ALGORITMA


Bagaimana memilih algoritma penjadwalan untuk sistem tertentu? Masing-masing algoritma mempunyai parameter-parameter tersendiri. Pemilihan algoritma penjadwalan merupakan hal yang sulit. Persoalan pertama adalah mendefinisikan kriteria untuk pemilihan algoritma.
Kriteria-kriteria yang sering digunakan adalah fairness (keadilan), efisiensi, waktu tanggap, turn around time, dan throughput. Kriteria kemudian dapat menjadi :
·         Memaksimumkan utilisasi pemroses dengan konstrain waktu tanggap maksismum adalah 500 milidetik, atau
·         Memaksimumkan throughput bahwa turn around time adalah berbanding linear dengan waktu eksekusi total

Begitu kriteria pemilihan telah didefinisikan, kita dapat mengevaluasi beragam algoritma. Terdapat sejumlah metode evaluasi untuk melakukan hal ini, yaitu :
1.      Pemodelan deterministik
Pemodelan deterministik merupakan evaluasi analitis. Evaluasi analitis menggunakan algoritma dan beban kerja sistem untuk menghasilkan satu rumus atau angka yang menunjukkan kinerja algoritma untuk beban kerja itu. Pemodelan deterministik menggunakan suatu beban kerja tertentu yang telah ditentukan dan mendefinisikan kinerja algoritma untuk beban kerja itu.

2.      Pemodelan antrian
Sistem komputer dipandang sebagai satu jaringan pelayan (server). Masing-masing pelayan mempunyai satu antrian dari proses-proses yang menunggu layanan. Pemroses adalah satu pelayan dengan satu antrian proses yang siap menerima layanan, begitu juga perangkat I/O adalah antrian perangkat. Dengan mengetahui rate kedatangan dan rate layanan, maka kita dapat mengkomputasi utilisasi, panjang antrian rata-rata, waktu tunggu rata-rata dan sebagainya. Bidang studi ini adalah analisis jaringan antrian (queueing network analysis).

3.      Simulasi
Simulasi dapat memberikan evaluasi algoritma penjadwalan dengan lebih akurat. Simulasi melibatkan pemrograman model system komputer. Dengan simulasi akan diperoleh statistik yang menyatakan kinerja algoritma

4.      Implementasi
Simulasi pun hanya memberikan akurasi yang terbatas. Satu-satunya cara paling akurat dalam mengevaluasi algoritma penjadwalan adalah mengimplementasikannya, menjalankannya pada sistem nyata dan melihatnya bekerja. Pendekatan ini adalah menjalankan algoritma nyata di sistem nyata untuk keperluan evaluasi pada beban atau kondisi operasi yang nyata
Masing-masing cara evaluasi algoritma penjadwalan mempunyai kelebihan dan kelemahan



BAB II
PENUTUP

Kesimpulan

Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma yang digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come Firsrt Serve ( FCFS ), merupakan algoritma sederhana dimana proses yang datang duluan maka dia yang dieksekusi pertama kalinya. Algoritma lainnya adalah Sorthest Job First ( SJF ), yaitu penjadulan CPU dimana proses yang paling pendek dieksekusi terlebih dahulu. Kelemahan algoritma SJF adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma Round Robin ( RR ). Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan waktu tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu maka akan digantikan oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar sedang proses hanya membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu quantum kecil maka akan memakan waktu saat contect-swicth. Penjadwalan FCFS adalah nonpreemtive yaitu tidak dapat diinterupsi sebelum proses dieksekusi seluruhnya. Penjadwalan RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih dieksekusi. Sedangkan penjadwalan SJF dapat berupa nonpreemtive dan preemtive.




DAFTAR PUSTAKA

http://wandiso.blogspot.co.id/2011/04/penjadwalan-cpu.html
http://modulmakalah.blogspot.co.id/2015/11/pengertian-dan-tipe-penjadwalan-cpu.html
http://mahasiswa-masagitu.blogspot.co.id/2014/11/penjadwalan-cpu-pada-sistem-operasi.html

http://arminlawi.my-php.net/s1-pso/D42109254.docx

Tidak ada komentar:

Posting Komentar