Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehMike Bimo Telah diubah "9 tahun yang lalu
1
Konkurensi: Mutual Exclusion dan Sikronisasi
2
Dasar Proses yang berhubungan dengan thread merupakan konsep utama untuk dasar sistem operasi moderen Dasar disain sistem operasi moderen manajemen proses: Multiprogramming Multiprocessing Distributed processing
3
Kurensi Komunikasi antar proses Pemakaian sumber daya bersama
Sinkronisasi multiproses Alokasi waktu prosesor
4
Kokurensi Aplikasi – aplikasi yang banyak Struktur aplikasi
Multiprogramming Struktur aplikasi Aplikasi dapat merupakan suatu kesatuan proses-proses yang serempak (concurrent) Struktur Sistem Operasi Sistem operasi merupakan sebuah kesatuan proses atau thread
5
Kesulitan Konkurensi Berbagi sumber daya yang global
Manajemen alokasi sumberdaya Kesukaran untuk menempatkan program – program yang salah
6
Contoh Sederhana void echo() { chin = getchar(); chout = chin;
putchar(chout); }
7
Contoh Sederhana Process P1 Process P2 . . in = getchar(); .
in = getchar(); . in = getchar(); chout = chin; chout = chin; putchar(chout); . putchar(chout);
8
Yang Berhubungan Sistem Operasi
Menempati track proses yang aktif Keberhasilan penempatan dan alokasi sumber daya Waktu prosesor Memori File – file Perangkat I/O Melindungi data dan sumber daya Hasil proses harus dapat tidak terikat pada kecepatan eksekusi dari proses konkuren (serempak / bersamaan) yang lain
9
Interaksi Proses Proses mengabaikan proses yang lain
Proses yang secara tidak lansung mempedulikan proses yang lain Proses secara lansung memperhatikan proses yang lain
10
Pengaruh terhadap proses lain Masalah pengendalian potensial
Tingkat kepedulian Hubungan Pengaruh terhadap proses lain Masalah pengendalian potensial Proses mengabaikan proses yang lain Kompetisi Hasil sebuah proses tidak tergantung pada aksi proses yang lain Timing proses mungkin dapat terpengaruhi Mutual Exclusion Deadlock Starvation Proses yang secara tidak lansung mempedulikan proses yang lain Kerjasama melalui “sharing” Hasil suatu proses dapat tergantung pada informasi yang diperoleh dari proses lain Data coherence Proses secara lansung memperhatikan proses yang lain Kerjasama melalui komunikasi
11
Kompetisi antar Proses umtuk Sumberdaya
Mutual Exclusion Critical section Hanya satu program pada saat bersamaan yang diperbolehkan dalam critical section Sebagai contoh hanya satu proses pada satu waktu yang diizinkan mengirimkan perintah ke printer Deadlock Starvation
12
Kerjasama antar proses melalui Sharing
Penulisan harus dapata ekslusif satu sama lain Bagian kritis digunakan untuk menyediakan integritas data
13
Kerjasama antar proses melalui Komunikasi
Message yang lewat Mutual exclusion bukanlah sebuah kebutuhan kontrol untuk kerjasama kekurangan yang terjadi Kemungkinan untuk menemui deadlock Masing-masing proses menunggu message dari proses lain Kemungkinan menemui starvation Dua proses mengirimkan message untuk satu sama lainnya sambil menunggu mesaage yang lain
14
Kebutuhan untuk Mutual Exclusion
Hanya satu proses pada waktu yang sama diizinkan kedalam critical section untuk mendapatkan sumber daya Sebuah proses yang dihentikan (halt) dalam kondisi non-critical section harus melakukan tanpa interfensi proses yang lain Tidak terjadi deadlock atau starvation
15
Kebutuhan untuk Mutual Exclusion
Sebuah proses tidak harus tertunda aksesnya ke critical section walaupun tidak ada proses lain yang menggunakannya Tidak ada asumsi yang dibuat tentang proses kecepatan relatif atau jumlah proses Sebuah proses berada didalam critical section untuk waktu yang terbatas
16
Usaha Pertama Busy Waiting
Proses selalu memeriksa untuk melihat jika ada suatu yang dapat masuk kedalam critical section Proses tidak dapat melakukan sesuatu yang produktif sampai mendapatkan izin untuk memasuki critical section
17
Coroutine Dirancang untuk dapat mengirimkan dan mengembalikan kembali kontrol eksekusi diantara dirinya sendiri Tidak cukup mendukung proses konkuren
18
Usaha Kedua Masing-masing proses dapat menguji status lain tetapi tidak dapat mengubahnya Ketika sebuah proses ingin masuk ke critical section terlebih dahulu memeriksa proses yang lain Jika tidak ada proses lain dalam critical section, maka mereka dapat menentukan status untuk critical section Metoda ini tidak menjamin mutual exclusion Masing-masing proses dapat memeriksa tanda flag dan kemudian mulai masuk kedalam critical section pada saat yang bersamaan
19
Usaha Ketiga Mengatur tanda flag untuk masuk kedalam critical section sebelum memeriksa proses lain Jika proses lain didalam critical section ketika sudah ditandai dengan flag, proses lainnya di- block sambil menunggu proses tersebut melepaskan critical section Deadlock memungkinkan untuk terjadi ketika dua prtoses saling berebut memberi tanda flag untuk masuk ke critical section. Sekarang, masing-masing proses harus menunggu proses lain untuk melepaskan critical section
20
Usaha Keempat Sebuah proses menentukan tanda flag untuk menandai keinginannya masuk ke critical section tetapi dipersiapkan untuk mereset tanda flag-nya Proses-proses lain diperiksa. Jika mereka berada didalam wilayah critical, tanda flag di reset dan kemudian menetapkan keinginannya masuk ke wilayah critical. Kemudian diulangi sampai proses dapat masuk ke wilayah critical.
21
Usaha Keempat Memungkinkan masing-masing proses untuk menentukan flag mereka sendiri, memeriksas proses yang lain, skenario ini tidak akan bertahan sangat panjang, bukan merupakan deadlock. Ini yang tidak diinginkan
22
Mengkoreksi Solusi Masing – masing mendapatkan giliran untuk critical section Jika suatu proses menginginkan critical section, mereka menetapkan flag-nya untuk menunggu gilirannya
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.