Penjadwalan CPU Algorithms in OperaSistem

Apa itu Penjadwalan CPU?

Penjadwalan CPU adalah proses untuk menentukan proses mana yang akan memiliki CPU untuk dieksekusi saat proses lain sedang ditunda. Tugas utama penjadwalan CPU adalah memastikan bahwa setiap kali CPU tidak aktif, OS setidaknya memilih salah satu proses yang tersedia dalam antrean siap untuk dieksekusi. Proses pemilihan akan dilakukan oleh penjadwal CPU. Proses ini memilih salah satu proses dalam memori yang siap untuk dieksekusi.

Jenis Penjadwalan CPU

Berikut adalah dua jenis metode Penjadwalan:

Jenis Penjadwalan CPU

Penjadwalan Preemptive

Dalam Penjadwalan Preemptive, sebagian besar tugas ditetapkan berdasarkan prioritasnya. Terkadang penting untuk menjalankan tugas dengan prioritas lebih tinggi sebelum tugas lain yang berprioritas lebih rendah, meskipun tugas dengan prioritas lebih rendah masih berjalan. Tugas dengan prioritas lebih rendah bertahan selama beberapa waktu dan dilanjutkan ketika tugas dengan prioritas lebih tinggi selesai dijalankan.

Penjadwalan Non-Preemptive

Dalam metode penjadwalan jenis ini, CPU telah dialokasikan untuk proses tertentu. Proses yang membuat CPU sibuk akan melepaskan CPU baik dengan mengalihkan konteks atau mengakhiri. Ini adalah satu-satunya metode yang dapat digunakan untuk berbagai platform perangkat keras. Itu karena tidak memerlukan perangkat keras khusus (misalnya pengatur waktu) seperti penjadwalan preemptive.

Kapan penjadwalannya bersifat Preemptive atau Non-Preemptive?

Untuk menentukan apakah penjadwalan bersifat preemptive atau non-preemptive, pertimbangkan empat parameter berikut:

  1. Suatu proses beralih dari keadaan berjalan ke keadaan menunggu.
  2. Proses spesifik beralih dari status berjalan ke status siap.
  3. Proses spesifik beralih dari status menunggu ke status siap.
  4. Proses menyelesaikan eksekusinya dan dihentikan.

Hanya ketentuan 1 dan 4 yang berlaku, penjadwalannya disebut non-preemptive.

Semua penjadwalan lainnya bersifat preemptive.

Terminologi penjadwalan CPU yang penting

  • Waktu Burst/Waktu Eksekusi: Ini adalah waktu yang dibutuhkan oleh proses untuk menyelesaikan eksekusi. Ini juga disebut waktu berjalan.
  • Jam kedatangan: ketika suatu proses masuk dalam keadaan siap
  • Waktu Selesai: ketika proses selesai dan keluar dari sistem
  • Multiprogram: Sejumlah program yang dapat hadir di memori secara bersamaan.
  • Pekerjaan: Ini adalah jenis program tanpa interaksi pengguna apa pun.
  • Pengguna: Ini adalah jenis program yang memiliki interaksi pengguna.
  • Proses: Ini adalah referensi yang digunakan untuk pekerjaan dan pengguna.
  • Siklus ledakan CPU/IO: Mencirikan eksekusi proses, yang bergantian antara aktivitas CPU dan I/O. Waktu CPU biasanya lebih pendek dibandingkan waktu I/O.

Kriteria Penjadwalan CPU

Algoritma penjadwalan CPU mencoba memaksimalkan dan meminimalkan hal berikut:

Kriteria Penjadwalan CPU

Maksimalkan

Pemakaian CPU:Pemanfaatan CPU adalah tugas utama yang dibutuhkan sistem operasi untuk memastikan bahwa CPU tetap sibuk. Itu bisa berkisar dari 0 hingga 100 persen. Namun untuk RTOS bisa berkisar antara 40 persen untuk sistem level rendah dan 90 persen untuk sistem level tinggi.

Throughput: Jumlah proses yang menyelesaikan eksekusinya per satuan waktu diketahui Throughput. Jadi, ketika CPU sedang sibuk menjalankan suatu proses, pada saat itu pekerjaan sedang dilakukan, dan pekerjaan yang diselesaikan per satuan waktu disebut Throughput.

Memperkecil

Waktu menunggu: Waktu tunggu adalah jumlah yang diperlukan oleh proses tertentu untuk menunggu dalam antrian siap.

Waktu merespon: Ini adalah jumlah waktu di mana permintaan diajukan hingga tanggapan pertama dihasilkan.

Waktu penyelesaian: Waktu penyelesaian adalah jumlah waktu untuk menjalankan proses tertentu. Ini adalah penghitungan total waktu yang dihabiskan untuk menunggu masuk ke memori, menunggu dalam antrian, dan mengeksekusi di CPU. Jangka waktu antara waktu penyerahan proses hingga waktu penyelesaian disebut waktu penyelesaian.

