Q29m3L1bEbNa1DvLKCgrnmUf9Aoon6rxknH75VNa
Bookmark

FCFS dengan Overhead

Dalam Contoh di atas, kami mengasumsikan bahwa semua proses adalah proses yang terikat CPU saja. Kami juga mengabaikan waktu peralihan konteks.

Namun jika waktu yang dibutuhkan oleh penjadwal dalam pengalihan konteks dipertimbangkan maka waktu tunggu rata-rata sistem akan meningkat yang juga mempengaruhi efisiensi sistem.

Pengalihan Konteks selalu merupakan overhead. Contoh Berikut menjelaskan menunjukkan efisiensi akan terpengaruh jika waktu pengalihan konteks dipertimbangkan dalam sistem.

Contoh

Dalam Contoh berikut, kami mempertimbangkan lima proses P1, P2, P3, P4, P5 dan P6. Waktu kedatangan dan waktu Burst mereka diberikan di bawah ini.

Sistem akan membutuhkan tambahan 1 unit waktu (overhead) setelah eksekusi setiap proses untuk menjadwalkan proses berikutnya.
Inefficiency= (6/23) X 100 %   
Efficiencyͷ = (1-6/23) X 100 %   

Penjadwalan Job First Terpendek (SJF).

Hingga saat ini, kami menjadwalkan proses sesuai dengan waktu kedatangannya (dalam penjadwalan FCFS). Namun, algoritma penjadwalan SJF, menjadwalkan proses sesuai dengan waktu ledakannya.

Dalam penjadwalan SJF, proses dengan waktu burst terendah, di antara daftar proses yang tersedia dalam ready queue, akan dijadwalkan selanjutnya.

Namun, sangat sulit untuk memprediksi waktu burst yang dibutuhkan untuk suatu proses sehingga algoritma ini sangat sulit untuk diimplementasikan dalam sistem.

Kelebihan SJF

  1. Hasil maksimal
  2. Waktu tunggu dan penyelesaian rata-rata minimum

Kekurangan SJF

  1. Mungkin menderita dengan masalah kelaparan
  2. Itu tidak dapat diterapkan karena waktu Burst yang tepat untuk suatu proses tidak dapat diketahui sebelumnya.

Ada berbagai teknik yang tersedia dimana, waktu ledakan CPU dari proses dapat ditentukan. Kami akan membahasnya nanti secara rinci.

Contoh

Dalam contoh berikut, ada lima pekerjaan bernama P1, P2, P3, P4 dan P5. Waktu kedatangan dan waktu meledak mereka diberikan dalam tabel di bawah ini.

Karena, Tidak Ada Proses yang tiba pada waktu 0 karenanya; akan ada slot kosong di bagan Gantt dari waktu 0 hingga 1 (waktu di mana proses pertama tiba).

Menurut algoritme, OS menjadwalkan proses yang memiliki waktu burst terendah di antara proses yang tersedia dalam antrian siap.

Hingga saat ini, kami hanya memiliki satu proses dalam ready queue sehingga penjadwal akan menjadwalkannya ke prosesor tidak peduli berapa pun waktu burst-nya.

Ini akan dieksekusi hingga 8 unit waktu. Sampai saat itu kami memiliki tiga proses lagi yang tiba di antrian siap sehingga penjadwal akan memilih proses dengan waktu burst terendah.

Di antara proses yang diberikan dalam tabel, P3 akan dieksekusi berikutnya karena memiliki waktu ledakan terendah di antara semua proses yang tersedia.

Jadi seperti itulah prosedur yang akan dilakukan pada algoritma penjadwalan shortest job first (SJF).

 Avg Waiting Time = 27/5

Prediksi CPU Burst Time untuk sebuah proses di SJF

Algoritma SJF adalah salah satu algoritma penjadwalan terbaik karena memberikan throughput maksimum dan waktu tunggu minimal tetapi masalah dengan algoritma ini adalah waktu ledakan CPU tidak dapat diketahui sebelumnya.

Kami dapat memperkirakan waktu ledakan CPU untuk suatu proses. Ada berbagai teknik yang dapat digunakan untuk mengasumsikan waktu Burst CPU untuk suatu proses. Asumsi kami harus akurat untuk memanfaatkan algoritme secara optimal.

