Definisi


  • Proses didefinisikan sebagai program yang sedang dieksekusi.
  • Suatu program berisi instruksi yang harus dilakukan, keterangan variabel yang digunakan, dan letak data yang diperlukan.
  • Proses adalah tindakan untuk menjalankan instruksi dengan menggunakan variabel yang ditentukan dan mengambil data dari lokasi yang telah ditentukan

Status Proses (2)
Sebuah proses dapat memiliki tiga status utama yaitu :

  1. Running = Status pada saat instruksi-instruksi dari sebuah proses dieksekusi.
  2. Waiting  = Status pada saat proses menunggu suatu event seperti proses I/O.
  3. Ready    = Status pada saat proses siap untuk dieksekusi oleh prosesor.

Terdapat dua status tambahan, yaitu saat pembentukan dan terminasi:

  1. New          = Status pada saat proses baru saja dibuat.
  2. Terminated = Status pada saat proses telah selesai dieksekusi.

Status Proses (3)
Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running:

  1. Jika program telah selesai dieksekusi, maka status proses tersebut akan berubah menjadi Terminated.
  2. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut akan berstatus Ready.
  3. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan I/O) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

Multiprogramming > Penjadwalan
Multiprograming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle.
Proses-proses berjalan dalam pola yang disebut Siklus Burst.

Siklus Burst (2)
Pengeksekusian dari proses terdiri atas siklus CPU ekskusi dan I/O Wait. Proses hanya akan bolak-balik dari dua state ini.
Pengeksekusian proses dimulai dengan Burst CPU, setelah itu diikuti oleh Burst I/O, kemudian Burst CPU lagi lalu Burst I/O lagi, dan seterusnya dilakukan secara bergiliran.
Burst CPU terakhir akan berakhir dengan permintaan sistem untuk mengakhiri pengeksekusian melalui Burst I/O lagi

Siklus Burst (3)
Burst CPU time yang lama jarang terjadi karena kebanyakan proses akan melakukan antara output ke layar atau file, maupun meminta input dari user atau file sehingga situasi dimana proses bekerja dengan memory dan register dalam jangka waktu lama jarang ditemukan.

Penjadwalan
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 state.
  4. Dihentikan

Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu :
1.Penjadwalan Preemptive
2.Penjadwalan Non-Preemptive

Penjadwalan Preemptive
Penjadwalan 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.
Lama waktu suatu proses diizinkan untuk dieksekusi disebut time slice/quantum.

Penjadwalan Non-Preemptive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di-interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1.Berjalan dari running state sampai waiting state.
2.Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu).

Algoritma Penjadwalan
Penjadwalan berkaitan dengan permasalahan memutuskan proses mana yang akan dilaksanakan dalam suatu sistem. Proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue.
Algoritma penjadwalan berfungsi untuk menentukan proses manakah yang ada di ready queue yang akan dieksekusi oleh CPU.

FCFS (First Come First Served)
Algoritma ini merupakan algoritma penjadwalan yang paling sederhana.
Setiap proses yang berada pada status ready dimasukkan kedalam FIFO (First In First Out) queue. Proses yang tiba terlebih dahulu yang akan dieksekusi.

Contoh FCFS
Ada tiga buah proses yang datang secara bersamaan yaitu pada waktu = 0. Proses tersebut :

  1. P1 memiliki burst time 24
  2. P2 memiliki burst time 3
  3. P3 memiliki burst time 3
Hitunglah waiting time rata-rata dan turnaround time (burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS.

Solusi Contoh FCFS
Waiting time untuk :

  1. P1 adalah 0 (P1 tidak perlu menunggu)
  2. P2 adalah sebesar 24 (menunggu P1 selesai)
  3. P3 sebesar 27 (menunggu P1 dan P2 selesai).

Solusi Contoh FCFS (2)
Waiting time rata-ratanya adalah sebesar :
(0+24+27)/3 = 17.
Turnaround time :

  1. P1 sebesar 24
  2. P2 sebesar 27 (dihitung dari awal kedatangan P2 hingga selesai dieksekusi)
  3. P3 sebesar 30 (dihitung dari awal kedatangan P3 hingga selesai dieksekusi)
Turnaround time rata-rata untuk ketiga proses adalah :
(24+27+30)/3 = 27

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

SJF (Shortest Job First)
Setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst time terkecil, sehingga waiting time setiap proses menjadi pendek, maka waiting time rata-ratanya juga menjadi pendek.
Dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.

Contoh SJF
Ada 4 buah proses yang datang berurutan yaitu :

  1. P1 dengan arrival time pada 0.0 dan burst time 7
  2. P2 dengan arrival time pada 2.0 dan burst time 4
  3. P3 dengan arrival time pada 4.0 dan burst time 1
  4. P4 dengan arrival time pada 5.0 dan burst time 4
Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan mengunakan algoritma SJF.

Solusi Contoh SJF (Non-Preemptive)
Waiting Time :
1.P1 = 0
2.P2 = 6
3.P3 = 3
4.P4 = 7

Solusi Contoh SJF (Non-Preemptive) (2)
Waiting Time rata-rata :
(0+6+3+7)/4 = 4
Turn Around Time :
  • P1 = 7
  • P2 = 10
  • P3 = 4
  • P4 = 11

Turn Around Time rata-rata :
(7+10+4+11)/4 = 8

Categories:

Leave a Reply