Penjadwalan Proses

Assalamualaikum genggss!
Balik lagi nih di blog gue. sesuai judulnya kali ini kita bakal bahas tentang Penjadwalan Proses. hah? apaan?
Iyaa, jadi yang namanya proses dalam sistem operasi itu ada jadwalnya. ga mungkin kan dalam ngerjain proses terhadap suatu hal gaada jadwalnya. okeh yok langsung bahas!
.
.
.
~PENJADWALAN PROSES~



Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.

Ø  Sistem operasi modern umunya merupakan sistem multitasking
Ø  Pemanfaatan CPU maksimum diperoleh dengan multiprogramming
Ø  CPU I/O Burst Cycle-Pelaksanaan proses terdiri dari suatu siklus tunggu I/O dan eksekusi CPU

Adapun penjadwalan bertugas memutuskan :
a.   Proses yang harus berjalan
b.   Kapan dan seberapa lama proses itu berjalan
Tujuan utama penjadwalan adalah untuk mempunyai proses berjalan secara bersamaan, untuk memaksimalkan kerja CPU
Tujuan Penjadwalan Proses:
Ø  Supaya semua pekerjaan memperoleh pelayanan yang adil (fairness)
Ø  Supaya pemakaian prosesor dapat dimaksimumkan
Ø  Supaya waktu tanggap dapat diminimumkan, berupa waktu tanggap nyata dan waktu tanggap maya
Ø  Supaya pemakaian sumber daya seimbang
Ø  Turn arround time, waktu sejak program masuk ke sistem sampai proses selesai.
Ø  Efesien, proses tetap dalam keadaan sibuk tidak menganggur.
Ø  Supaya terobosan (thoughput) dapat dimaksimumkan

Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
a.   Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.
b.   Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
c.   Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
1)   Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.
2)   Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.
d.   Turn Around Time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.
e.   Throughput
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.
Kriteria-kriteria tersebut saling bergantung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan.
Contoh : untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih ke antara proses-proses itu. Cara ini meningkatkan overhead sistem dan mengurangi throughput. Oleh karena itu dalam menentukan kebijaksanaan perancangan penjadwalan sebaiknya melibatkan kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.
Sasaran penjadwalan berdasarkan kriteria-kriteria optimasi tersebut :
1.   Menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
2.   Menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi mencapai maksimum. Pengertian sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi.
3.   Meminimalkan waktu tanggap.
4.   Meminimalkan turn arround time.
5.   Memaksimalkan jumlah job yang diproses persatu interval waktu. Lebih besar angka throughput, lebih banyak kerja yang dilakukan sistem.


Tipe-Tipe Penjadwalan




Terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks, yaitu:
1.   Penjadwal jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori utama. Penjadwalan dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan.
2.   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 it sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.
3.   Penjadwal jangka panjang (long term scheduller)
Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.
Sasaran penjadwalan berdasarkan tipe-tipe penjadwalan :
1.   Memaksimumkan kinerja untuk memenuhi satu kumpulan kriteria yang diharapkan.
2.   Mengendalikan transisi dari suspended to ready (keadaan suspend ke ready) dari proses-proses swapping.
3.   Memberi keseimbangan job-job campuran.

Konsep Penjadwalan Proses
1.   Antrian
Sejumlah proses yang menunggu menggunakan prosesor dan akan diproses sesuai dengan urutan antrian proses. Proses berada dalam memori utama
2.   Prioritas
Mendahului pada antrian proses, jika proses berada di bagian belakang antrian, maka dengan pemberian prioritas, proses itu langsung berada di bagian paling depan pada antrian itu sambil menunggu sampai kerja prosesor selesai.
3.   Prempsi
Mendahului pada antrian proses, jika proses berada di bagian belakang antrian, maka dengan pemberian prempsi, proses itu langsung berada di bagian paling depan pada antrian itu bahkan akan memberhentikan kerja prosessor untuk mengerjakan proses yang prempsi tersebut.

Perhitungan pada Kerja Proses
1.   Lama Proses (t)
Adalah lama waktu yang diperlukan untuk mengolah proses itu didalam prosesor.
2.   Lama Tanggap (T)
Adalah waktu yang diperlukan untuk proses sejak mulai sampai selesai diolah oleh prosesor. Terdapat 2 macam lama tanggap:
a.   Turn around time, dengan memperhitungkan lama waktu yang digunakan untuk sebuah proses hingga keluaran.
b.   Respone Time, tidak memperhitungkan lama waktu yang digunakan untuk sebuah proses hingga keluaran.

Teknik Penjadwalan Prosesor
1.   Kategori penjadwalan prosesor
a.   Tanpa prioritas tanpa prempsi
b.   Dengan prioritas tanpa prempsi
c.   Tanpa prioritas dengan prempsi
d.   Dengan prioritas dengan prempsi
2.   Teknik penjadwalan prosesor
a.   Pejadwalan satu tingkat atau disebut juga Penjadwalan Non-preemptive (run to completion)
Begitu proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
b.   Penjadwalan multi tingkat atau disebut juga Penjadwalan preemptive
Proses diberi jatah waktu oleh 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. Berguna pada sistem dimana proses-proses yang mendapat perhatian/tanggapan pemroses secara cepat.