Ada teknik berikut yang digunakan untuk asumsi waktu ledakan CPU untuk suatu proses.

1. Teknik Statis

Ukuran Proses

Kita dapat memprediksi Burst Time proses dari ukurannya. Jika kita memiliki dua proses T_OLD dan T_New dan waktu burst sebenarnya dari proses lama dikenal sebagai 20 detik dan ukuran prosesnya adalah 20 KB. Kita tahu ukuran P_NEW adalah 21 KB. Maka kemungkinan P_New memiliki waktu ledakan yang sama dengan 20 detik adalah maksimum.

If,     P_OLD → 20 KB   

P_New → 21 KB   

BT(P_OLD) → 20 Secs  

Then,   

BT(P_New) → 20 secs  

Oleh karena itu, dalam teknik ini, kami benar-benar memprediksi waktu ledakan dari proses baru sesuai dengan waktu ledakan dari proses lama dengan ukuran yang sama dengan proses baru.

Jenis Proses

Kita juga bisa memprediksi waktu burst dari proses tersebut sesuai dengan jenisnya. Suatu Proses dapat dari berbagai jenis yang didefinisikan sebagai berikut.

Proses OS

Suatu Proses dapat menjadi proses sistem Operasi seperti penjadwal, kompiler, manajer program, dan banyak lagi proses sistem. Burst time mereka umumnya lebih rendah misalnya 3 sampai 5 satuan waktu.

Proses Pengguna

Proses yang dimulai oleh pengguna disebut proses pengguna. Ada tiga jenis proses sebagai berikut.

Proses Interaktif

Proses Interaktif adalah proses yang berinteraksi dengan pengguna dari waktu ke waktu atau Eksekusi yang sepenuhnya bergantung pada input Pengguna, misalnya berbagai game adalah proses tersebut. Waktu burst harus lebih rendah karena mereka tidak membutuhkan CPU untuk waktu yang lama, mereka terutama bergantung pada interaktivitas pengguna dengan proses sehingga mereka terutama adalah proses yang terikat IO.

Proses latar depan

Proses latar depan adalah proses yang digunakan oleh pengguna untuk melakukan kebutuhan mereka seperti MS office, Editor, perangkat lunak utilitas, dll. Jenis proses ini memiliki waktu burst yang sedikit lebih tinggi karena merupakan perpaduan sempurna antara proses terikat CPU dan IO.

Proses latar belakang

Proses latar belakang mendukung pelaksanaan proses lainnya. Mereka bekerja dalam mode tersembunyi. Misalnya, key logger adalah proses yang merekam tombol yang ditekan oleh pengguna dan aktivitas pengguna pada sistem. Mereka sebagian besar adalah proses yang terikat CPU dan membutuhkan CPU untuk waktu yang lebih lama. 

2. Teknik Dinamis

Rata-rata Sederhana

Dalam rata-rata sederhana, diberikan daftar n proses P(i).......P(n). Misalkan T(i) menunjukkan waktu ledakan dari proses P(i). Biarkan τ(n) menunjukkan waktu ledakan yang diprediksi dari proses Pth. Kemudian menurut rata-rata sederhana, perkiraan waktu ledakan proses n+1 akan dihitung sebagai,

τ(n+1) = (1/n) ∑ T(i)  

Di mana, 0<=i<=n dan ∑ T(i) adalah penjumlahan waktu burst sebenarnya dari semua proses yang tersedia hingga saat ini.

Rata-Rata Eksponensial atau Penuaan

Misalkan, Tn adalah waktu burst aktual dari proses ke-n.τ(n) adalah waktu burst yang diprediksi untuk proses ke-n, maka waktu burst CPU untuk proses berikutnya (n+1) akan dihitung sebagai, 

τ(n+1) = α. Tn + (1-α) . τ(n) 

Dimana, α adalah smoothing. Nilainya terletak antara 0 dan 1. 

Jangan lupa untuk terus berkunjung dan mengikuti update terbarunya dari blog arahinfotech.com, Oh iya lupa, jika Sahabat memiliki tips-tips yang lebih bagus dari tips di atas, boleh dituliskan dimari caranya kelik menu bar lalu kelik kerja sama scrool kirim artikel. Selain itu juga, mohon dishare ketemen-temen atau keluarga jika memang artikel ini sangatlah bermanfaat untuk Sahabat.**