Sabs UTDocs
Msim4201

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:

  1. Mutual Exclusion: Jika satu proses sedang di critical section, tidak ada proses lain yang dapat masuk ke critical section mereka.
  2. Progress: Jika tidak ada proses di critical section dan ada proses yang ingin masuk, pemilihan proses berikutnya tidak boleh tertunda tanpa batas.
  3. Bounded Waiting: Ada batasan waktu tunggu bagi setiap proses untuk memasuki critical section.

Solusi Permasalahan Critical Section

Beberapa metode untuk mengatasi masalah critical section:

  1. Solusi Peterson: Menggunakan variabel int turn dan Boolean flag[2] untuk dua proses. Algoritma ini memastikan mutual exclusion, progress, dan bounded waiting.
  2. Penggunaan Kunci (Lock): Proses mendapatkan kunci sebelum masuk critical section dan melepaskannya setelah selesai.
    do {
    acquire lock
    critical section
    release lock
    remainder section
    } while (TRUE);
  3. Sinkronisasi Perangkat Keras: Menggunakan instruksi mesin atomic non-interruptible seperti tsl (test and set lock), tas (test and set), atau cs (compare and set) yang mengunci bus selama eksekusi.
  4. Solusi dengan instruksi TestAndSet: Fungsi TestAndSet atomic yang mengubah nilai boolean target menjadi TRUE dan 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 nilai S. Jika S menjadi non-positif, proses di-blok.
    wait (S) {
    while S <= 0
    ; // no-op
    S--;
    }
  • signal(S): Menaikkan nilai S.

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:

  1. Mutual exclusion: Hanya satu proses dapat menggunakan sumber daya pada satu waktu.
  2. Hold and Wait: Proses memegang setidaknya satu sumber daya dan menunggu sumber daya tambahan yang dipegang proses lain.
  3. No Preemption: Sumber daya hanya dapat dilepaskan oleh proses yang memegangnya setelah selesai tugas.
  4. Circular Wait: Ada rantai melingkar proses di mana setiap proses menunggu sumber daya yang dipegang oleh proses berikutnya dalam rantai.

Penanganan Deadlock

  1. Mencegah deadlock (dengan memastikan salah satu dari 4 kondisi tidak terpenuhi).
  2. Memungkinkan deadlock terjadi, lalu memulihkan (recovery).
  3. 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

  1. Penjadwalan Non-Preemptive: Proses dieksekusi hingga selesai tanpa dapat disela. Terjadi pada peralihan status:
    • Berjalan (running) ke tunggu (waiting)
    • Selesai/berhenti (terminate)
  2. 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

  1. CPU Utilization: Tingkat kesibukan CPU (dinyatakan dalam persen 0-100%). Penjadwalan optimal memaksimalkan nilai ini.
  2. Throughput: Jumlah proses yang selesai per satuan waktu. Penjadwalan optimal memaksimalkan nilai ini.
  3. Turnaround Time: Total waktu dari proses datang hingga selesai dieksekusi. Penjadwalan optimal meminimalkan nilai ini.
  4. Waiting Time: Total waktu proses menunggu dalam ready queue. Penjadwalan optimal meminimalkan nilai ini.
  5. Response Time: Waktu dari proses datang hingga respon pertama diterima/dihasilkan. Penjadwalan optimal meminimalkan nilai ini.

Algoritma Penjadwalan

  1. First Come First Served (FCFS): Proses dieksekusi berdasarkan waktu kedatangan. Proses yang datang duluan dijalankan duluan.
  2. 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.
  3. 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).
  4. Round Robin (RR): Setiap proses mendapat jatah waktu CPU (time quantum), biasanya 10-100 milidetik. Setelah quantum habis, proses ditunda dan masuk kembali ke akhir ready queue.
    • Jika quantum terlalu besar, RR menyerupai FCFS.
    • Jika quantum terlalu kecil, terjadi overhead karena seringnya context switch.

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() serta signal() 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 meminimalkan Turnaround 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

Tes Formatif 1Kegiatan 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 ...

0/15 soal dijawab

Tes Formatif 2 — Kegiatan Belajar 2

Tes Formatif 2Kegiatan 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 ...

0/20 soal dijawab

On this page