Prasyarat Solusi Critical Section
19.3. Algoritma II
Algoritma II juga mencoba memecahkan masalah critical section untuk dua proses. Algoritma ini mengantisipasi masalah yang muncul pada algoritma I dengan mengubah penggunaan variabel turn dengan variabel flag. Variabel flag menyimpan kondisi proses mana yang boleh masuk critical section. Proses yang membutuhkan akses ke critical section akan memberikan nilai flag-nya true. Sedangkan proses yang tidak membutuhkan critical section akan men-set nilai flagnya bernilai false. Gambar 19.2. Algoritma II Suatu proses diperbolehkan mengakses critical section apabila proses lain tidak membutuhkan critical section atau flag proses lain bernilai false. Tetapi apabila proses lain membutuhkan critical section ditunjukkan dengan nilai flag-nya true, maka proses tersebut harus menunggu dan mempersilakan proses lain menggunakan critical section-nya. Disini terlihat bahwa sebelum memasuki critical section suatu proses melihat proses lain terlebih dahulu melalui flag-nya, apakah proses lain membutuhkan critical section atau tidak. Awalnya flag untuk kedua proses diinisialisai bernilai false, yang artinya kedua proses tersebut tidak membutuhkan critical section. Jika P0 ingin mengakses critical section, ia akan mengubah flag[0] menjadi true. Kemudian P0 akan mengecek apakah P1 juga membutuhkan critical section, jika flag[1] bernilai false maka P0 akan menggunakan critical section. Namun jika flag[1] bernilai true maka P0 harus menunggu P1 menggunakan critical section dan mengubah flag[1] menjadi false. 130 Pada algoritma ini masalah muncul ketika kedua proses secara bersamaan menginginkan critical section, kedua proses tersebut akan men- set masing-masing flag-nya menjadi true. P0 men-set flag[0] = true, P1 men-set flag[1] = true. Kemudian P0 akan mengecek apakah P1 membutuhkan critical section. P0 akan melihat bahwa flag[1] = true, maka P0 akan menunggu sampai P1 selesai menggunakan critical section. Namun pada saat bersamaan, P1 juga akan mengecek apakah P0 membutuhkan critical section atau tidak, ia akan melihat bahwa flag[0] = true, maka P1 juga akan menunggu P0 selesai menggunakan critical section-nya. Kondisi ini menyebabkan kedua proses yang membutuhkan critical section tersebut akan saling menunggu dan saling mempersilahkan proses lain untuk mengakses critical section, akibatnya malah tidak ada yang mengakses critical section. Kondisi ini menunjukkan bahwa Algoritma II tidak memenuhi syarat progress dan syarat bounded waiting, karena kondisi ini akan terus bertahan dan kedua proses harus menunggu selamanya untuk dapat mengakses critical section.19.4. Algoritma III
Algoritma III ditemukan oleh G.L. Petterson pada tahun 1981 dan dikenal juga sebagai Algoritma Petterson. Petterson menemukan cara yang sederhana untuk mengatur proses agar memenuhi mutual exclusion. Algoritma ini adalah solusi untuk memecahkan masalah critical section pada dua proses. Ide dari algoritma ini adalah menggabungkan variabel yang di-sharing pada Algoritma I dan Algoritma II, yaitu variabel turn dan variabel flag. Sama seperti pada Algoritma I dan II, variabel turn menunjukkan giliran proses mana yang diperbolehkan memasuki critical section dan variabel flag menunjukkan apakah suatu proses membutuhkan akses ke critical section atau tidak. Gambar 19.3. Algoritma III Awalnya flag untuk kedua proses diinisialisai bernilai false, yang artinya kedua proses tersebut tidak membutuhkan akses ke critical section. Kemudian jika suatu proses ingin memasuki critical section, ia akan mengubah flag-nya menjadi true memberikan tanda bahwa ia butuh critical section lalu proses tersebut memberikan turn kepada lawannya. Jika lawannya tidak menginginkan critical section flag-nya false, maka proses tersebut dapat menggunakan critical section, dan setelah selesai menggunakan critical section ia akan mengubah flag-nya menjadi false. Tetapi apabila proses lawannya juga menginginkan critical section maka proses lawan-lah yang dapat memasuki critical section, dan proses tersebut harus menunggu sampai proses lawan menyelesaikan critical section dan mengubah flag-nya menjadi false. Misalkan ketika P0 membutuhkan critical section, maka P0 akan mengubah flag[0] = true, lalu P0 mengubah turn = 1. Jika P1 mempunyai flag[1] = false, berapapun nilai turn maka P0 yang dapat mengakses critical section. Namun apabila P1 juga membutuhkan critical section, karena flag[1] = 131Parts
» Kumpulan Makalah | Blogger Lampung Tengah SO
» Konsep Dasar Perangkat Komputer
» Pendahuluan Hari Gini Belajar SO?
» Mengapa Mempelajari Sistem Operasi?
» Definisi Sementara Hari Gini Belajar SO?
» Sejarah Perkembangan Hari Gini Belajar SO?
» Bahan Pembahasan Tantangan Prasyarat Sasaran Pembelajaran Rangkuman
» Pendahuluan HaKI Perangkat Lunak
» Perangkat Lunak Bebas HaKI Perangkat Lunak
» Aneka Ragam HaKI HaKI Perangkat Lunak
» Lisensi Perangkat Lunak HaKI Perangkat Lunak
» Copyleft HaKI Perangkat Lunak
» Ilustrasi Lisensi Tantangan Rangkuman
» Pendahuluan Organisasi Sistem Komputer
» Prosesor Organisasi Sistem Komputer
» Penyimpan Data Organisasi Sistem Komputer
» MasukanKeluaran Organisasi Sistem Komputer
» Rangkuman Organisasi Sistem Komputer
» Sistem Operasi Java Bahasa Java
» Dasar Pemrograman Bahasa Java
» Atribut Protected Bahasa Java
» Konstruktor Metode Bahasa Java
» Inheritance Abstract Package Interface
» Pendahuluan Komponen Sistem Operasi
» Kegiatan Sistem Operasi Komponen Sistem Operasi
» Manajemen Proses Komponen Sistem Operasi
» Manajemen Memori Utama Komponen Sistem Operasi
» Harganya murah. Perbandingan harga yang dibayar oleh pengguna per byte data jauh lebih
» Menyimpan berkas secara permanen. Data atau berkas diletakkan secara fisik pada piringan
» Menyimpan program yang belum dieksekusi prosesor. Jika sebuah program ingin dieksekusi
» Pendahuluan Layanan dan Antarmuka
» Jenis Layanan Layanan dan Antarmuka
» Antarmuka Layanan dan Antarmuka
» System Calls API Application Program Interface
» Jenis System Calls Layanan dan Antarmuka
» System Programs Layanan dan Antarmuka
» Application Programs Layanan dan Antarmuka
» Rangkuman Layanan dan Antarmuka
» Pendahuluan Struktur Sistem Operasi
» Struktur Sederhana Struktur Sistem Operasi
» Struktur Berlapis Struktur Sistem Operasi
» Mikro Kernel Struktur Sistem Operasi
» Portability. Pada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di
» Reliability. Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin
» Support for object-oriendted OS. Model kernel mikro sangat sesuai untuk mengembangkan
» Proses Boot Struktur Sistem Operasi
» Kompilasi Kernel Struktur Sistem Operasi
» Mengekstrak kernel. Source code kernel Anda yang lama bisa dilihat di direktori usrsrclinux.
» Buat symbolic link. Struktur Sistem Operasi
» Konfigurasi kernel. Sebelum proses kompilasi, anda memiliki 2 pilihan, yaitu membuat
» Kompilasi. Jalankan perintah make bzImag Proses kompilasi kernel bisa memakan waktu
» Komputer Meja Struktur Sistem Operasi
» Sistem Prosesor Jamak Struktur Sistem Operasi
» Lebih ekonomis. Daripada sistem dengan banyak prosesor tunggal, karena bisa berbagi memori,
» Peningkatan kehandalan. Jika pekerjaan terbagi rata, maka kegagalan salah satu prosesor bisa
» Availability. Karena semua prosesor menjalankan tugas yang sama, maka kegagalan pada salah
» Incremental growth. Performa bisa ditingkatkan dengan menambah prosesor lagi.
» Sistem Terdistribusi dan Terkluster
» Computation speedup. Jika suatu proses komputasi bisa dipecah-pecah menjadi sejumlah bagian
» Reliability. Jika satu komputer mengalami kegagalan, maka secara keseluruhan sistem masih
» Communication. Karena satu komputer terhubung dengan komputer-komputer laiinya, sangat
» Incremental scalability. Kluster diatur sedemikian rupa sehingga bisa dupgrade sedikit demi
» High availability. Karena setiap komputer yang tergabung adalah standalone mandiri, maka
» Superior priceperformance. Dengan konfigurasi yang tepat, dimungkinkan untuk membangun
» Sistem Waktu Nyata Struktur Sistem Operasi
» Aspek Lainnya Struktur Sistem Operasi
» Rangkuman Struktur Sistem Operasi
» Pendahuluan Virtual Machine VM
» Virtualisasi Penuh Virtual Machine VM
» VMware Xen VMM Virtual Machine VM
» .NET Framework Virtual Machine VM
» Efisien. Kemudahan pada saat proses pembuatan aplikasi, akan berimplikasi terhadap efisiensi
» Konsisten. Kemudahan-kemudahan pada saat proses pembuatan aplikasi, juga bisa berimplikasi
» Microkernel. Kumpulan Makalah | Blogger Lampung Tengah SO
» Hybrid modifikasi dari microkernel. Kernel yang mirip microkernel, tetapi ia juga
» Credentials. Setiap proses harus memiliki hubungan antara user ID dengan group ID yang
» Pembentukan Thread Thread Java
» Penggabungan Thread Thread Java
» Pembatalan Thread Thread Java
» Penjadwalan Preemptive Penjadwalan Non Preemptive
» Context switching. Kumpulan Makalah | Blogger Lampung Tengah SO
» Throughput. Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan
» Turnaround Time. Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama
» Waiting Time. Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan
» Response Time. Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik
» FCFS First Come First Served
» Pendahuluan Penjadwalan Prosesor Jamak
» Penjadwalan MasterSlave Penjadwalan Prosesor Jamak
» Penjadwalan SMP Affinity dan Load Ballancing
» Symetric Multithreading Penjadwalan Prosesor Jamak
» Multicore Penjadwalan Prosesor Jamak
» Rangkuman Penjadwalan Prosesor Jamak
» Pendahuluan Deterministic Modelling Evaluasi dan Ilustrasi
» Queueing Modelling Evaluasi dan Ilustrasi
» Simulasi Implementasi Evaluasi dan Ilustrasi
» Ilustrasi: Linux Evaluasi dan Ilustrasi
» Ilustrasi: Solaris Evaluasi dan Ilustrasi
» System SYS. Solaris menggunakan system class untuk menjalankan kernel proses, seperti
» Time Sharing TS. Time sharing class merupakan default class untuk proses dan kernel thread
» Interactive IA. Kelas Interaktif menggunakan aturan yang sama dengan aturan dengan kelas
» Fixed Priority FX. Thread di kelas fixed priority memiliki range prioritas 0-59 yang sama
» Komunikasi Antar Proses Konsep Interaksi
» Komunikasi tidak langsung. Berbeda dengan komunikasi langsung, jenis komunikasi ini
» Deadlock. Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses
» Pendahuluan Race Condition Critical Section
» Prasyarat Solusi Critical Section
» Terjadi kemajuan progress . Jika tidak ada proses yang sedang menjalankan critical
» Ada batas waktu tunggu bounded waiting . Jika seandainya ada proses yang sedang
» Interupsi. Interupsi adalah suatu masalah bila mengandung critical section-nya sendiri. Timer
» Page Fault. Page faults adalah suatu masalah yang potensial; jika sebuah kernel routine
» Kernel code memanggil fungsi penjadwalan sendiri. setiap waktu banyak proses yang berjalan
» Mutual Exclusion. 2. Terjadi kemajuan progress .
» Ada batas waktu tunggu bounded waiting.
» Pendahuluan TestAndSet Perangkat Sinkronisasi
» Counting semaphore. Semafor ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem
» Mutual Exclusion. Sesuai dengan prinsip mutual exclusion, jika suatu thread sedang berada
» Cooperation. Cooperation berarti membantu beberapa thread untuk bekerjasama mencapai
» Model Sistem Transaksi Atomik
» Pemulihan Berbasis Log Transaksi Atomik
» Checkpoint Serialisasi Transaksi Atomik
» Protokol Penguncian Transaksi Atomik
» Exclusive. Jika sebuah transaksi Ti melakukan exclusive-mode lock pada data Q, maka transaksi
» Critical Section Sinkronisasi Linux
» Penyebab Konkurensi Kernel Integer Atomik
» Spin Locks Sinkronisasi Linux
» Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock
» Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik
» Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca
» Pendeteksian dan Pemulihan. Pada sistem yang sedang berada pada kondisi deadlock,
» Mutual Exclusion. Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar
» Hold and Wait. Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses
» No Preemption. Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption.
» Proses . Kumpulan Makalah | Blogger Lampung Tengah SO
» Pendahuluan Penggunaan Semafor Bounded-Buffer
» Pendahuluan Penggunaan Semafor Sinkronisasi Dengan Semafor
» Program Sinkronisasi Dengan Semafor
Show more