Sabtu, 02 November 2019

Penjadwalan Processor Pada Sistem Operasi Linux

Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Tujuan utama penjadwalan proses optimasi kinerja menurut kriteria tertentu, dimana kriteria untuk mengukur dan optimasi kerja penjadwalan. Penjadwalan CPU adalah basis dari multi programming sistem operasi. Dengan cara men-switch CPU diantara proses, maka akan berakibat sistem operasi bisa membuat komputer produktif.

Pada sistem Operasi, terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks, yaitu:

1. Penjadwal jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama. Penjadwalan ini dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan.

2. Penjadwal jangka menengah (medium term scheduller)
Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call.

3. Penjadwal jangka panjang (long term scheduller)
Penjadwalan ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya berupa proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.

Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Status proses terdiri dari :
  1. New, proses sedang dibuat.
  2. Running, proses sedang dieksekusi.
  3. Waiting, proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
  4. Ready, proses menunggu jatah waktu dari CPU untuk diproses.
  5. Terminated, proses telah selesai dieksekusi.
 Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkait Penjadwalan Processor Pada Sistem Operasi Linux
Masing-masing proses direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB). Informasi yang terdapat pada setiap proses meliputi :
  1. Status Proses. New, ready, running, waiting dan terminated.
  2. Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
  3. CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt.
  4. Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
  5. Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh sistem operasi.
  6. Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses.
  7. Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka.
Swithing proses dari proses satu ke proses berikutnya, ditunjukkan seperti gambar berikut ini.
 Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkait Penjadwalan Processor Pada Sistem Operasi Linux
A. Kriteria Penjadwalan
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:
  1. CPU utilization. Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
  2. Throughput. Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu.
  3. Turnaround time. Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O.
  4. Waiting time. Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.
  5. Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut.
  6. Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair).

B. Dispathcer
Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang terkandung di dalamnya meliputi:
  1. Switching context;
  2. Switching ke user-mode;
  3. Melompat ke lokasi tertentu pada user program untuk memulai program. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency.

C. Algoritma Penjadwalan
Algoritma diperlukan untuk mengatur giliran proses-proses yang ada di ready queue yang mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan sebagai berikut :
  1. First Come First Served (FCFS) Scheduling. FCFS merupakan algoritma penjadwalan yang paling sederhana yang digunakan dalam CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya.
  2. Shortest Job First (SJF) Scheduling Pada algoritma ini setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk setiap proses dan karena hal tersebut maka waiting time rata-ratanya juga menjadi pendek.
  3. Priority Scheduling Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing.
  4. Round Robin Scheduling. Algoritma ini menggilir proses yang ada di antrian. Setiap proses mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya.

D. Implementasi Pada Sistem Operasi Linux

  1. Pada sistem operasi Linux, untuk melihat proses yang sedang terjadi, maka digunakan perintah ps. Apabila belum tahu perintah ps itu digunakan untuk apa, maka kita bisa tanya ke library menggunakan perintah man, kemudian diikuti nama perintahnya (#man ps), kemudian tekan enter
  2. Proses tree atau memperoleh informasi tentang threads dan security info, dapat dilakukan dengan melakukan scroll mouse ke arah bawah.  
  3. Pada sistem operasi Linux Debian, untuk melihat proses yang terjadi dapat dilakukan dengan mengetikkan perintah ps pada terminal Linux. 
  4. Pada sistem Linux, terdapat banyak cara untuk menangani eksekusi-eksekusi perintah. Diantaranya, diberi kesempatan untuk membuat daftar perintah dan menentukan kapan perintah dijalankan oleh sistem. Misalnya perintah “at” digunaka
  5. Untuk melihat faktor/elemen lainnya, gunakan option –u (user). %CPU adalah presentasi CPU time yang digunakan oleh proses tersebut, %MEM adalah presentasi system memori yang digunakan proses, SIZE adalah jumlah memori yang digunakan, RSS (Real System Storage) adalah jumlah memori yang digunakan, START adalah kapan proses tersebut diaktifkan. Sedangkan pada option -u yang disertai untuk mencari proses yang spesifik pemakai. n untuk memberi peluang menjalankan program berdasarkan waktu yang ditentukan.
  6. Untuk menampilkan proses Parent dan Child maka ketikkan perintah #ps –eH,
  7. Untuk menampilkan semua proses pada sistem dalam bentuk hirarki parent/child, maka dilakukan dengan mengetikkan perintah # pstree

Penjadwalan CPU adalah basis dari multi programming sistem operasi. Dengan cara men-switch CPU diantara proses, maka akan berakibat sistem operasi bisa membuat komputer produktif.