Senin, 09 April 2018

Makalah Penjadwal Proses

KATA PENGANTAR


Puji syukur kehadirat Tuhan Yang Maha Kuasa atas segala limpahan Rahmat, Inayah, Taufik dan Hinayahnya sehingga saya dapat menyelesaikan penyusunan makalah ini dalam bentuk maupun isinya yang sangat sederhana. Semoga makalah ini dapat dipergunakan sebagai salah satu acuan, petunjuk maupun pedoman bagi pembaca .
Harapan saya semoga makalah ini membantu menambah pengetahuan dan pengalaman bagi para pembaca, sehingga saya dapat memperbaiki bentuk maupun isi makalah ini sehingga kedepannya dapat lebih baik.
Makalah ini saya akui masih banyak kekurangan karena pengalaman yang saya miliki sangat kurang. Oleh kerena itu saya harapkan kepada para pembaca untuk memberikan masukan-masukan yang bersifat membangun untuk kesempurnaan makalah ini.


         
                                                                                      Penulis



















BAB I
PENDAHULUAN


          
A.     LATAR BELAKANG MASALAH

Penjadwalan merupakan konsep utama dalam multitasking,sistem operasi multi prosesor dan sistem operasi real-time Penjadwalan adalah cara atau metode berbagai proses dilaksanakan pada CPU, dimana biasanya terdapat lebih banyak proses yang dijalankan daripada jumlah CPU yang tersedia. Hal ini diatur oleh software scheduler dan dispatchare.

Tujuan dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk mengganti CPU dantara proses-proses yang begitu sering sehingga user dapat berinteraksi dengan setap program sambil CPU bekerja.

Untuk sistem unipprosesor,tidak akan ada lebih dari satu proses berjalan.
Jika ada proses yang lebih dari itu, yang lainnya akan harus menunggu sampai CPU bebas dan dapat dijadwalkan kembali.


B.     TUJUAN PERMASALAHAN

Setelah mempelajari materi dalam bab ini, pembaca diharapkan mampu
1. Memahami tentang konsep dasar penjadwalan CPU
2. Memahami kriteria yang diperlukan untuk penjadwalan CPU
3. Memahami beberapa algoritma penjadwlan CPU yang terdiri atas algoritma First Shortest    JOB first. Priority dan Round Robin

















BAB II
PEMBAHASAN



Macam – macam Penjadwalan Proses
a)      FCFS
Algoritma ini adalah algoritma yang paling sederhana. Prinsip dari algoritma ini adalah seperti prinsip antrian (antrian tak berprioritas), halaman yang masuk lebih dulu maka akan keluar lebih dulu juga. Ketentuan dari penjadwalan FCFS adalah:
Proses-proses diberi jatah waktu pemroses, diurut dengan waktu kedatangannya.
Begitu proses mendapat jatah waktu pemproses, proses dijalankan sampai proses tersebut selesai, walaupun ada proses lain yang datang, proses tersebut berada dalam antrian sistem atau disebut dengan ready queue.
Pada dasarnya algoritma penjadwalan ini cukup adil dalam hal bahasa, karena proses yang datang lebih dulu dikerjakan terlebih dahulu. Dari segi konsep sistem operasi, penjadwalan model ini tidak adil karena proses-proses yang membutuhkan waktu yang lama membuat proses-proses yang memiliki waktu proses yang lebih pendek menunggu sampai proses yang lama tersebut selesai, sedangkan proses-proses yang tidak penting membuat proses penting menunggu.
Penjadwalan FCFS cocok digunakan untuk sistem batch yang sangat jarang melakukan interaksi dengan user secara langsung, tapi tidak cocok digunakan untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus, begitu juga dengan waktu sistem nyata.
Kelebihan :
Algoritma yang paling sederhana, dengan skema proses yang meminta CPU mendapat prioritas.
Kelemahan :
Terjadi convoy effect dimana seandainya ada sebuah proses yang kecil tetapi mengantri dengan proses yang membutuhkan waktu yang lama mengakibatkan proses tersebut akan lama juga untuk dieksekusi.

Contoh Kasus : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg72KktF7U-eBeZTLXjSQM0nu2ZyK7vJpU3L5EDV6sfMCrdg4un1NEw1-k9S75Xt-L6XJKk2il-Rjr4j66bkOdrPKGM08_D4rbhXwwNcsg8UEVgRrjzj8cgxq9ckdvbbJ2rp56s8xGm-pEe/s1600/pp1.jpg


Burst Time = 3+5+2+4=14
Diagram Grant =
pada diagram ini, arrival timenya yang paling kecil dahulu lah yang dikerjakan. jadi urutannya adalah 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicVVZsF35FpYaDyBqQB7nqHmaWWkMq0vR3gNOnaa7US7QYziP40UL7GvQhjhsmoJAutXjfHOVwFTPerOZW-HchmgYIg3HZevywjcEcM9aL6NTGXtRonRr6lwoUXtaFQwnNiSkOZ_ARrIMS/s320/pp2.jpg


   P1   P2    P4  P3