Timer Interval

Interupsi pengatur waktu merupakan salah satu metode yang berkaitan erat dengan preemption. Ketika suatu proses tertentu mendapat alokasi CPU, pengatur waktu dapat diatur ke interval tertentu. Interupsi pengatur waktu dan preemption memaksa suatu proses untuk mengembalikan CPU sebelum ledakan CPU-nya selesai.

Sebagian besar sistem operasi multi-program menggunakan semacam pengatur waktu untuk mencegah suatu proses menghentikan sistem selamanya.

Apa itu pengirim?

Ini adalah modul yang memberikan kontrol CPU untuk proses. Dispatcher harus cepat sehingga dapat berjalan di setiap peralihan konteks. Latensi pengiriman adalah jumlah waktu yang dibutuhkan oleh penjadwal CPU untuk menghentikan satu proses dan memulai proses lainnya.

Fungsi yang dilakukan oleh Dispatcher:

  • Pengalihan Konteks
  • Beralih ke mode pengguna
  • Pindah ke lokasi yang benar di program yang baru dimuat.

Jenis Algoritma penjadwalan CPU

Terutama ada enam jenis algoritma penjadwalan proses

  1. Pertama Datang Pertama Dilayani (FCFS)
  2. Penjadwalan Pekerjaan Terpendek-Pertama (SJF).
  3. Waktu Tersisa Terpendek
  4. Penjadwalan Prioritas
  5. Penjadwalan Round Robin
  6. Penjadwalan Antrian Bertingkat
Penjadwalan Algorithms
Penjadwalan Algorithms

Siapa cepat dia dapat

First Come First Serve adalah bentuk lengkap dari FCFS. Ini adalah algoritma penjadwalan CPU yang paling mudah dan sederhana. Dalam algoritma jenis ini, proses yang meminta CPU mendapat alokasi CPU terlebih dahulu. Metode penjadwalan ini dapat dikelola dengan antrian FIFO.

Saat proses memasuki antrian siap, PCB-nya (Blok Kontrol Proses) dihubungkan dengan ekor antrian. Jadi, ketika CPU menjadi bebas, maka harus ditugaskan ke proses di awal antrian.

Karakteristik metode FCFS

  • Ini menawarkan algoritma penjadwalan non-preemptive dan pre-emptive.
  • Pekerjaan selalu dilaksanakan berdasarkan siapa yang datang lebih dulu dilayani
  • Sangat mudah untuk diterapkan dan digunakan.
  • Namun, kinerja metode ini buruk, dan waktu tunggu secara umum cukup lama.

Waktu Tersisa Terpendek

Bentuk lengkap SRT adalah Sisa waktu terpendek. Ini juga dikenal sebagai penjadwalan preemptive SJF. Dalam metode ini, proses akan dialokasikan ke tugas yang paling dekat dengan penyelesaiannya. Metode ini mencegah proses keadaan siap yang lebih baru menahan penyelesaian proses lama.

Karakteristik metode penjadwalan SRT

  • Metode ini sebagian besar diterapkan dalam lingkungan batch di mana pekerjaan pendek harus diberikan preferensi.
  • Ini bukan metode yang ideal untuk mengimplementasikannya dalam sistem bersama di mana waktu CPU yang diperlukan tidak diketahui.
  • Kaitkan setiap proses dengan durasi ledakan CPU berikutnya. Sehingga sistem operasi menggunakan durasi ini, yang membantu menjadwalkan proses dengan waktu sesingkat mungkin.

Penjadwalan Berbasis Prioritas

Penjadwalan Prioritas adalah metode penjadwalan proses berdasarkan prioritas. Dalam metode ini, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.

Penjadwalan prioritas juga membantu OS untuk melibatkan penetapan prioritas. Proses dengan prioritas lebih tinggi harus dilaksanakan terlebih dahulu, sedangkan pekerjaan dengan prioritas yang sama dilaksanakan berdasarkan sistem round-robin atau FCFS. Prioritas dapat ditentukan berdasarkan kebutuhan memori, kebutuhan waktu, dll.

Penjadwalan Round-Robin

Round robin adalah algoritma penjadwalan tertua dan paling sederhana. Nama algoritma ini berasal dari prinsip round-robin, dimana setiap orang mendapat bagian yang sama secara bergantian. Ini sebagian besar digunakan untuk algoritma penjadwalan dalam multitasking. Metode algoritme ini membantu eksekusi proses yang bebas kelaparan.

Karakteristik Penjadwalan Round-Robin

  • Round robin adalah model hybrid yang digerakkan oleh jam
  • Irisan waktu harus minimum, yang ditetapkan untuk tugas tertentu yang akan diproses. Namun, ini mungkin berbeda untuk proses yang berbeda.
  • Ini adalah sistem waktu nyata yang merespons peristiwa dalam batas waktu tertentu.

Pekerjaan Terpendek Terlebih Dahulu

