Sistem Operasi Pertemuan 11
Konkurensi Terdapat dua proses atau lebih pada saat yang sama Ilustrasi P1 P2 TIMELINE 1
Masalah pada Konkurensi Mutual Exclusion Deadlock Starvation Sinkronisasi
Lingkup Konkurensi Alokasi layanan prosessor untuk proses-proses. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya. Komunikasi antar proses Sinkronisasi aktivitas banyak proses
Konteks konkurensi pada banyak aplikasi Implementasi TCP/IP pada komputer dipecah menjadi banyak aplikasi yg dpt saling bekerja sama, misalnya : Aplikasi pppd, daemon yg bertugas menjaga atau melakukan transfer data lewat kanal protokol point to point. Aplikasi diald, daemon yg bertugas secara otomatis menghidup matikan modem atau saluran serial sehingga seolah-olah pemakai terhubung terus ke ISP Aplikasi finger, ping, pine, Netscape, dan aplikasi-aplikasi jaringan lainnya bekerjasama dengan pppd dan diald sehingga memungkinkan pertukaran data dengan komputer remote secara nyaman. Aplikasi ifwadm akan selalu waspada untuk memeriksa setiap paket yang keluar dan atau masuk jaringan yang berasal atau menuju aplikasi tertentu sehingga keamanan jaringan lebih terjaga.
Konteks konkurensi untuk strukturisasi aplikasi Perluasan prinsip perancangan modular dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses maka masing- masing proses menyediakan satu layanan spesifik tertentu.
Konteks konkurensi untuk strukturisasi satu proses Untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yg independen. Thread-thread tersebut harus dapat bekerja sama untuk mencapai tujuan proses.
Konteks Konkurensi untuk Strukturisasi Sistem Operasi Keunggulan strukturisasi dapat juga diterapkan ke pemograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses.
Hal-hal yang mempengaruhi kecepatan proses Aktivitas-aktivitas proses lain Cara sistem operasi menangani interupsi Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi
KESULITAN YANG MUNCUL AKIBAT KONKURENSI Pemakaian bersama sumber daya global Jika menggunakan variabel global yang sama serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap dua proses variabel bersama menjadi kritis Pengelolaan alokasi sumber daya agar optimal Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A ditunda(suspend) sebelum menggunakan kanal itu. Jika sistem operasi mempunyai kebijaksanaan mengunci kanal (sehingga tidak membolehkan pemakaian oleh lainnya) dan mencegah proses-proses lain menggunakan kanal itu maka tindakan ini jelas hanya menghasilkan inefiiensi sistem komputer Pencarian kesalahan pemograman Pencarian kesalahan pada pemograman konkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen
HAL-HAL YANG DILAKUKAN SISTEM OPERASI UNTUK MENANGANI PROSES-PROSES KONKUREN MENGETAHUI PROSES-PROSES YANG AKTIF Sistem operasi mengelola senarai proses. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang diimplementasikan sistem operasi ALOKASI DAN DEALOKASI BERAGAM SUMBER DAYA UNTUK TIAP PROSES Sumber daya yang harus dikelola antara lain : Waktu prosessor Memori Berkas-berkas Peralatan masukan/keluaran dll PROTEKSI DATA DAN SUMBER DAYA FISIK PROSES Melindungi data dan sumber daya fisik masing-masing proses dari gangguan(interferensi) proses lain HASIL-HASIL PROSES HARUS INDEPENDEN Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan
MUTUAL EXCLUSION Ilustrasi R P1 P2 P2 P3 P4 TIMELINE CRITICAL SECTION Mutual Exclusion adalah suatu kondisi yang terdapat sekumpulan proses, tetapi hanya salah satu proses saja yang dapat mengakses sumber daya tertentu atau melakukan fungsi tertentu pada suatu saat tertentu. P2 meminta sumber daya R Sumber daya kritis hanya dpt melayani satu proses Ilustrasi R P1 P2 P2 P3 P4 TIMELINE CRITICAL SECTION 1
Mutual Exclusion Pada printer sumber dayanya hanya dapat digunakan satu proses pada satu saat. Sumber daya ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut sedang memasuki critical region/section. Dengan demikian, hanya satu program pada satu saat yang diijinkan masuk critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini karena maksud program tidak dapat diketahui oleh sistem operasi. Sistem operasi memberikan fasilitas untuk pemrograman agar dapat memberikan indikasi keberadaan critical region. Sistem operasi menyediakan layanan (berupa system call) untuk mencegah proses masuk critical region yang sedang dimasuki proses lain. Pemogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme tertentu untuk mencegah proses lain masuk critical region yang sedang dipakai proses.
PERSYARATAN MUTUAL EXCLUSION Mutual exclusion harus dilaksanakan : diantara sejumlah proses yang memiliki bagian kritis bagi sumber daya yang sama atau objek bagi pakai, pada suatu saat tertentu hanya sebuah proses yang diizinkan memasuki bagian kritisnya. Suatu proses berhenti di dalam bagian kritisnya tidak boleh mengganggu proses lainnya. Suatu proses yang memerlukan akses ke bagian kritis tidak boleh di delay kan dalam waktu yang tidak tertentu : tidak ada deadlock atau starvation. Apabila di dalam bagian kritis tidak ada proses, proses yang ingin masuk ke dalam bagian kritisnya harus diizinkan masuk tanpa delay. Tidak ada asumsi dibuat tentang kecepatan proses relatif atau jumlah prosessor. Suatu proses berada didalam bagian kritisnya dalam waktu tertentu saja
Deadlock Ilustrasi deadlock. misalnya, Dua proses , P1 dan P2 Dua sumber daya kritis R1 dan R2 Proses P1 dan P2 harus mengakses kedua sumber daya Kondisi berikut dapat terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2 Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya yang lainnya, selamanya. Tidak ada proses yg dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yg tidak pernah diperolehnya. Keduanya tidak membuat kemajuan apapun. Kedua proses dalam kondisi deadlock. Kondisi deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semua yg terlibat tidak dapat mengakhiri prosesnya secara benar. Beragam mekanisme diusulkan untuk mengatasi kondisi deadlock.
Skenario yang menimbulkan deadlock : P1 dialokasikan ke R1 P2 dialokasikan ke R2 Kemudian : P1 sambil masih menggenggam R1, meminta R2. P2 sambil masih menggenggam R2, meminta R1. Kejadian ini mengakibatkan deadlock karena sama-sama proses P1dan P2 akan saling menunggu. Graph deadlock ini digambarkan seperti graph melingkar
Ilustrasi Deadlock R2 diberikan ke P2 R1 diberikan ke P1 P1 sambil masih menggenggam R1, meminta R2. P2 sambil masih menggenggam R2, meminta R1. Kejadian ini mengakibatkan deadlock karena sama-sama proses P1 dan P2 akan saling menunggu. P2 R2 diberikan ke P2
Starvation Ilustrasi Starvation. Misalnya : Skenario berikut terjadi : Terdapat tiga proses P1, P2 dan P3 P1, P2, dan P3 memerlukan pengaksesan sumber daya R secara periodik. Skenario berikut terjadi : P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R. Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R. Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R. Jika pemberian hak akses bergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meskipun tidak ada deadlock. Pada situasi ini, P2 mengalami starvation.
Ilustrasi Starvation 1 R P1 P1 P3 P2 TIMELINE CRITICAL SECTION 1 2 R 1 2 R P1 P3 P3 P2 TIMELINE CRITICAL SECTION 1
Ilustrasi Starvation 3 R P1 P1 P3 P2 TIMELINE CRITICAL SECTION 1 ..n.. 1 ..n.. R P1 P3 P2 TIMELINE CRITICAL SECTION : -( 1
Masalah klasik konkurensi Masalah bounded Buffer (Producer-consumer) Masalah Reader and Writers Masalah Dining Philosopher Masalah Sleeping Barber