Sistem Operasi Komputer Pertemuan V – Penjadwalan Proses Konsep dasar Kriteria penjadwalan Algoritma penjadwalan Implementasi penjadwalan Evaluasi algoritma penjadwalan Case: Windows 2000 dan Linux Universitas Kristen Maranatha -- IT Department 1 Sistem Operasi Komputer Multiprogramming beberapa proses berjalan dalam suatu waktu CPU – I/O burst cycle – Eksekusi proses terdiri atas cycle eksekusi CPU dan waktu tunggu I/O CPU burst distribution – CPU dialihkan ke proses yang lain pada saat suatu proses sedang dalam status wait I/O bound program – banyak CPU burst yang singkat CPU bound program – sedikit CPU burst yang sangat lama PROCESS STATE ready running read( ) waiting ready ready running write ( ) waiting ready ready running read ( ) waiting ready Universitas Kristen Maranatha -- IT Department 2 Sistem Operasi Komputer Pada saat CPU nganggur, seleksi ready queue dalam memori utama short term scheduler Setiap proses dalam ready queue harus mengantri sebelum mendapat giliran eksekusi dalam CPU Pertimbangan penjadwalan: 1. 2. 3. 4. Nomor 1 dan 4 – nonpreemptive (CPU digunakan terus sampai proses selesai atau waiting) Nomor 2 dan 3 – preemptive (CPU beralih ke proses lain atau I/O / Context Switch Kontrol terhadap seleksi short term scheduling: Berpindah dari keadaan running ke waiting Berpindah dari keadaan running ke ready (interrupt) Berpindah dari waiting ke ready (completion I/O) Selesai Context switching Switching ke user mode Melompat ke lokasi tertentu pada user program untuk memulai program tersebut Dispatch latency – waktu yang diperlukan untuk menghentikan suatu proses dan memulai menjalankan proses terpilih Universitas Kristen Maranatha -- IT Department 3 Sistem Operasi Komputer Max. CPU utilization – usahakan CPU sesibuk mungkin (40% - 90%) Max. Throughput – banyak eksekusi proses dalam satu satuan waktu Max. Fairness – pembagian waktu yang adil di antara proses Min. Turnaround time – waktu total eksekusi satu proses tertentu (siklus proses: memori, ready queue, ekesekusi, penyelesaian I/O) Min. Waiting time – waktu menunggu total di ready queue Min. Response time – waktu mulai dari permohonan sampai respons pertama suatu proses Universitas Kristen Maranatha -- IT Department 4 Sistem Operasi Komputer Dikenal juga dengan istilah First In, First Out (FIFO) Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan mendapat prioritas Mudah diimplementasikan Average Waiting Time (AWT) cukup besar Problem: convoy effect, AWT membengkak jika proses yang terlebih dahulu membutuhkan CPU burst yang besar Non preemptive Process P1 P2 P3 Burst Time 24 3 3 P1 0 P2 24 P3 27 30 Urutan proses: P1, P2, P3 Gantt Chart untuk penjadwalan ini: Waiting time untuk P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 Universitas Kristen Maranatha -- IT Department 5 Sistem Operasi Komputer Jika urutan proses adalah: P2 , P3 , P1 . Gantt chart untuk penjadwalan ini: P2 0 P3 3 P1 6 30 Waiting time untuk P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Lebih baik dari kasus sebelumnya Proses yang memiliki CPU burst paling kecil akan dilayani terlebih dahulu Non preemptive: proses yang sedang berlangsung tidak dapat digantikan dengan proses yang baru Preemptive: jika proses yang masuk dengan CPU burst lebih kecil daripada sisa CPU burst proses yang sedang berjalan, akan dilakukan pergantian proses dalam CPU, dikenal dengan istilah Shortest-Remaining-Time-First (SRTF) SJF dapat dinilai optimal karena memberikan minimum AWT untuk sejumlah proses yang ada dalam CPU Universitas Kristen Maranatha -- IT Department 6 Sistem Operasi Komputer Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive) P1 0 P3 3 7 P4 P2 8 12 16 Average waiting time = (0 + 6 + 3 + 7)/4 = 4 Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive) P1 0 P2 2 P3 4 P2 5 P4 7 P1 11 16 Average waiting time = (9 + 1 + 0 +2)/4 = 3 Universitas Kristen Maranatha -- IT Department 7 Sistem Operasi Komputer SJF optimal namun sulit diimplementasikan Estimasi CPU burst yang akan datang: menggunakan perhitungan rata-rata exponensial dari lama CPU burst yang sudah lewat τ n+1 = α tn + (1 − α )τn 1. t n = actual lenght of n th CPU burst 2. τ n +1 = predicted value for the next CPU burst 3. α , 0 ≤ α ≤ 1 α = 0.5; t1 = 6; τ1 = 10 Universitas Kristen Maranatha -- IT Department 8 Sistem Operasi Komputer Nomor prioritas (integer) diberikan untuk setiap proses CPU dialokasikan untuk proses dengan prioritas terbesar (nomor terkecil), bisa preemptive dan bisa pula non-preemptive SJF adalah bentuk khusus priority scheduling, dengan prioritas dihitung dari perkiraan CPU burst berikutnya Problem: starvation proses dengan prioritas rendah mungkin saja tidak pernah diproses di CPU Solusi: aging menaikkan prioritas setiap kali suatu proses dijalankan Time sharing: setiap proses mendapat quantum waktu CPU, antara 10-100 ms Setelah quantum selesai, CPU diserahkan ke proses berikutnya (preemptive), dan proses yang sedang berlangsung ditaruh pada akhir ready queue Jika ada n proses dalam ready queue dan waktu quantum q, maka setiap proses mendapat 1/n waktu CPU dengan nilai q setiap kalinya Waktu tunggu proses tidak lebih dari (n-1)*q Performance: q besar FCFS q kecil turnaround time besar (banyak terjadi context switching) Universitas Kristen Maranatha -- IT Department 9 Sistem Operasi Komputer Process Burst Time P1 53 P2 17 P3 68 P4 24 Gantt chart penjadwalan P1 0 P2 20 P3 37 P4 57 P1 77 P3 97 117 P4 P1 121 134 P3 P3 154 162 Biasanya, rata-rata turnaround time lebih tinggi daripada SJF, namun dengan responsi yang lebih baik Universitas Kristen Maranatha -- IT Department 10 Sistem Operasi Komputer Membagi proses dalam grup-grup Tiap grup dikerjakan dengan algoritma penjadwalan yang berbeda Ready queue dibagi menjadi beberapa queue secara terpisah Foreground RR Background FCFS Foreground (interactive) Background (batch) Prioritas yang tetap (foreground ke background), mungkin terjadi starvation Time-slice setiap queue memiliki CPU time yang tetap, yang kemudian akan dijadwalkan di antara proses yang ada, misalnya: 80% untuk foreground (RR) dan 20% untuk background (FCFS) Universitas Kristen Maranatha -- IT Department 11 Sistem Operasi Komputer Proses yang ada pada suatu queue dapat pindah ke queue lain Aging dapat pula diimplementasikan Parameter: Jumlah queue Algoritma penjadwalan untuk setiap queue Metode untuk menentukan suatu proses akan diupgrade Metode untuk menentukan suatu proses akan diturunkan Metode untuk menentukan letak queue, jika ada proses yang akan dilayani Universitas Kristen Maranatha -- IT Department 12 Sistem Operasi Komputer Tiga queue: Q0 = time quantum 8 ms Q1 = time quantum 16 ms Q2 = FCFS Scheduling: Proses baru memasuki queue Q0 dengan layanan FCFS. Ketika mendapat CPU dan jika tidak selesai dalam waktu 8 ms, akan turun ke Q1 Di Q1, proses mendapat layanan FCFS, dan mendapat 16 ms CPU tambahan. Jika tidak selesai proses dipreempted dan turun ke Q2 Universitas Kristen Maranatha -- IT Department 13 Sistem Operasi Komputer Jaminan kinerja dan kelangsungan yang baik Contoh: n user login tiap user 1/n CPU time Jumlah CPU total time = 20 ms, tiap user 4 ms Menjalankan proses dengan rasio yang paling rendah hingga proses tersebut mendapat rasio yang melebihi rasio proses yang sebelumnya (satu tingkat lebih tinggi) User CPU time (ms) CPU actual (ms) rasio A 5 3 ¾ B 4 6 6/4 C 8 2 2/4 D 1 1 ¼ E 2 1 ¼ Waktu terbuang untuk switching (swapping proses di memori utama dan disk) Solusi: Two level scheduling himpunan bagian proses yang siap dieksekusi diload ke memori utama Scheduler memilih proses pada himpunan bagian ini Secara periodis, higher level scheduler mengganti proses yang telah lama tinggal di memori utama dengan proses yang telah cukup lama menunggu di disk Universitas Kristen Maranatha -- IT Department 14 Sistem Operasi Komputer a, b, c, d Proses di memori utama e, f, g, h b, c, f, g e, f, g, h Proses di disk a, b, c, d a, d, e, h Time slice Proses melahirkan proses lainnya (children/ fork) Tiap child memiliki permintaan yang berbeda (fungsi yang berbeda) Semua diputuskan oleh scheduler Solusi: Policy user diijinkan memberi kebijakan kontrol dan prioritas pada suatu child Mechanism pelaksanaan policy, dilaksanakan oleh kernel Universitas Kristen Maranatha -- IT Department 15 Sistem Operasi Komputer Procedure A( ) { while (true) { <hitung A1>; write(x); <hitung A2>; read(y); } } // p11 // p12 // p13 // p14 Procedure B( ) { while (true) { read(x); <hitung B1>; write(y); <hitung B2>; } } // p21 // p22 // p23 // p24 • x dan y adalah shared-variables • Dikerjakan serial (1 prosesor) atau paralel (2 prosesor) • problem: prosedur mana yang terlebih dahulu ? • solusi: procedure of processes (precedence graph) P = { pi | 1 <= i <= n } himpunan proses <. = { (pi, pj) | 1 <= i, j <= n } pasangan berurutan pada p Π = ( P, <. ) komputasi (pi, pj): pj tidak dapat dikerjakan sebelum pi selesai Tidak boleh ada looping Universitas Kristen Maranatha -- IT Department 16 Sistem Operasi Komputer p11 p12 p13 p21 p22 p23 p14 Komputasi pada Precedence Graph Π= [ (p11, p12, p13, p14, p21, p22, p23, p24), { (p11, p12), (p12, p13), (p12, p 21), (p21, p22), (p22, p23), (p23, p14), (p13, p14), (p23, p24)} ] p24 Fork (labelX) membangun proses baru dan mengerjakannya mulai dari statement yang diberi labelX Join(Cacah) menggabungkan kembali beberapa proses menjadi proses tunggal. Variabel cacah menunjukkan berapa kalo JOIN dikerjakan. Setiap kali join dikerjakan secara otomatis nilai cacah berkurang satu QUIT( ) keluar dari ekseskusi Universitas Kristen Maranatha -- IT Department 17 Sistem Operasi Komputer Procedure A&B while (true) { cacah = 1; < hitung p11 >; < hitung p12 >; FORK ( L1 ); < hitung p13 >; L2: JOIN (cacah); < hitung p14>; QUIT( ); L1: < hitung p21 >; < hitung p22 >; < hitung p23 >; FORK ( L3); GOTO (L2); L3: < hitung p24 >; QUIT ( ); Model deterministik (analisis langsung) SJF kurang dari setengah waktu tunggu rata algoritma FCFS RR nilai tengah-tengah Model pengantrian (queueing model) Implementasi (simulasi): biaya tinggi Universitas Kristen Maranatha -- IT Department 18 Sistem Operasi Komputer Penentuan prioritas setiap proses (thread) tergantung pada: Relative priority Priority classes 1. 2. 3. Tunjukkan perbedaan antara preemptive scheduling dengan non-preemptive scheduling Sebutkan hal-hal apa saja yang perlu diperhatikan dalam melakukan penjadwalan proses pada sistem multiprogramming Diketahui 4 proses P1, P2, P3 dan P4 dengan arrival time (waktu tiba) dan burst time (waktu eksekusi) sebagai berikut: Universitas Kristen Maranatha -- IT Department 19 Sistem Operasi Komputer • Proses Arrival time (ms) Burst time (ms) P1 0 6 P2 1 8 P3 2 10 P4 3 5 Gambar gantt-chart dan hitung AWT, dengan algoritma penjadwalan: FCFS, preemptive SJF, RR (dengan QT = 2 ms) Buatlah precedence graph untuk prosedur XX berikut ini: 4. Procedure XX ( ) { while (true) { x = 10; y = 3; a = y * 2; b = 2 * x – 25; c = 3 * a + x; d = 2 * c – a; e = b – 2 * d; z = e + 1; } } 5. //p1 //p2 //p3 // p4 // p5 // p6 // p7 // p8 Pada Prosedur XX di atas, buatlah urutan proses dengan menggunakan FORK-JOIN-QUIT ! Universitas Kristen Maranatha -- IT Department 20