|----|------|----|--|
0    3      8    12 14
Average Waiting Time = 12/4=3 

b)     SJF
Algoritma penjadwalan Shortest Job First (SJF) merupakan proses penjadwalan yang ada di ready queue dan akan dieksekusi berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk setiap proses. Karena hal tersebut, maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.
SJF memiliki 2 sifat :
·         non-preemptive (tidak dapat diinterupt), pemilihan proses adalah proses dalam antrian yang memiliki waktu eksekusi tercepat. 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.
·         preemptive (dapat diinterupsi), proses yang dipilih adalah proses yang memiliki waktu sisa eksekusi terkecil. Teknik ini juga dikenal dengan nama Shortest Remaining Time First.

Contoh Jika ada proses P1 yang datang pada saat P0 sedang berjalan lalu akan dilihat CPU burst P1 apabila :
·         Preemptive, Jika CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan oleh P0 maka CPU ganti dialokasikan untuk P1.
·         Non-Preemptive, Akan tetap menyelesaikan P0 sampai habis CPU burst-nya.

Preemptive Shortest Job First (PSJF) disebut juga sebagai Shortest Remaining Time First. PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi. Prioritas didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi prioritasnya. Selanjutnya dengan ketentuan ini, ketika tiba, proses terpendek di bagian belakang antrian tidak saja berpindah ke bagian depan antrian, melainkan juga melalui preempsi, mengeluarkan proses yang pada saat itu berada di dalam proses (jika ada). Pada PSJF, jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst timeyang 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. Beberapa istilah yang akan sering muncul :
·         Process : Urutan proses yang akan dilakukan
·         Arrival Time : Waktu kedatangan dari proses yang akan dilakukan
·         Average Turn Around Time : Rata-rata waktu total yg dibutuhkan sebuah proses dari datang sampai selesai dieksekusi oleh CPU
·         Burst Time : Waktu yg dibutuhkan untuk mengeksekusi sebuah proses
·                     Average Waiting Time : Rata-rata waktu yang dihabiskan proses selama berada pada status ready ( menunggu eksekusi CPU )
Misalnya ada 2 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms dan burst time 10 ms, P2 dengan arrival time pada 2.0 ms dan burst time 2 ms.
Process
Arrival Time
Burst Time
P1
0.0
10
P2
2.0
2

Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuew6ZMrf4pQ1lVv_GUZMWV1byqY6NVCN4xyW1Pv6tD7ioKs8_9w4eL7ubnBuRwgYzxuvh-JjwbR1WGyB4HKHMkDr9CqIHxkRjfov0a0aCjQt6ph76PJB17gv4sG0B8Tk-kTmEAw4f-vRw/s400/pp3.jpg


waiting time PSJF nya :
P1 = 0 + ( 4 ms – 2 ms ) = 2 ms
P2 = 0
Average waiting time : (2 ms + 0 ms ) / 2 = 2 ms
Average turn around : (12 ms + 0 ) / 2 = 12 ms










Tabel Solusi
Process
Arrival Time
Burst Time
Waktu Mulai
Waktu selesai
Waiting Time
Turn Around
P1
0
10
0
12
2
12
P2
2
2
0
4
0
0
Average
2
12

c)      RoundRobin
Merupakan salah satu algoritma penjadwalan yang paling sederhana untuk  proses dalam sistem operasi, dimana quantum time diberi untuk setiap proses pada porsi yang sama dan dalam urutan melingkar, menjalankan semua proses tanpa prioritas.
·         Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar quantum time. Jika quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya sesuai antrian.
·         Quantum time menentukan berapa lama suatu proses berjalan sebelum diganti oleh proses lain.
·         Penjadwalan proses dengan algoritma round robin ini bukan diinterupsi oleh proses lain, melainkan diinterupsi oleh quantum time (preempt by time).
·         Dapat dikatakan semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.
·         Jika proses memiliki burst time < quantum time, maka proses akan melepaskan CPU dan jika telah selesai digunakan, CPU dapat segera digunakan oleh proses selanjutnya.
·         Jika proses memiliki burst time > quantum time, jika sudah mencapai quantum time, proses ditunda dan ditambahkan pada ready queue. CPU kemudian menjalankan proses berikutnya.
Kelebihan algoritma Round Robin :
1.      Dapat menghindari ketidakadilan layan terhadap proses kecil seperti yang terjadi pada FCFS
2.      Response time lebih cepat untuk proses berukuran kecil.
3.      Overheat kecil, jika ukuran proses rata – rata lebih kecil disbanding ukuran quantum.
Kekurangan :
1.      Performa lebih buruk dibanding FCFS jika ukuran quantum time lebih besar daripada ukuran proses terbesar.
2.      Dapat terjadi overheat berlebihan jika ukuran quantum time terlalu kecil.


