Tahun Akademik 2014/2015 Semester II DIG1I3 - Instalasi dan Penggunaan Sistem Operasi Penjadualan Proses Bag. 1 Mohamad Dani (MHM) Alamat E-mail: mohamad.dani@gmail.com Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School Penjadualan Process Bagian 1 1
Tujuan Pembelajaran Mahasiswa mampu menjelaskan perbedaan penjadualan proses jangka pendek, menengah dan panjang. Mahasiswa mampu menjelaskan cara kerja algoritma-algoritma penjadualan proses dan kinerja dari masing-masing algoritma penjadualan proses yang preemptive dan Nonpreemptive. Mahasiswa mampu menggunakan algoritma penjadualan proses yang sesuai dengan permasalahan yang berkaitan dengan penjadualan proses. Pendahuluan Pada sistem multiprogramming, banyak proses yang berada secara terus-menerus di memori utama. Tiap proses dieksekusi oleh proses secara bergantian dan menunggu beberapa event terjadi misal menunggu operasi I/O selesai. Prosesor dibuat sibuk dengan mengeksekusi sebuah proses dan proses lainnya menunggu giliran untuk dieksekusi oleh prosesor. 2
Tipe Penjadualan Proses Agar proses-proses tersebut dapat dieksekusi dengan baik, maka dibuatlah 4 tipe-tipe penjadualan berdasarkan waktu yaitu: 1. Long-term scheduling : Keputusan untuk menambahkan ke pool proses-proses yang akan dieksekusi. 2. Medium-term scheduling : Keputusan untuk menambahkan ke sejumlah proses yang secara penuh atau sebagian yang ada di memori utama. 3. Short-term scheduling : Keputusan proses yang tersedia yang akan dieksekusi oleh prosesor. Transisi Process State dan Penjadualan 3
Model Process Level Penjadualan Diagram Antrian Penjadualan 4
Kriteria Penjadualan Utilisasi CPU: menjadikan CPU terus menerus sibuk (menggunakan CPU semaksimal mungkin). Throughput: maksimalkan jumlah proses yang selesai dijalankan (per satuan waktu). Turn around time: minimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai). Waiting time: minimalkan waktu tunggu proses (jumlah waktu yang dihabiskan menunggu di ready queue). Response time: minimalkan waktu response dari sistim terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat. 9 Kriteria Penjadualan yang Optimal Memaksimumkan utilisasi CPU Memaksimumkan throughput Meminimukan turnaround time Meminimumkan waiting time Meminimumkan response time 10 5
Algoritma Penjadualan Mode keputusan: 1. Nonpreemptive : Pada saat sebuah proses berada dalam Running state, proses terus dieksekusi sampai (a) prosesnya selesai (b) prosesnya memblok diri sendiri untuk menunggu I/O atau meminta beberapa layanan OS. 2. Preemptive : Proses yang sedang berjalan dapat disela atau dipindahkan ke Ready state oleh OS. Algoritma Penjadualan First-come, first-served (FCFS) Non preemptive Shortest-Job-First (SJF) Preemptive Shortest-Job-First (SJF) aka Shortest- Remaining-Time-First (SRTF). Priority scheduling Round-Robin (RR) Feedback Scheduling 12 6
First-Come, First-Served (FCFS) Algoritma: Proses yang request CPU pertama kali akan mendapatkan jatah CPU. Sederhana algoritma maupun struktur data: menggunakan FIFO queue (ready queue). FCFS: Non preemptive Timbul masalah waktu menunggu terlalu lama jika didahului oleh proses yang waktu selesainya lama. Tidak cocok untuk time-sharing systems. Digunakan pada OS dengan orientasi batch job. 13 Contoh 1 : FCFS/FIFO Process Burst Time (waktu layanan) (ms) P 1 24 P 2 3 P 3 3 Diketahui proses yang tiba adalah P 1, P 2, P 3. dan arrival timenya dianggap sama. Gant chart-nya adalah : Waktu menunggu untuk P 1 = 0 ms; P 2 = 24 ms; P 3 = 27 ms Waktu menunggu total untuk semua proses = (0 + 24 + 27) ms = 51 ms Waktu menunggu rerata : (0 + 24 + 27)/3 = 17 ms Turnaround time (TAT) : Waktu menunggu total + waktu total layanan = 51 ms + 30 ms = 81 ms. 14 7
Latihan 1: FCFS/FIFO Process Burst Time (waktu layanan) (ms) P 1 24 P 2 3 P 3 3 Diketahui proses yang tiba adalah P 2, P 3, P 1. Gant chart-nya adalah : Pertanyaan: Buatlah Gant Chartnya! Hitunglah Waktu menunggu P 2, P 3, P 1! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! 15 Latihan 2: FCFS/FIFO Process Burst Time (waktu layanan) (ms) P 1 24 P 2 3 P 3 3 Diketahui proses yang tiba adalah P 2, P 3, P 1. dan arrival timenya dianggap sama. Gant chart-nya adalah : Waktu menunggu untuk P 1 = 6 ms; P 2 = 0 ms; P 3 = 3 ms Waktu menunggu total untuk semua proses = (6 + 0 + 3) ms = 9 ms Waktu menunggu rerata : (6 + 0 + 3)/3 = 3 ms Turnaround time (TAT) : Waktu menunggu total + waktu total layanan = 9 ms + 30 ms = 39 ms. 16 8
Contoh 2 : FCFS/FIFO Diketahui proses yang tiba digambarkan pada gambar di atas. Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 17 Contoh 2 : FCFS/FIFO Chartnya! A B C D E A B C D E 0 20 Waktu menunggu 1 Kotak = 1 Waktu menunggu A = 0, B = 1, C = 5, D = 7, E = 10! Waktu menunggu total untuk semua proses = 0 + 1 + 5 + 7 + 10 = 23 Waktu menunggu reratanya = 23/5 = 4,6 Turnaround time (TAT) = 23 + 20 = 43 Turnaround time (TAT) reratanya = 43/5 = 8,6 18 9
Latihan 2 : FCFS/FIFO Diketahui proses yang tiba digambarkan pada gambar di atas. Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 19 Latihan 2 : FCFS/FIFO Chartnya! A B C D E A B C D E 0 20 Waktu menunggu 1 Kotak = 1 Waktu menunggu A = 0, B = 2, C = 5, D = 1, E = 3! Waktu menunggu total untuk semua proses = 0 + 2 + 5 + 1 + 3 = 11 Waktu menunggu reratanya = 11/5 = 2,2 Turnaround time (TAT) = 11 + 20 = 31 Turnaround time (TAT) reratanya = 31/5 = 6,2 20 10
Shortest-Job-First (SJF) Penggabungan setiap proses merupakan panjang dari burst CPU berikutnya. Panjang tersebut digunakan untuk penjadualan proses pada waktu terpendek Terdapat 2 skema : nonpreemptive CPU hanya satu kali diberikan pada suatu proses, maka proses tersebut tetap akan memakai CPU hingga proses tersebut melepaskannya. Dikenal juga sebagai non preemptive SJF. preemptive jika suatu proses tiba dengan panjang CPU burst lebih kecil dari waktu yang tersisa pada ekseksusi proses yang sedang berlangsung, maka dijalankan preemptive. Skema ini dikenal dengan Shortest- Remaining-Time-First (SRTF). SJF akan optimal, ketika rata-rata waktu tunggu minimum untuk set proses yang diberikan 21 Contoh 3: Non-Preemptive SJF Process Arrival Time (ms) Burst Time (ms) A 0.0 7 B 2.0 4 C 4.0 1 D 5.0 4 Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 22 11
Contoh 3 : Non-Preemptive SJF Chartnya! A B C D A B c D 0 16 Waktu menunggu 1 Kotak = 1 Waktu menunggu A = 0 ms, B = 6 ms, C = 3 ms, D = 7 ms! Waktu menunggu total untuk semua proses = 0 ms + 6 ms + 3 ms + 7 ms = 16 ms Waktu menunggu reratanya = 16 ms /4 = 4 ms Turnaround time (TAT) = 16 ms + 16 ms = 32 ms Turnaround time (TAT) reratanya = 32 ms /4 = 8 ms 23 Contoh 4: Preemptive SJF (SRT) Process Arrival Time (ms) Burst Time (ms) A 0.0 7 B 2.0 4 C 4.0 1 D 5.0 4 Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 24 12
Contoh 4 : Preemptive SJF (SRTF) Chartnya! A A A B B C C D D 0 16 Waktu menunggu 1 Kotak = 1 Waktu menunggu A = 9 ms, B = 0 ms, C = 2 ms, D = 2 ms! Waktu menunggu total untuk semua proses = 9 ms + 0 ms + 2 ms + 2 ms = 13 ms Waktu menunggu reratanya = 13 ms /4 = 3,25 ms Turnaround time (TAT) = 13ms + 16 ms = 29 ms Turnaround time (TAT) reratanya = 29 ms /4 = 7,25 ms 25 Latihan 3 : Non-Preemptive SJF Diketahui proses yang tiba digambarkan pada gambar di atas. Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 26 13
Latihan 4 : Preemptive SJF (SRTF) Diketahui proses yang tiba digambarkan pada gambar di atas. Pertanyaan: Buatlah Chartnya! Hitunglah Waktu menunggu A, B, C, D, E! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! 27 Tugas 2 : Penjadualan Proses-1 1. Jelaskan 3 tipe penjadualan prosesor! 2. Apa perbedaan antara turnaround time dan response time? 3. Apa perbedaan antara penjadualan preemptive dan nonpreemptive? 4. Jelaskan algoritma penjadualan prosesor berikut: a) First-come, first-served (FCFS) b) Non preemptive Shortest-Job-First (SJF) c) Preemptive Shortest-Job-First (SJF)/Shortest- Remaining-Time-First (SRTF). 14
Tugas 2 : Penjadualan Proses-1 5. Diketahui proses yang tiba digambarkan pada gambar di bawah: Tugas Anda: Buatlah Chartnya! Hitunglah Waktu menunggu P1, P2, P3, P4! Hitunglah Waktu menunggu total untuk semua proses! Hitunglah Waktu menunggu reratanya! Hitunglah Turnaround time (TAT)! Hitunglah Turnaround time (TAT) reratanya! Menggunakan algoritma: a. FCFS, b. Non-Preemptive SJF, c. Preemptive SJF (SRTF) Pertemuan Selanjutnya Priority Scheduling Round-Robin (RR) Feedback Scheduling Latihan soal Algoritma penjadualan CPU/Proses 15
Daftar Pustaka William Stallings(2012). Operating Systems 7th Edition. Prentice Hall. New Jersey halaman 395 426. Avi Silberschatz, Peter Galvin, dan Grag Gagne (2013). Operating Systems CONCEPTS ninth Edition. John Wiley & Sons. USA Halaman 261 312. Danke 32 16