SJF adalah bentuk lengkap dari (Shortest job first) yang merupakan algoritma penjadwalan di mana proses dengan waktu eksekusi terpendek harus dipilih untuk dieksekusi berikutnya. Metode penjadwalan ini bisa bersifat preemptive atau non-preemptive. Ini secara signifikan mengurangi waktu tunggu rata-rata untuk proses lain yang menunggu eksekusi.

Karakteristik Penjadwalan SJF

  • Ini dikaitkan dengan setiap pekerjaan sebagai satuan waktu yang harus diselesaikan.
  • Dalam metode ini, ketika CPU tersedia, maka proses atau tugas selanjutnya dengan waktu penyelesaian terpendek akan dieksekusi terlebih dahulu.
  • Hal ini Diimplementasikan dengan kebijakan non-preemptive.
  • Metode algoritma ini berguna untuk pemrosesan tipe batch, dimana menunggu pekerjaan selesai bukanlah hal yang penting.
  • Hal ini meningkatkan keluaran pekerjaan dengan menawarkan pekerjaan yang lebih singkat, yang harus dilaksanakan terlebih dahulu, yang sebagian besar memiliki waktu penyelesaian yang lebih singkat.

Penjadwalan Antrian Bertingkat

Algoritma ini memisahkan antrian siap menjadi beberapa antrian terpisah. Dalam metode ini, proses ditugaskan ke antrian berdasarkan properti proses tertentu, seperti prioritas proses, ukuran memori, dll.

Namun, ini bukan algoritma OS penjadwalan independen karena perlu menggunakan jenis algoritma lain untuk menjadwalkan pekerjaan.

Karakteristik Penjadwalan Antrian Bertingkat

  • Beberapa antrian harus dipertahankan untuk proses dengan beberapa karakteristik.
  • Setiap antrian mungkin memiliki algoritma penjadwalan tersendiri.
  • Prioritas diberikan untuk setiap antrian.

Tujuan dari algoritma Penjadwalan

Berikut alasan penggunaan algoritma penjadwalan:

  • CPU menggunakan penjadwalan untuk meningkatkan efisiensinya.
  • Ini membantu Anda mengalokasikan sumber daya di antara proses yang bersaing.
  • Pemanfaatan CPU secara maksimal dapat diperoleh dengan multiprogramming.
  • Proses yang akan dieksekusi berada dalam antrian siap.

Kesimpulan

  • Penjadwalan CPU adalah proses menentukan proses mana yang akan memiliki CPU untuk dieksekusi sementara proses lain ditunda.
  • Dalam Penjadwalan Preemptive, sebagian besar tugas ditetapkan berdasarkan prioritasnya.
  • Dalam metode penjadwalan Non-preemptive, CPU telah dialokasikan untuk proses tertentu.
  • Waktu burst adalah waktu yang dibutuhkan proses untuk menyelesaikan eksekusi. Ini juga disebut waktu berjalan.
  • Pemanfaatan CPU adalah tugas utama yang dibutuhkan sistem operasi untuk memastikan bahwa CPU tetap sibuk.
  • Jumlah proses yang menyelesaikan eksekusinya per satuan waktu diketahui Throughput.
  • Waktu tunggu adalah jumlah yang dibutuhkan suatu proses tertentu untuk menunggu dalam antrian siap.
  • Ini adalah jumlah waktu di mana permintaan diajukan hingga tanggapan pertama dihasilkan.
  • Waktu penyelesaian adalah jumlah waktu untuk menjalankan proses tertentu.
  • Interupsi pengatur waktu merupakan salah satu metode yang berkaitan erat dengan preemption.
  • Dispatcher adalah modul yang memberikan kontrol CPU pada proses.
  • Enam jenis algoritma penjadwalan proses adalah: First Come First Serve (FCFS), 2) Shortest-Job-First (SJF) Scheduling, 3) Shortest Remaining Time, 4) Priority Scheduling, 5) Round Robin Scheduling, 6) Multilevel Queue Scheduling .
  • Dalam majalah Metode First Come First Serve, proses yang meminta CPU mendapatkan alokasi CPU terlebih dahulu.
  • Dalam Sisa Waktu Terpendek, proses akan dialokasikan ke tugas yang paling dekat dengan penyelesaiannya.
  • Dalam Penjadwalan Prioritas, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.
  • Penjadwalan round robin bekerja berdasarkan prinsip di mana setiap orang mendapat bagian yang sama secara bergantian.
  • Dalam pekerjaan Terpendek terlebih dahulu, waktu eksekusi terpendek harus dipilih untuk eksekusi berikutnya.
  • Metode penjadwalan bertingkat memisahkan antrian yang siap menjadi berbagai antrian yang terpisah. Dalam metode ini, proses ditugaskan ke antrian berdasarkan properti tertentu.
  • CPU menggunakan penjadwalan untuk meningkatkan efisiensinya.