Pengertian dan Tipe Penjadwalan CPU pada Sistem Operasi - Penjadwalan CPU adalah basis dari multi-programming sistem operasi. Dengan men-switch CPU diantara proses. Akibatnya sistem operasi dapat membuat komputer produktif. Dalam bab ini kami akan memperkenalkan tentang dasar dari konsep penjadwalan dan beberapa algoritma penjadwalan. Dan kita juga memaparkan masalah dalam memilih algoritma dalam suatu sistem.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses - proses yang ada di dalam komputer. CPU scheduling sangat penting dalam menentukan performance sebuah computer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. CPU scheduling merupakan suatu konsep dasar dari multiprogramming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU.
Multiprogramming adalah suatu proses menjalankan proses-proses di dalam komputer secara bersamaan (yang disebut paralel). Multiprogramming dapat meningkatkan produktivitas dari sebuah komputer. Tujuan dari multiprogramming adalah menjalankan banyak proses secara bersamaan, untuk meningkatkan performance dari komputer.
Siklus Burst CPU-M/K (Masukkan/Keluaran)
Keberhasilan dari penjadwalan CPU tergantung dari beberapa properti prosesor. Pengeksekusian dari proses tersebut terdiri atas siklus eksekusi CPU dan M/K (I/O) Wait. Proses hanya akan bolak-balik dari dua state ini. Pengeksekusian proses dimulai dengan CPU Burst, setelah itu diikuti oleh M/K burst, kemudian CPU Burst lagi lalu M/K Burst lagi begitu seterusnya dan dilakukan secara bergiliran. Dan, CPU Burst terakhir, akan berakhir dengan permintaan sistem untuk mengakhiri pengeksekusian daripada melalui M/K Burst lagi. Kejadian siklus Burst akan dijelaskan pada Gambar 14.1, “Siklus Burst”.
Durasi dari CPU bust ini telah diukur secara ekstensif, walau pun mereka sangat berbeda dari proses ke proses. Mereka mempunyai frekeunsi kurva yang sama seperti yang diperlihatkan pada Gambar 14.2, “Diagram Burst”.
Dispatcher
Komponen yang lain yang terlibat dalam penjadwalan CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah:
Dispatcher seharusnya secepat mungkin. Dispatch Latency adalah waktu yang diperlukan dispatcher untuk menghentikan suatu proses dan memulai proses yang lain.
Penjadwalan CPU
Keberhasilan dari suatu penjadwalan tergantung kepada properti dari proses yang telah diteliti berikut ini: Suatu proses mengandung suatu cycle atau siklus dari pengeksekusian CPU dan M/K wait.
Suatu proses yang dieksekusi oleh CPU terjadi diantara dua cycle tersebut. Suatu proses pengeksekusian akan dimulai dengan CPU Burst dan diikuti oleh M/K Burst, dan kembali ke M/K Burst seterusnya dalam 2 siklus itu sampai selesai. Pada saat pengeksekusian suatu proses akan menjalankan instruksi nya pada CPU Burst dan akan mengalami suatu M/K Burst pada saat menunggu proses M/K (M/K Burst) Suatu proses dalam komputer itu pada umumnya berada di dua siklus tersebut, tapi ini hanya secara umum. Dapat saja pada suatu proses itu memiliki waktu CPU Burst yang sangat lama disebut dengan CPU Bound, contohnya dalam aplikasi aritmatika.
Proses yang memiliki suatu M/K Burst yang sangat lama disebut dengan M/K Bound, contohnya dalam proses pengeksekusian graphic game, dimana proses tersebut banyak menunggu masukan dan keluaran dari M/K. CPU burst berhak untuk menterminate sebuah proses atau program yang diminta oleh sistem.
Kapan pun CPU menjadi idle, sistem operasi harus memilih salah satu proses untuk masuk kedalam antrian ready (siap) untuk dieksekusi. Pemilihan tersebut dilakukan oleh penjadwal short term. Penjadwalan memilih dari sekian proses yang ada di memori yang sudah siap dieksekusi, dengan mengalokasikan CPU untuk mengeksekusinya.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
Penjadwalan nomor 1 dan 4 bersifat non-preemptive sedangkan lainnya preemptive. Dalam penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah proses, maka tidak dapat di ganggu, penjadwalan model seperti ini digunakan oleh Windows 3.X; Windows 95 telah menggunakan penjadwalan preemptive.
1. Penjadwalan Preemptive
2. Penjadwalan Non-Preemptive
Ini berarti cpu menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diinterupt). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk menginterupt pada metode penjadwalan preemptive).
Kriteria Penjadwalan
Suatu Algoritma penjadwalan CPU yang berbeda dapat mempunyai nilai yang berbeda untuk system yang berbeda. Banyak kriteria yang bisa dipakai untuk menilai algoritma penjadwalan CPU. Kriteria yang digunakan dalam menilai adalah:
1. CPU Utilization. Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.
2. Throughput. Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu.jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang berbeda, throughput bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang terbaik.
3. Turnaroud Time. Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah proses. Misal, kita memilki system komputer yang identik dan proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma yang lain. interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time.Turanaround time adalah jumlah periode untuk menunggu untuk dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.
4. Waiting Time. Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksankan proses tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian raedy. Waiting time adalah jumlah waktu yang dbutuhkan proses di antrian ready.
5. Response time. Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria.sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke pengguna. ukuran lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut respon time, yaitu waktu untuk memulai memberika respon, tetapi bukan waktu yang dipakai output untuk respon tersebut. Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkan turnaround time, waiting time, dan response time.
Rangkuman
Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadulan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang berbeda.suatu proses terdiri dari dua siklus yaitu M/K burst dan CPU burst yang dilakukan bergantian hingga proses selesai. Penjadulan CPU mungkin diajalankan ketika proses:
Proses 1 dan 4 adalah proses non-preemptive, dimana proses tersebut tidak bisa di interrupt, seangkan 2 dan 3 adalah preemptive, dimana proses boleh di interrupt. Komponen yang lain dalam penjadwalan CPU adalah dispatcher, dispatcher adalah modul yang memberikan kendali CPU kepada proses.dalam menilai baik atau buruknya suatau algoritma penjadwalan kita bisa memakai beberapa kriteria, diantaranya CPU utilization, throughput, turnaround time,waiting time, dan response time. algoritma yang baik adalah yang mampu memaksimalkan CPU utilization dan throughput, dan mampu meminimalkan turnaroud time, waiting time, dan response time. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency. Jika dalam suatu proses CPU Burst jauh lebih besar daripada M/K Burst maka disebut CPU Bound. Demikian unutk sebaliknya disebut dengan M/K Bound.
Sekian artikel tentang Pengertian dan Tipe Penjadwalan CPU pada Sistem Operasi.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses - proses yang ada di dalam komputer. CPU scheduling sangat penting dalam menentukan performance sebuah computer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. CPU scheduling merupakan suatu konsep dasar dari multiprogramming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU.
Multiprogramming adalah suatu proses menjalankan proses-proses di dalam komputer secara bersamaan (yang disebut paralel). Multiprogramming dapat meningkatkan produktivitas dari sebuah komputer. Tujuan dari multiprogramming adalah menjalankan banyak proses secara bersamaan, untuk meningkatkan performance dari komputer.
image source: icons.webtoolhub.com |
baca juga: Pengertian Proses, Control Block, Thread dan Multi-Thread
Siklus Burst CPU-M/K (Masukkan/Keluaran)
Keberhasilan dari penjadwalan CPU tergantung dari beberapa properti prosesor. Pengeksekusian dari proses tersebut terdiri atas siklus eksekusi CPU dan M/K (I/O) Wait. Proses hanya akan bolak-balik dari dua state ini. Pengeksekusian proses dimulai dengan CPU Burst, setelah itu diikuti oleh M/K burst, kemudian CPU Burst lagi lalu M/K Burst lagi begitu seterusnya dan dilakukan secara bergiliran. Dan, CPU Burst terakhir, akan berakhir dengan permintaan sistem untuk mengakhiri pengeksekusian daripada melalui M/K Burst lagi. Kejadian siklus Burst akan dijelaskan pada Gambar 14.1, “Siklus Burst”.
Gambar 14.1. Siklus Burst |
Gambar 2. Diagram Burst |
Komponen yang lain yang terlibat dalam penjadwalan CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah:
- Switching context
- Switching to user mode
- Lompat dari suatu bagian di progam user untuk mengulang progam.
Dispatcher seharusnya secepat mungkin. Dispatch Latency adalah waktu yang diperlukan dispatcher untuk menghentikan suatu proses dan memulai proses yang lain.
Penjadwalan CPU
Keberhasilan dari suatu penjadwalan tergantung kepada properti dari proses yang telah diteliti berikut ini: Suatu proses mengandung suatu cycle atau siklus dari pengeksekusian CPU dan M/K wait.
Suatu proses yang dieksekusi oleh CPU terjadi diantara dua cycle tersebut. Suatu proses pengeksekusian akan dimulai dengan CPU Burst dan diikuti oleh M/K Burst, dan kembali ke M/K Burst seterusnya dalam 2 siklus itu sampai selesai. Pada saat pengeksekusian suatu proses akan menjalankan instruksi nya pada CPU Burst dan akan mengalami suatu M/K Burst pada saat menunggu proses M/K (M/K Burst) Suatu proses dalam komputer itu pada umumnya berada di dua siklus tersebut, tapi ini hanya secara umum. Dapat saja pada suatu proses itu memiliki waktu CPU Burst yang sangat lama disebut dengan CPU Bound, contohnya dalam aplikasi aritmatika.
Proses yang memiliki suatu M/K Burst yang sangat lama disebut dengan M/K Bound, contohnya dalam proses pengeksekusian graphic game, dimana proses tersebut banyak menunggu masukan dan keluaran dari M/K. CPU burst berhak untuk menterminate sebuah proses atau program yang diminta oleh sistem.
Kapan pun CPU menjadi idle, sistem operasi harus memilih salah satu proses untuk masuk kedalam antrian ready (siap) untuk dieksekusi. Pemilihan tersebut dilakukan oleh penjadwal short term. Penjadwalan memilih dari sekian proses yang ada di memori yang sudah siap dieksekusi, dengan mengalokasikan CPU untuk mengeksekusinya.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
- Berubah dari running ke waiting state.
- Berubah dari running ke ready state.
- Berubah dari waiting ke ready.
- Terminates.
Penjadwalan nomor 1 dan 4 bersifat non-preemptive sedangkan lainnya preemptive. Dalam penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah proses, maka tidak dapat di ganggu, penjadwalan model seperti ini digunakan oleh Windows 3.X; Windows 95 telah menggunakan penjadwalan preemptive.
Gambar 3. Preemptive vs Non Preemptive |
Perbedaan Penjadwalan Preemptive dan Non Preemptive
baca: Algoritma Penjadwalan CPU Preemptive Beserta ContohSemua proses yang ada dalam antrian ready (siap) harus dikerjakan oleh CPU. CPU sendiri harus memilih salah satu proses yang akan dikerjakan dalam satu waktu. Pemilihan tersebut dilakukan oleh short term scheduler dan proses yang dipilih akan dieksekusi dalam CPU dalam satu waktu yang telah ditentukan oleh scheduler.
Gambar 4. Dispatch Latency |
2. Penjadwalan Non-Preemptive
baca: Algoritma Penjadwalan Non Preemptive Beserta ContohPenjadwalan non-preemptive terjadi ketika proses hanya:
- berjalan dari running state sampai waiting state.
- dihentikan.
Ini berarti cpu menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diinterupt). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk menginterupt pada metode penjadwalan preemptive).
Kriteria Penjadwalan
Suatu Algoritma penjadwalan CPU yang berbeda dapat mempunyai nilai yang berbeda untuk system yang berbeda. Banyak kriteria yang bisa dipakai untuk menilai algoritma penjadwalan CPU. Kriteria yang digunakan dalam menilai adalah:
1. CPU Utilization. Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.
2. Throughput. Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu.jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang berbeda, throughput bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang terbaik.
3. Turnaroud Time. Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah proses. Misal, kita memilki system komputer yang identik dan proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma yang lain. interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time.Turanaround time adalah jumlah periode untuk menunggu untuk dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.
4. Waiting Time. Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksankan proses tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian raedy. Waiting time adalah jumlah waktu yang dbutuhkan proses di antrian ready.
5. Response time. Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria.sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke pengguna. ukuran lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut respon time, yaitu waktu untuk memulai memberika respon, tetapi bukan waktu yang dipakai output untuk respon tersebut. Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkan turnaround time, waiting time, dan response time.
Rangkuman
Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadulan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang berbeda.suatu proses terdiri dari dua siklus yaitu M/K burst dan CPU burst yang dilakukan bergantian hingga proses selesai. Penjadulan CPU mungkin diajalankan ketika proses:
- Running → waiting time.
- Running → ready state.
- Waiting → ready state.
- Terminates.
Proses 1 dan 4 adalah proses non-preemptive, dimana proses tersebut tidak bisa di interrupt, seangkan 2 dan 3 adalah preemptive, dimana proses boleh di interrupt. Komponen yang lain dalam penjadwalan CPU adalah dispatcher, dispatcher adalah modul yang memberikan kendali CPU kepada proses.dalam menilai baik atau buruknya suatau algoritma penjadwalan kita bisa memakai beberapa kriteria, diantaranya CPU utilization, throughput, turnaround time,waiting time, dan response time. algoritma yang baik adalah yang mampu memaksimalkan CPU utilization dan throughput, dan mampu meminimalkan turnaroud time, waiting time, dan response time. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency. Jika dalam suatu proses CPU Burst jauh lebih besar daripada M/K Burst maka disebut CPU Bound. Demikian unutk sebaliknya disebut dengan M/K Bound.
Sekian artikel tentang Pengertian dan Tipe Penjadwalan CPU pada Sistem Operasi.
Pengertian dan Tipe Penjadwalan CPU pada Sistem Operasi
4/
5
Oleh
Unknown