Penjadwalan Proses

Standar

2.3      Penjadwalan Proses

2.3.1    Deskripsi  Penjadwalan Proses

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

Penjadwalan bertugas memutuskan hal-hal berikut:

  • Proses yang harus berjalan
  • Kapan dan selama berapa lama proses berjalan

Sasaran utama penjadwalan proses adalah optimasi kinerja sistem computer menurut kriteria tertentu.

Kriteria untuk mengukur dan optimasi kinerja penjadwalan:

  • Adil (Fairness)

Adil adalah proses-proses diperlakukan sama yaitu mendapat jatah waktu layanan pemroses yang sama dan tidak ada proses yang tidak kebagian layanan pemroses sehingga mengalami startvation. Starvation adalah kondisi bahwa proses tidak pernah berjalan karena tidak dijadwalkan untuk berjalan.

Sasaran penjadwalan seharusnya menjamin setiap proses mendapat pelayanan dari pemroses secara adil.

  • Efisiensi

Efisiensi atau utilisasi pemroses yang dihitung dengan perbandingan (rasio) waktu sibuk pemroses dengan total waktu operasi system computer secara keseluruhan.

Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi system computer mencapai nilai maksimum. Keadaan sibuk berarti pemroses tidak menganggur. Layanan pemroses termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan layanan system operasi secara efektif, bukan melakukan penjadwalan itu sendiri.

  • Waktu Tanggap (Response Time)

Waktu tanggap berbeda untuk:

  • System interaktif
  • System waktu nyata

Waktu tanggap pada system interaktif

Waktu tanggap dalam system interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah oleh program atau transaksi sampai hasil pertama muncul di perangkat masukan keluaran seperti layar (terminal).

Waktu tanggap untuk system interaktif biasa disebut terminal response time.

Waktu tanggap untuk system waktu nyata

Pada system waktu nyata (real-time), waktu tanggap didefinisikan sebagai waktu dari saat kemunculan suatu kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan terhadap kejadian dieksekusi.

Waktu untuk system nyata biasa disebut event response time. Sasaran penjadwalan adalah meminimalkan waktu tanggap sehingga menghasilkan system yang reponsif.

  • Turn Arround Time

Turn Arround time adalah waktu yang dihabiskan dari saat proses atau job mulai masuk ke system sampai proses itu diselesaikan system. Waktu yang dimaksud adalah waktu yang dihabiskan proses berada di system, diekspresikan sebagai penjumlahan waktu eksekusi (waktu pelayanan proses/job) dan waktu  menunggu dari proses itu, yaitu:

Turn Arround time = waktu eksekusi + waktu menunggu

Sasaran penjadwalan adalah menimbulkan turn arround time

  • Throughput

Throughput adalah jumlah kerja yang dapat diselesaikan selama satu selang/unit waktu. Cara untuk mengekspresikan troughput adalah dengan jumlah proses/job pemakai yang dapat dieksekusi dalam satu unit/interval waktu tertentu.

Sasaran penjadwalan adalah memaksimalkan jumlah job/proses yang dilayani per satu interval waktu. Lebih tinggi angka troughput maka lebih banyak kerja yang dilakukan system.

2.3.2      Strategi Penjadwalan

Terdapat dua stategi penjadwalan, yaitu:

  1. Penjadwalan Nonpreemptive

Begitu proses diberi jatah layanan pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai. Nonpreemptive juga disebut run-to-completion karena proses yang telah dijadwalkan akan dijalankan sampai selesainya atau proses tersebut meminta layanan masukan/keluaran.

Contoh algoritma-algoritma yang menerapkan strategi nonpreemptive di antaranya:

FIFO (First-in, First-out) atau FCFS (First-come, First-serve)

Penjadwalan FIFO ini merupakan penjadwalan tidak berprioritas, dan penjadwalan dengan ketentuan-ketentuan paling sederhana, yaitu:

  • Proses-proses diberi  jatah waktu pemroses diurutkan berdasarkan waktu kedatangan proses-proses itu ke system.
  • Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantic/arti antrian, yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.

FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain, misalnya:  Keputusan berdasarkan prioritas proses, sedangkan untuk proses-proses berprioritas sama diputuskan berdasarkan FIFO.

Kelebihan FIFO

  1. Dalam kriteria efisiensi, penjadwalan FIFO sangat efisien dalam penggunaan proses.
  2. Algoritmanya cukup sederhana

Kelemahan FIFO

  1. Dalam kriteria adil, penjadwalan FIFO adil dalam arti resmi (dalam semantic/arti antrian) yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.
  2. Penjadwalan sangat tidak memuaskan karena proses menunggu lama, aktu tanggapnya sangat jelek. Tidak cocok untuk sistem interaktif.
  3. Turn around time tidak bagus.
  4. Throughtput tidak bagus.
  5. Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

SJF (Shortest Job First)

Penjadwalan SJF ini merupakan penjadwalan yang dapat dikatakan sebagai berprioritas. Di SJF, prioritas diasosiasikan dengan masing-masing proses  dan pemroses dialokasikan ke proses dengan prioritas tertinggi. Proses-proses dengan prioritas yang sama akan dijadwalkan secara  FIFO.

Penjadwalan ini mengasumsikan waktu jalan proses (sampai selesai) atau waktu lamanya proses diketahui sebelumnya. Mekanisme penjadwalan SJF adalah lebih dulu menjadwalkan proses dengan waktu jalan terpendek sampai selesai. Setelah proses itu selesai, maka proses dengan waktu jalan terpendek berikutnya akan dijadwalkan, demikian seterusnya.

Keunggulan penjadwalan SJF ini adalah mempunyai efisien tinggi dan turn around time rendah. Selain itu, 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.

Contoh SJF:

