MSIM4201 - Modul 4
Ringkasan materi Sinkronisasi dan Penjadwalan pada Sistem Operasi untuk persiapan UAS MSIM4201
Manajemen Proses: Sinkronisasi dan Penjadwalan
Sinkronisasi Sistem Operasi
Akses pada suatu data oleh beberapa proses secara bersamaan dapat mengakibatkan inkonsistensi nilai pada data (race condition). Konsistensi data dapat diperoleh dengan menerapkan mekanisme yang menjamin urutan eksekusi yang kooperatif.
Sinkronisasi bertujuan untuk menjaga konsistensi data dengan mengatur urutan eksekusi proses-proses yang mengakses atau memanipulasi data bersama (shared data).
Permasalahan Critical Section
Setiap proses memiliki segmen yang disebut critical section, yaitu bagian kode yang mengakses atau memanipulasi data bersama. Jika beberapa proses menjalankan critical section secara bersamaan, terjadi race condition dan inkonsistensi data. Solusi critical section harus memenuhi 3 syarat:
- Mutual Exclusion: Jika satu proses sedang di
critical section, tidak ada proses lain yang dapat masuk kecritical sectionmereka. - Progress: Jika tidak ada proses di
critical sectiondan ada proses yang ingin masuk, pemilihan proses berikutnya tidak boleh tertunda tanpa batas. - Bounded Waiting: Ada batasan waktu tunggu bagi setiap proses untuk memasuki
critical section.
Solusi Permasalahan Critical Section
Beberapa metode untuk mengatasi masalah critical section:
- Solusi Peterson: Menggunakan variabel
int turndanBoolean flag[2]untuk dua proses. Algoritma ini memastikanmutual exclusion,progress, danbounded waiting. - Penggunaan Kunci (Lock): Proses mendapatkan kunci sebelum masuk
critical sectiondan melepaskannya setelah selesai.do { acquire lock critical section release lock remainder section } while (TRUE); - Sinkronisasi Perangkat Keras: Menggunakan instruksi mesin atomic non-interruptible seperti
tsl (test and set lock),tas (test and set), ataucs (compare and set)yang mengunci bus selama eksekusi. - Solusi dengan instruksi TestAndSet: Fungsi
TestAndSetatomic yang mengubah nilai boolean target menjadiTRUEdan mengembalikan nilai lama.boolean TestAndSet (boolean *target) { boolean rv = *target; *target = TRUE; return rv; }
Semaphore
Semaphore adalah metode sinkronisasi yang tidak memerlukan busy waiting. Konsep ini menggunakan variabel integer S (semaphore) dan dua operator atomic:
wait(S): Mengurangi nilaiS. JikaSmenjadi non-positif, proses di-blok.wait (S) { while S <= 0 ; // no-op S--; }signal(S): Menaikkan nilaiS.
Semaphore dibagi menjadi:
- Counting semaphore: Nilai integer tak terbatas.
- Binary semaphore (mutex locks): Nilai hanya 0 atau 1, lebih sederhana.
Implementasi semaphore tanpa busy waiting menggunakan antrian tunggu (waiting queue) dan operasi block() serta wakeup().
Deadlock dan Starvation
- Deadlock: Situasi di mana dua atau lebih proses menunggu tanpa batas waktu karena saling memegang sumber daya yang dibutuhkan proses lain.
- Starvation: Situasi di mana satu proses tidak pernah mendapatkan sumber daya yang diminta atau tidak dapat menjalankan
critical section-nya dalam waktu yang sangat lama.
Karakteristik Deadlock
Deadlock terjadi jika empat kondisi ini terpenuhi secara bersamaan:
- Mutual exclusion: Hanya satu proses dapat menggunakan sumber daya pada satu waktu.
- Hold and Wait: Proses memegang setidaknya satu sumber daya dan menunggu sumber daya tambahan yang dipegang proses lain.
- No Preemption: Sumber daya hanya dapat dilepaskan oleh proses yang memegangnya setelah selesai tugas.
- Circular Wait: Ada rantai melingkar proses di mana setiap proses menunggu sumber daya yang dipegang oleh proses berikutnya dalam rantai.
Penanganan Deadlock
- Mencegah deadlock (dengan memastikan salah satu dari 4 kondisi tidak terpenuhi).
- Memungkinkan deadlock terjadi, lalu memulihkan (recovery).
- Mengabaikan masalah (digunakan oleh sebagian besar OS seperti UNIX).
Penjadwalan
Penjadwalan CPU bertujuan untuk memaksimalkan utilitas CPU melalui multiprogramming, yaitu mengeksekusi beberapa proses secara bergantian dengan cepat. Penjadwal CPU memilih proses dari ready queue dan mengalokasikannya ke CPU.
Jenis Penjadwalan
- Penjadwalan Non-Preemptive: Proses dieksekusi hingga selesai tanpa dapat disela. Terjadi pada peralihan status:
- Berjalan (running) ke tunggu (waiting)
- Selesai/berhenti (terminate)
- Penjadwalan Preemptive: Proses yang sedang dieksekusi dapat disela oleh proses baru dengan ketentuan tertentu (misal: prioritas lebih tinggi). Terjadi pada peralihan status:
- Berjalan (running) ke siap (ready)
- Tunggu (waiting) ke siap (ready)
Kriteria Penjadwalan
- CPU Utilization: Tingkat kesibukan CPU (dinyatakan dalam persen 0-100%). Penjadwalan optimal memaksimalkan nilai ini.
- Throughput: Jumlah proses yang selesai per satuan waktu. Penjadwalan optimal memaksimalkan nilai ini.
- Turnaround Time: Total waktu dari proses datang hingga selesai dieksekusi. Penjadwalan optimal meminimalkan nilai ini.
- Waiting Time: Total waktu proses menunggu dalam ready queue. Penjadwalan optimal meminimalkan nilai ini.
- Response Time: Waktu dari proses datang hingga respon pertama diterima/dihasilkan. Penjadwalan optimal meminimalkan nilai ini.
Algoritma Penjadwalan
- First Come First Served (FCFS): Proses dieksekusi berdasarkan waktu kedatangan. Proses yang datang duluan dijalankan duluan.
- Shortest Job First (SJF): CPU dialokasikan kepada proses dengan burst time (waktu eksekusi) terkecil berikutnya. Bisa Non-Preemptive atau Preemptive.
- Preemptive SJF: Jika proses baru datang dengan burst time lebih pendek dari sisa waktu proses berjalan, proses berjalan disela.
- Prioritas: CPU dialokasikan kepada proses dengan prioritas tertinggi. Bisa Non-Preemptive atau Preemptive.
- Permasalahan: Starvation (proses prioritas rendah tidak pernah dieksekusi).
- Solusi: Aging (prioritas proses ditingkatkan seiring waktu).
- Round Robin (RR): Setiap proses mendapat jatah waktu CPU (time quantum), biasanya 10-100 milidetik. Setelah
quantumhabis, proses ditunda dan masuk kembali ke akhir ready queue.- Jika
quantumterlalu besar, RR menyerupai FCFS. - Jika
quantumterlalu kecil, terjadi overhead karena seringnya context switch.
- Jika
Poin Penting
- Sinkronisasi diperlukan untuk mencegah inkonsistensi data akibat race condition dalam sistem operasi.
- Critical section adalah bagian kode yang mengakses data bersama, dan masuknya ke dalamnya harus diatur.
- Tiga syarat penyelesaian critical section adalah Mutual Exclusion, Progress, dan Bounded Waiting.
- Semaphore menggunakan nilai integer dan operasi
wait()sertasignal()untuk mengatur akses ke sumber daya, dengan implementasi waiting queue untuk menghindari busy waiting. - Deadlock terjadi ketika empat kondisi (Mutual Exclusion, Hold and Wait, No Preemption, Circular Wait) terpenuhi secara bersamaan.
- Starvation adalah kondisi di mana proses tidak pernah mendapatkan akses sumber daya. Aging dapat mengatasi ini dalam penjadwalan prioritas.
- Penjadwalan CPU bertujuan memaksimalkan
CPU Utilization,Throughput, dan meminimalkanTurnaround Time,Waiting Time,Response Time. - Algoritma penjadwalan utama meliputi FCFS, SJF, Prioritas, dan Round Robin, masing-masing memiliki karakteristik preemptive atau non-preemptive.
Tes Formatif 1 — Kegiatan Belajar 1
1.Akses pada suatu data oleh beberapa proses secara bersama dapat mengakibatkan inkonsistensi nilai pada data. Inkonsistensi data dapat diperoleh dengan cara ...
2.Solusi Permasalahan Critical section ini harus memenuhi syarat-syarat berikut, kecuali ...
3.Salah satu cara sinkronisasi yang tidak membutuhkan penungguan busy waiting adalah ...
4.Suatu operasi harus dapat dijamin sebagai satu kesatuan proses yang tidak dapat dipisahkan atau disela, hal ini disebut dengan ...
5.Sinkronisasi menjadi hal yang penting karena ...
6.Dalam konsep sinkronisasi, suatu sistem operasi harus dapat melakukan hal-hal berikut, kecuali ...
7.Terdapat beberapa algoritma yang dapat menjadi solusi dari critical section. Dari beberapa algoritma berikut, algoritma yang memerlukan keterlibatan secara langsung dari perangkat keras adalah ...
8.Dalam pengimplementasian Semaphore, terdapat antrian tunggu yang memiliki dua item data, yaitu ...
9.Dalam pengimplementasian Semaphore sehingga tidak terjadi busy waiting, terdapat dua operasi tambahan, yaitu ...
10.Deadlock dapat timbul jika terdapat kondisi-kondisi berikut, kecuali ...
11.Terdapat beberapa cara untuk mengatasi deadlock. Dari pilihan jawaban berikut, manakah yang paling tepat ...
12.Agar tidak terjadi deadlock, maka perlu dilakukan pencegahan-pencegahan. Dari pilihan jawaban berikut, yang paling tidak tepat adalah ...
13.Di dalam sistem operasi dikenal istilah mutual exclusion, yaitu suatu cara atau kondisi untuk memastikan dapat dipakainya sumber daya bersama ...
14.Syarat yang tidak perlu ada di pembentukan mutual exclusion adalah ...
15.Fungsi wait() pada semaphore antara lain berfungsi untuk ...
Tes Formatif 2 — Kegiatan Belajar 2
1.Proses yang sudah siap dan sedang menunggu untuk dieksekusi CPU berada di ...
2.Algoritma Penjadwalan yang tidak memungkinkan terjadi starvation adalah ...
3.Tujuan penjadwalan CPU adalah ...
4.Mekanisme penjadwalan yang tidak memungkinkan suatu proses keluar dari CPU sebelum proses tersebut selesai dieksekusi disebut penjadwalan ...
5.Hal berikut yang tidak termasuk dalam kriteria penjadwalan adalah ...
6.Penjadwalan dikatakan optimal jika memenuhi hal-hal berikut, kecuali ...
7.Keputusan yang diambil oleh penjadwalan CPU terhadap sebuah proses berdasarkan keadaan-keadaan berikut, kecuali ...
8.Kriteria ini menghitung lamanya waktu yang dibutuhkan untuk menjalankan sebuah proses, sejak proses datang sampai proses tersebut selesai dieksekusi disebut ...
9.Jika digunakan algoritma penjadwalan First Come First Served (FCFS), maka urutan pengerjaan proses yang benar adalah ... (P1 Arrival Time: 0, Burst Time: 4; P2 Arrival Time: 1, Burst Time: 2; P3 Arrival Time: 2, Burst Time: 3)
10.Jika digunakan algoritma penjadwalan SJF non Preemptive, maka urutan pengerjaan proses yang benar adalah ... (P1 Arrival Time: 0, Burst Time: 4, Prioritas: Low; P2 Arrival Time: 1, Burst Time: 2, Prioritas: Medium; P3 Arrival Time: 2, Burst Time: 3, Prioritas: High)
11.Jika digunakan algoritma penjadwalan Prioritas non Preemptive, maka urutan pengerjaan proses yang benar adalah ... (P1 Arrival Time: 0, Burst Time: 4, Prioritas: Low; P2 Arrival Time: 1, Burst Time: 2, Prioritas: Medium; P3 Arrival Time: 2, Burst Time: 3, Prioritas: High)
12.Jika digunakan algoritma penjadwalan Prioritas - Preemptive, maka waiting time untuk proses P0 adalah ... (P0 AT: 0, BT: 5, Priority: Medium; P1 AT: 1, BT: 2, Priority: High; P2 AT: 3, BT: 2, Priority: Low; P3 AT: 5, BT: 1, Priority: High)
13.Jika digunakan algoritma penjadwalan Prioritas - Preemptive, maka rata-rata Turnaround time untuk semua proses adalah ... (P0 AT: 0, BT: 5, Priority: Medium; P1 AT: 1, BT: 2, Priority: High; P2 AT: 3, BT: 2, Priority: Low; P3 AT: 5, BT: 1, Priority: High)
14.Jika digunakan algoritma penjadwalan SJF - Preemptive, maka rata-rata Waiting time untuk semua proses adalah ... (P0 AT: 0, BT: 5; P1 AT: 1, BT: 2; P2 AT: 3, BT: 2; P3 AT: 5, BT: 1)
15.Jika digunakan algoritma penjadwalan Round Robin dengan Q = 1.5, maka rata-rata Waiting time untuk semua proses adalah ... (P0 AT: 0, BT: 5; P1 AT: 1, BT: 2; P2 AT: 3, BT: 2; P3 AT: 5, BT: 1)
16.Terdapat dua pernyataan terkait Penjadwalan Round Robin: a. Pada penjadwalan Round Robin, besar atau kecilnya nilai quantum, tidak berpengaruh pada nilai rata-rata waiting time; b. Pada penjadwalan Round Robin, jika nilai quantum terlalu kecil maka akan mengakibatkan overhead dalam context switch. Dari dua pernyataan di atas, jawaban yang tepat adalah ...
17.Terdapat dua pernyataan terkait Penjadwalan: a. Penjadwalan FCFS sebenarnya merupakan penjadwalan berdasar prioritas; b. Penjadwalan SJF sebenarnya merupakan penjadwalan berdasar prioritas. Dari dua pernyataan di atas, jawaban yang tepat adalah ...
18.Terdapat dua pernyataan terkait mekanisme non-preemptive dan preemptive: a. Mekanisme non-preemptive akan selalu menghasilkan Turnaround time yang lebih besar dari pada mekanisme preemptive. b. Penjadwalan Round Robin dengan quantum relatif kecil tidak tepat jika menggunakan mekanisme preemptive. Dari dua pernyataan di atas, jawaban yang tepat adalah ...
19.Terdapat dua pernyataan terkait mekanisme non-preemptive dan preemptive: a. Mekanisme non-preemptive akan mengakibatkan Rata-rata Response Time akan selalu sama dengan Rata-rata Waiting Time; b. Mekanisme preemptive akan mengakibatkan Rata-rata Response Time akan selalu lebih kecil dari pada Rata-rata Waiting Time. Dari dua pernyataan di atas, jawaban yang tepat ...
20.Terdapat dua pernyataan terkait penjadwalan SJF: a. Penjadwalan SJF memungkinkan terjadi starvation; b. Permasalahan starvation pada penjadwalan SJF dapat diatasi dengan mekanisme penuaan (aging). Dari dua pernyataan di atas, manakan jawaban yang tepat ...