Rumus Penjadwalan
Jika terdapat N proses serentak, serta setiap proses memiliki lama tanggap sebesar T, maka rerata lama tanggap Tr adalah :
o   Tr = (jumlah Ti) / N
o   Waktu sia-sia (T – t), waktu yang terbuang dalam antrian atau selama terkena Prempsi.
o   Rasio tanggap (Rt), Perbandingan di antara lama proses terhadap lama tanggap
Rt = t/T
o   Rasio pinalti (Rp), Perbandingan diantara lama tanggap terhadap lama proses.
                Rp = T/t




~ALGORITMA PENJADWALAN PROSES~
Algoritma Non-Preemptive
Non-preemptive algoritma didesain agar setelah proses yang sedang berjalan memasuki negara (adalah proses diperbolehkan), tidak dihapus dari prosesor sampai selesai dengan waktu layanan (secara eksplisit atau hasil prosesor).


1.   Algoritma PTPD (Pertama Tiba Pertama Dilayani) / FIFO (First-In, First-Out) / FCFS (First-Come, First-Serve)
Penjadwalan tanpa prioritas tanpa prempsi, proses yang tiba lebih dahulu akan dilayani lebih dahulu, jika tiba pada waktu yang bersamaan akan dilayani sesuai dengan urutan pada antrian. Merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU.

Jika ada proses tiba pada waktu yang sama, maka pelayanan mereka dilaksanakan berdasarkan urutan dalam antrian. Proses di antrian belakang harus menunggu sampai semua proses di depannya selesai. Setiap proses diberi jadwal eksekusi berdasarkan urutan waktu kedatangan.
FIFO jarang digunakan secara tersendiri tetapi dikombinasikan dengan algoritma lain karena:
§  Timbul masalah “waiting time” terlalu lama jika didahului oleh proses yang waktu selesainya lama.
§  Job yang pendek harus menunggu job yang panjang
§  Job yang penting harus menunggu job yang kurang penting.

Berdasarkan kriterian penilaian optimasi:
a.   Fairness > dinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting menunggu lama.
b.   Efisiensi > Sangat efisien
c.   Waktu tanggap > Penjadwalan sangat tidak memuaskan, karena proses dapat menunggu lama
d.   Turn Arround Time > Tidak bagus
e.   Throughput > Tidak bagus

Penjadwalan ini :
a.   Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai. Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
b.   Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
c.   Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

Contoh:
Jika diketahui terdapat 4 macam antrian proses, yaitu A-B-C-D dengan waktu kedatangan 0-3-5-7. Lama proses berturut-turut antara lain: 7-3-4-8.
Pertanyaan :
Kapan dimulainya eksekusi dari tiap-tiap antrian proses tersebut?
Kapan selesai eksekusinya?
Hitung Turn Arround Time (TA)-nya?
Berapa rata-rata TA?
Rumus :
TA = Waktu Tunggu + Lama Eksekusi
Rata-rata TA = ΣTA / ΣJob
Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
Selesai Eksekusi = Mulai Eksekusi + Lama Eksekusi
Jawaban:


1.   Algoritma PTD (Proses Terpendek Diutamakan) / SJF (Shortest Job First) / SJN (Shortest Job Next)

Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.
*Burst time : asumsi berapa lama sebuah proses membutuhkan CPU diantara proses menunggunya I/O.

·         Kelebihan : Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif
·        Kekurangan : Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak dating bersamaan, sehingga penetapannya harus dinamis.

Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Untuk menghitung rata-rata turn around time seluruh proses adalah dengan menggunakan rumus :
( 4a + 3b + 2c + 1d ) / 4
Dengan menggunakan rumus, maka dapat dihitung turn around time-nya sebagai berikut:
= ( 4a + 3b + 2c + 1d ) / 4
= ( 4x8 + 3x4 + 2x4 + 1x4 ) / 4
= ( 32 + 12 + 8 + 4 ) / 4
= 56 / 4
= 14 menit
Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20, sehingga rata-rata turn around timenya adalah sebagai berikut :
= ( 4a + 3b + 2c + 1d ) / 4
= ( 4x4 + 3x4 + 2x4 + 1x8 ) / 4
= ( 16 + 12 + 8 + 8 ) / 4
= 44 / 4
= 11 menit


Jelas bahwa a memberikan nilai kontribusi yang besar, kemudian b, c dan d. Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya.