Terdapat empat proses A,B,C,D dengan waktu jalan selama 8,7,6,5 kwanta

Cara I Proses-proses dijadwalkan berurutan sebagai A, B, C, D

Cara II Proses-proses yang dijadwalkan secara SJF yaitu berurutan D, C, B, A

Kedua cara menghasilkan turn arround time yang ditunjukkan pada gambar diatas. Cara I turn arround time rata-rata adalah 17,5 kwanta sedangakan dengan cara II (SJF) adalah 15 kwanta.

  1. Penjadwalan Preemptive

Saat proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih proses lain yang mempunyai prioritas lebih tinggi berdasarkan criteria system itu. Pada penjadwalan preemptive, proses dapat disela oleh proses lain sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu. Proses yang disela berubah menjadi state ready.

Penjadwalan preemptive berguna pada sistem yaitu proses-proses yang perlu mendapat perhatian/tanggapan pemroses secara cepat, misalnya :

a. Pada sistem realtime, kehilangan interupsi (yaitu interupsi tidak segera dilayani) dapat berakibat fatal.

b. Pada system-sistem interaktif timesharing, penjadwalan preemptive  agar dapat menjamin waktu tanggap yang memadai.

c.   Penjadwalan secara preemptive baik tetapi harus dibayar mahal.

Algoritma yang menerapkan strategi nonpreemptive diantaranya adalah:

a)      Penjadwalan  Round Robin (RR)

Round Robin (RR) merupakan :

  • Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya  dan mudah diimplementasikan.
  • Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time).
  • Penjadwalan tanpa prioritas.
  • Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.

Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain. Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.

Algoritma yang digunakan :

1)      Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.

2)      Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.

3)      Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.

Diimplementasikan dengan :

  • Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
  • Ambil proses yang berada di ujung depan antrian menjadi running.
  • Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.
  • 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 :

  • Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
  • Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi proses.

Switching dari satu proses ke proses lain membutuhkan kepastian waktu yang digunakan untuk administrasi, menyimpan, memanggil nilai-nilai register, pemetaan memori, memperbaiki tabel proses dan senarai dan sebagainya. Mungkin proses switch ini atau konteks switch membutuhkan waktu 5 msec disamping waktu pemroses yang dibutuhkan untuk menjalankan proses tertentu.

Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yang optimal berdasarkan kebutuhan sistem dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem. Apabila nilai quantum terlalu singkat akan menyebabkan terlalu banyak switch antar proses dan efisiensi CPU akan buruk, sebaliknya bila nilai quantum terlalu lama akan menyebabkan respon CPU akan lambat sehingga proses yang singkat akan menunggu lama. Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima.

Penjadwalan ini 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.

Kelemahan RR:

  1. Waktu tanggap tidak memadai untuk sistem interatif waktu maya atau hard-real-time applications

Kelebihan RR:

  1. Adil bila dipandang dari persamaan pelayanan oleh pemroses.
  2. Cenderung efisien pada sistem interaktif.
  3. Waktu tanggap memuaskan untuk sistem interaktif
  4. Turn around time cukup baik.
  5. Throughtput cukup baik.

b)      Priority Schedulling (PS)

PS Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya.

Contoh penjadwalan berprioritas :

Proses-proses yang sangat banyak operasi masukan/keluaran dan menghabiskan kebanyakan waktu proses untuk menunggu selesainya operasi masukan/keluaran. Proses demikian disebut I/O bound process. Proses-proses ini dapat diberi prioritas sangat tinggi sehingga begitu proses memerlukan pemroses segera diberikan dan proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat segera dialihkan, dapat dipergunakan proses-proses lain tanpa mengganggu proses I/O bound.  Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses.

Dalam algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi

kebijaksanaan tertentu yang menjadi tujuan system komputer. Algoritma sederhana layanan yang bagus adalah menge-set proses dengan prioritas berdasarkan rumus nilai 1/f, dimana f adalah ration kwanta terakhir yang digunakan

proses.

Pemberian prioritas diberikan secara :

1)   Static (Static Priority)

Static priorities berarti prioritas tidak berubah.

Kelebihan PS Statis :

  1. Mudah diimplementasikan.
  2. Mempunyai overhead relatif kecil.

Kelemahan PS Statis :

  1. Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.

2) Dinamis (dynamic priorities)

Merupakan mekanisme untuk menanggapi perubahan lingkungan system beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

Kelemahan PS Dinamis :

  1. Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead in diimbangi dengan peningkatan daya tanggap sistem.

Kelebihan PS Dinamis :

  1. Tanggap terhadap perubahan lingkungan yang mungkin menghendaki
  2. Memiliki penyesuaian terhadap prioritas

2.4      Thread

2.4.1      Definisi Thread

Thread adalah unit dasar dari penggunaan CPU, thread mengandung Thread ID, program counter , register set , dan stack . Sebuah Thread berbagi code section , data section , dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process . Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

2.4.2      Keuntungan Thread

  1. Responsi : Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading , sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
  2. Berbagi sumber daya : thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
  3. Ekonomi : dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.
  4. Utilisasi arsitektur multiprocessor : Keuntungan dari multithreading bisa sangat meningkat pada arsitektur multiprocessor , dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu -satuan waktu pada CPU biasa disebut time slice atau quantum ).
About these ads

7 responses »

  1. Ping-balik: Makalah manajemen proses | bedhesschilik

  2. [gigya width="138" height="450" src="http://www.widgipedia.com/widgets/widgetindex/httpwidgetindex2ndblogspotcom-5851-8192_134217728.widget?__in%22%20+%22stall_id=1277620423304&__view=embed\" title="grab this widget @ widgetindex2nd.blogspot" quality="autohigh" loop="false" wmode="transparent" menu="false" allowScriptAccess="sameDomain" ]

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s