Contoh Soal :
Diketahui quantum time 3 ms
Proses
Burst Time (ms)
Arriving Time (ms)
P1
0
8
P2
3
5
P3
5
2
P4
6
6

Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGf2fXVUFVd-eYApqyrzwteGFz-q9Qt3VKeukJ2RYjxyicXtnub0RMmxEeGsSflru5NNtaav4H6amROE0F0F6_JNu9_MumPap0FZgmg9spvF1UuS3rGVhpwQRUe3hMh8J9jbmOGSUXCQa1/s320/pp5.jpg

Description: https://2.bp.blogspot.com/-OOy8r2aSWFs/V4rH72cnlyI/AAAAAAAAACc/Tjf66yq1tsY7KHVLGH9ZqlN-zNAN-7kbQCEw/s1600/pp6.jpg


Jadi, rata – rata waktu yang dibutuhkan pada metode Penjadwalan Round Robin dengan quantum time = 3 adalah 7,25ms.

d)      PriorityScheduling
Pada priority scheduling kita akan membahas penjadwalan dalam kasus prioritas tinggi dan prioritas rendah. Prioritas diindikasikan dalam beberapa bilangan yang telah ditentukan, misalnya dari 0 ke 7, atau dari 0 ke 4,095. Tidak ada ketentuan jika bilangan terkecil memiliki prioritas yang lebih rendah atau lebih tinggi. Hal ini sering menimbulkan kerancuan. Dalam kasus ini, kita asumsikan bilangan yang lebih kecil menandakan prioritas yang lebih tinggi.
Misalnya kita mempunyai sekumpulan proses, sebut saja P1, P2,…, P5 yang tiba dalam waktu ke-0, dengan burst time sebagai berikut (dalam miliseconds):







Proses
Burst Time
Prioritas
P1
10
3
P2
1
1
P3
2
4
P4
1
5
P4
5
2

Prioritas dapat didefinisikan secara internal maupun eksternal. Secara internal, prioritas didefinisikan dengan beberapa kuantitas besaran atau kuantitas untuk menghitung prioritas suatu proses, antara lain sebagai berikut.
1.      Time limits (batas waktu).
2.      Memory requirements (kebutuhan akan memori).
3.      The number of open files (jumlah file yang dibuka).
4.      The ratio of average I/O burst to average CPU burst have been used in computing priorities (rasio dari rata-rata I/O burst ke rata-rata CPU burst).
Secara eksternal, prioritas ditentukan oleh hal-hal di luar sistem operasi, seperti:
1.      Tingkat kepentingkan dari proses itu sendiri.
2.      Jenis dan jumlah dana yang dibayarkan untuk penggunaan komputer tersebut.
3.      Departemen yang mensposori tugas tersebut.
4.      Faktor politik.
Priority scheduling bisa jadi preemptive atau nonpreemtive. Ketika sebuah proses tiba di ready queue, prioritas proses tersebut dibandingkan dengan prioritas proses yang sedang berjalan.
1.      Preemtive priority: menghentikan CPU jika prioritas dari proses yang tiba mempunyai prioritas yang lebih tinggi dari proses yang sedang berjalan.
2.      Nonpreemtive priority: menempatkan proses yang baru tiba di depan ready queue atau tidak dapat mengambil alih proses yang sedang berjalan.
Masalah utama dari priority scheduling ini adalah indefinite block atau stravation. Sebuah proses yang telah siap berjalan namun masih menunggu CPU bisa dianggap telah diblok. Priority scheduling dapat menyebabkan proses yang memiliki prioritas rendah menunggu CPU dalam waktu yang sangat lama. Sebuah proses yang memiliki proritas tinggi dapat mencegah proses prioritas rendah untuk dieksekusi CPU. Secara umum, dalam kasus tersebut proses prioritas rendah dapat berjalan ketika beban kerja CPU sudah berkurang, atau bisa jadi sistem komputer akan kehilangan semua proses prioritas rendah yang belum sempat dieksekusi.
Solusi dari permasalahan ini adalah dengan menggunakan aging. Aging adalah sebuah teknik untuk meningkatkan secara bertahap prioritas proses yang telah lama menunggu. Misalnya, jika prioritasnya berada pada range 127 (rendah) ke 0 (tinggi), kita dapat meningkatkan prioritasnya sedikit demi sedikit setiap rentang waktu tertentu. Misalnya prioritasnya ditingkatkan 1 setiap 15 menit sekali. Dengan cara ini, proses yang memiliki prioritas 127 pun dapat memiliki prioritas 0, hingga akhirnya mendapat giliran dieksekusi.



































BAB III
PENUTUP


Kesimpulan
            Dari penjelasan diatas, dapat ditarik kesimpulan bahwa :

Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di system operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Adapun macam – macam penjadwalan proses yaitu : First Come First Served, Shortest Job First, Round Robin, dan Priority Scheduling.








Tidak ada komentar:

Posting Komentar