1.   PTDP (Penjadwalan Proses Terpendek Dipertamakan Prempsi) / PSPN (Preemptive Shortest Process Next) / Shortest Remaining Time (SRT) / PSJF (Preemptive Shortest Job First)
Penjadwalan dengan prioritas dengan prempsi, yang menjadi pioritas adalah  sisa proses. Proses yang terpendek bisa didahulukan dengan cara membandingkan sisa waktu proses yang sedang dilaksanakan dengan proses yang tiba, dengan  preempsi mengeluarkan proses yang sedang diolah untuk melaksanakan proses yang lebih pendek / singkat.
Beberapa ketentuan :
– Prioritas berdasarkan pendeknya sisa proses
– Diperhatikan saat proses tiba atau saat proses selesai
– Menghitung lama sisa proses dari semua proses yang ada
– Jika proses dengan sisa proses yang lebih pendek dari proses yang sedang dikerjakan, maka atas dasar prempsi proses yang sedang dikerjakan akan dikeluarkan dari prosesor.

Contoh :

§  Pada saat 0, proses A dikerjakan karena A datang pertama
§  Pada saat 2, B datang. B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan.
§  Pada saat 4, C datang. C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan.
§  Pada saat 5, D datang. D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena tidak ada proses yang datang lagi.
§  A<C maka A dikerjakan.
§  C dikerjakan
§  Selesai.


1.   HPRN (Highest Penalti Ratio Next) / RPTD (Rasio Penalti Tertinggi Dipertamakan)
Merupakan strategi penjadwalan dengan prioritas proses tidak hanya berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemproses, proses berjalan sampai selesai.Penjadwalan HRN merupakan penjadwalan berprioritas dinamis.

Yang menjadi prioritas adalah besarnya rasio pinalti. Tetap mendahulukan proses pendek ditambah dengan mempertimbangkan rasio penaltinya, yang ditentukan berdasarkan lama waktu antriannya. Sehingga prioritas proses panjang akan turut meningkat melalui peningkatan rasio pinalti, sehingga pada suatu saat proses panjang pada antrian yang telah lama menunggu akan menyusul proses pendek.

Penjadwalan ini juga untuk mengkoreksi kelemahan SJF. HRN adalah strategi penjadwalan nonpreemptive dengan prioritas proses tidak hanya merupakan fungsi dari waktu layanan tapi juga jumlah waktu tunggu proses.

Dasar prioritas adalah besarnya nilai ratio pinalti.
Rumus ratio pinalti = Rp = ( s + t ) / t
s = waktu sia-sia (Saat selesai –Saat tiba)
t = lama proses
Tetap mendahulukan proses terpendek, namun prioritas proses panjang akan turut meningkat melalui peningkatan ratio pinaltinya.

Contoh:



Algoritma Preemptive
Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi.

Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses.

Membuat penjadwalan yang Preemptive mempunyai keuntungan yaitu sistem lebih responsif daripada sistem yang memakai penjadwalan NonPreemptive.

Penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi selanjutnya.

1.   Algoritma Round Robin (RR) / Putar Gelang (PR)
Penjadwalan Round Robin merupakan :
a.   Penjadwalan Preemptive, namun proses tidak di-preempt secara langsung oleh proses lain, namun oleh penjadwal berdasarkan lama waktu berjalannya suatu proses. Maka penjadwalan ini disebut preempt-by-time.
b.   Penjadwalan tanpa prioritasAlgoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.

Penjadwalan ini tanpa prioritas, dengan preempsi. Secara bergiliran berdasarkan antrian (tanpa prioritas) prosesor melayani sejenak setiap proses tergantung besarnya quantum waktu. Secara berturut-turut proses yang dilayani prosesor dan belum rampung akan kembali ke akhir antrian yang ada, sehingga pergiliran ini berputar seperti gelang. Dan hanya proses yang telah rampung terlayani yang meninggalkan prosesor dan antrian tersebut. Jadi setiap proses dilayani selama quantum waktu tertentu secara bergiliran.

Quantum waktu : waktu sejenak yang digunakan oleh prosesor untuk melayani setiap proses. Perubahan quantum waktu membedakan hasil layanan terhadap antrian yang sama.
Prosesor akan melayani setiap proses berdasarkan antrian.
Prosesor akan melayani sesuai dengan Kuantum Waktu yang sudah ditentukan.

Algoritma yang digunakan :
a.   Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.
b.   Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
c.   Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain. Diimplementasikan dengan :
1)   Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
2)   Ambil proses yang berada di ujung depan antrian menjadi running.
3)   Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.
4)   Jika kwanta habis dan proses belum selesai, maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.

Masalah yang timbul adalah menentukan besar kwanta, yaitu :
a.   Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
b.   Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi proses.

Penjadwalan ini:
a.   Baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian eksternal. Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga dapat dijalankan proses-proses lain.
b.   Tidak cocok untuk sistem waktu nyata apalagi hard-real-time applications.

Contoh :
Q=3


.
.
.
Widii agak banyak yaa materi nya. hehee tapi bawa seru aja ya guys. okedee sekian dulu untuk materi kali in. Thank you yaa~

Komentar

Postingan populer dari blog ini

Model OSI

Manajemen File & Direktori