Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

dokumen-dokumen yang mirip
Deadlock. Gambaran Umum Deadlock

Sistem Operasi. Konkurensi

Kongkurensi LPOHLVSFOTJ!

Interaksi Antar Proses

Sistem Operasi. Kongkurensi

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

MAKALAH DEADLOCK. DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom. oleh :

Sistem Operasi. Deadlock

Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

Pertemuan 4 KONKURENSI

KONGKURENSI (KEBERSAMAAN) Haryono Setiadi, ST, M.Eng

SISTEM OPERASI. Deadlock.

Sinkronisasi dan Deadlock Sistem Operasi

Masalah Deadlock. Contoh Persimpangan Jalan. Resource-Allocation Graph. Deadlock

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

KONGRUENSI. Pengertian. Mutual Exclusion. Masalah yang harus diselesaikan dalam kongruensi. (lebih. dapat saling berinteraksi.

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

BAB VIII DEADLOCK ...

7. Pengaturan Proses

Sinkronisasi & Deadlock AGUS PAMUJI. SISTEM OPERASI - Sinkronisasi & Deadlock

Sistem Operasi Komputer. Pembahasan Deadlock

Bab 7: Deadlock. Permasalahan Deadlock

PRINSIP-PRONSIP KONGKURENSI meliputi halhal berikut : 1. alokasi waktu pemrosesan untuk prosesproses

Bab 23. Deadlocks Pendahuluan. Gambar Contoh kasus deadlock pada lalu lintas di jembatan

Operating System. Synchronization & Deadlock. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

Konsep Deadlock. Kelompok 54.7 Ferry Sulistiyanto ( ) Ibnu Mubarok ( )

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

DEADLOCK = kompi loe nge-hang tuh..

Pengantar Teknologi Sistem Informasi 1b. Concurency

1/3/2013. Race Condition adalah situasi di mana beberapa proses mengakses

SISTEM OPERASI DEADLOCK

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

Komunikasi & Sinkronisasi Proses

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM VIII Deadlock

1. DEADLOCK. Diagram Graf

Pertemuan #3: Sinkronisasi dan Deadlock

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

DEADLOCK PADA WINDOWS DAN LINUX

BAB 2 LANDASAN TEORI

Sistem Operasi PENGATURAN PROSES

Konkurensi. Faikul Umam

Deadlock. Pada kasus ini juga bisa terjadi kelaparan, yaitu ada proses yang tidak terlayani

PROSES DAN THREADS DALAM SISTEM OPERASI

PEDOMAN WAWANCARA UNTUK PENGAJAR

3. Sebutkan perbedaan program dan proses berdasarkan keberadaan,sifat dan unsur pembentukan Jawab : Timeout. Dispatch.

DEADLOCK. Haryono Setiadi, ST, M.Eng

DEADLOCK. KELOMPOK : Aurora Marsye Mellawaty Vidyanita Kumalasari Y

Apa yang akan dipelajari?

Bab 3 - Manajemen Proses 3.1

Concurrency C oncurrency 2 : Deadlock dan Starvation (P ( ertemuan ke ert -15) November 2014

Proses. - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi

DEADLOCK PADA DISTRIBUSI DATA DAN PEMECAHANNYA

Sistem Operasi. Deadlock & Penanganannya. Aditya Wikan Mahastama

KOMPONEN DASAR SISTEM OPERASI, DEADLOCK, DAN IMPLEMENTASI GRAF UNTUK MENDETEKSI DEADLOCK PADA SISTEM OPERASI

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Bab 4 PENJADWALAN PROSES

BAB 2 LANDASAN TEORI. Secara umum, sebuah sistem komputer terbagi atas hardware, sistem operasi, program

Koordinasi Antar Proses

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

Sistem Operasi Pertemuan 6 Concurrency: Deadlock & Starvation. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Pencegahan Deadlock pada Alokasi Resource dalam Sistem Operasi Menggunakan Algoritma Greedy

BAB II TINJAUAN PUSTAKA

Bab 24. Diagram Graf Pendahuluan

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Deadlock Ch. 7. Deadlock. SISTIM OPERASI (Operating System) IKI Johny Moningka

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

Penjadwalan Proses. Penjadwalan bertugas memutuskan hal-hal berikut : Proses yang harus berjalan. Kapan dan selama berapa lama proses berjalan

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

Jawaban Soal UTS Instalasi dan Penggunaan Sistem Operasi Semester Genap 2014/2015 D3 Teknik Informatika, Fakultas Ilmu Terapan, Universitas Telkom

Perbedaan Proses dan Program

Kelas: Nilai (Diisi Dosen):... IF

STRUKTUR SISTEM OPERASI

Q U I Z 3B - SOLUSI Mngt Memory + Konkurensi 2. By: Endro Ariyanto (END)

STRUKTUR SISTEM OPERASI

Aplikasi Graf dalam Pendeteksian Deadlock

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Q U I Z 3A - SOLUSI Mngt Memory + Konkurensi 2. By: Endro Ariyanto (END)

SISTEM OPERASI TERDISTRIBUSI

Prio Handoko, S.Kom., M.T.I.

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

Sistem Operasi. Proses dan Thread

SISTEM OPERASI TERDISTRIBUSI

Laporan Tugas Scheduling Pengantar Sistem Operasi

Struktur Sistem Operasi

Sistem Operasi Terdistribusi

DEADLOCK & ALGORITMA OSTRICH

Konsep Dasar Sistem Operasi

Rahmady Liyantanto liyantanto.wordpress.com

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

OLEH : HASANUDDIN SIRAIT

GARIS GARIS BESAR PROGRAM PENGAJARAN/GBPP (Rencana Kegiatan Belajar Mengajar)

PEMAKAIAN GRAF UNTUK PENDETEKSIAN DAN PENCEGAHAN DEADLOCK PADA SISTEM OPERASI

SISTEM OPERASI. Review

Struktur Sistem Operasi

Konsed Dasar Penjadualan Proses

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Transkripsi:

KONGKURENSI Pengertian kongkurensi Perkembangan sistem komputer mendatang adalah menuju ke sistem multiprocessing, multiprogramming, terdistribusi dan paralel yang mengharuskan adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan masalah yang perlu perhatian dari perancang sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren). Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada. Prinsip-prinsip kongkurensi Kongkurensi merupakan kegiatan yang berhubungan dengan : Alokasi waktu pemroses untuk proses-proses yang aktif. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya. Komunikasi antar proses. Sinkronisasi aktivitas banyak proses Beberapa kesulitan yang muncul dalam konkurensi sebagai berikut: Pemakaian bersama sumber daya global, Apabila terdapat dua proses yang menggunakan variabel global yang sama serta keduanya membaca dan menulis ke variabel itu,maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis. Pengelolaan alokasi sumber daya agar optimal. Apabila proses A meminta suatu kanal masukan/keluaran tertentu dan dipenuhi, kemudian terjadi proses A di suspend sebelum menggunakan kanal tersebut. Jika sistem operasi mengunci kanal (tidak emperbolehkan atau mencegah proses lain untuk menggunakannya), maka tindakan tersebut enghasilkan inefisiensi.

Pencarian kesalahan pemrograman. Pencarian kesalahan pada pemograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen. Penanganan kongkurensi adalah dengan : Mengetahui proses-proses yang aktif. Sistem operasi mengelola senarai proses di sistem operasi. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang diimplementasikan sistem operasi. Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif. Sumber daya yang harus dikelola antara lain : Waktu pemroses Memori Berkas-berkas (file) Peralatan masukan/keluaran dan sebagainya Proteksi data dan sumber daya fisik proses. Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (interfensi) proses-proses lain. Hasil-hasil proses harus independen.hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan. Mutual Exclusion Mutual exclution merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region/section. Hanya satu program pada satu saat yang diijinkan masuk ke critical region. Pemogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahu oleh sistem operasi. Hanya saja, sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakanproses tertentu. Pemograman harus menspesifikasikan bagian-bagian critical section, sehingga sistem operasi akan menjaganya.

Pemaksaan atau pelanggaran mutual exclusion menimbulkan : Deadlock Startvation Deadlock Ilustasi deadlock, misalnya : Terdapat dua proses, yaitu P1 dan P2 dan dua sumber daya kritis, yaitu R1 dan R2. Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan kondisi ini 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 lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, yang tidak dapat membuat kemajuan apapun dan deadlock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semuanya tidak dapat mengakhiri prosesnya secara benar. Resources-Allocation Graph Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock, atau kemungkinan terjadinya. G = (V, E) Graf berisi node and edge. Node V terdiri dari proses-proses = {P1, P2, P3,...} dan Jenis resource. {R1, R2,...} Edge E adalah (Pi, Rj) atau (Ri, Pj) Sebuah panah dari process ke resource menandakan proses meminta resource. Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource telah dtempatkan ke proses. Process adalah lingkaran, resource adalah kotak; titik-titik merepresentasikan jumlah instance dari resource Dalam tipe. Meminta poin-poin ke kotak, perintah datang dari titik. Jika graf tidak berbentuk lingkaran, maka tidak ada proses yang deadlock. Jika membentuk lingkaran, maka: jika tipe resource memiliki banyak instance, maka deadlock DAPAT ada.

jika setiap tipe resource mempunyai satu instance, maka deadlock telah terjadi. Gambar. resource memiliki banyak instance, maka deadlock DAPAT ada Gambar. Telah terjadi Deadlock Strategi menghadapi Deadlock Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu: Mengabaikan adanya deadlock. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock,yaitu mengizinkan empat kondisi

deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu: Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi. Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya. Strategi Ostrich Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX dan MINIX. Metode Pencegahan Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi pencgahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk. Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi Coffman (1971). Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion, jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos.

Langkah yang digunakan adalah dengan spooling sumber daya, yaitu dengan mengantrikan job-job pada antrian dan akan dilayani satu-satu. Beberapa masalah yang mungkin terjadi adalah: Tidak semua dapat di-spool, tabel proses sendiri tidak mungkin untuk di-spool Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan, jadi mutual exclusion benar-benar tidak dapat dihilangkan. Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain, maka deadlock dapat dicegah. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya. Masalah yang mungkin terjadi: Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari awal. Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan syarat kedua, karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan ditengah jalan. Hal ini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan menjadi tidak baik. Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Terdapat dua pendekatan, yaitu: Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu, jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas.

Membuat penomoran pada proses-proses yang mengakses sumber daya. Suatu proses dimungkinkan untuk dapat meminta sumber daya kapan pun, tetapi permintaannya harus dibuat terurut. Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu sumber daya, untuk suatu proses yang kompleks dibutuhkan banyak sumber daya pada saat yang bersamaan. Sedangkan dengan penomoran masalah yang dihadapi adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak. Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan masalah-masalah yang menghambatnya, terangkum dalam tabel dibawah ini. Menghindari Deadlock Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan disuspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumbe r daya yang sebelumnya dipegang oleh proses lain telah dilepaskan. Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state. Kondisi Aman (Safe state) Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua

permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu. Kondisi Tak Aman (Unsafe state) Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. Algoritma Bankir Algoritma penjadualan ini diungkapkan oleh Dijkstra (1965) lebih dikenal dengan nama Algoritma Bankir. Model ini menggunakan suatu kota kecil sebagai percontohan dengan suatu bank sebagai sistem operasi, pinjaman sebagai sumber daya dan peminjam sebagai proses yang membutuhkan sumber daya. Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya. Beberapa kelemahan algoritma Bankir Tanenbaum (1992), Stallings (1995) dan Deitel (1990) adalah sebagai berikut: Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses pada awal eksekusi. Jumlah proses yang tidak tetap dan berubah-ubah. Sumber daya yang tadinya tersedia dapat saja menjadi tidak tersedia kembali.

Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan sinkronisasi antar proses. Algoritma ini menghendaki memberikan semua permintaan selama waktu yang berhingga. Mendeteksi Deadlock dan Memulihkan Deadlock Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock dapat segera dilakukan. Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh prosesproses yang membutuhkannya. Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Metode ini banyak digunakan pada komputer mainframe berukuran besar. Terminasi Proses Metode ini akan menghapus proses-proses yang terlibat pada kondisi deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah, sebagai berikut: Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal). Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu). Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback. Resources Preemption Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe condition. Beberapa langkahnya, yaitu: Pilih salah satu - proses dan sumber daya yang akan di-preempt.

Rollback ke safe state yang sebelumnya telah terjadi. Mencegah suatu proses agar tidak terjebak pada starvation karena metode ini. Startvation Ilustasi deadlock, misalnya :Terdapat tiga proses, yaitu P1, P2 dan P3. P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik Skenario erikut terjadi : P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R. Ketika P1 keluar dari critical section, maka 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. Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani). Interaksi antar proses Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori interaksi, yaitu : Proses-proses saling tidak peduli (independen) Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuan keduanya. Meski proses-proses tidak bekerja bersama, sistem operasi perlu mengaturpersaingan diantara proses-proses itu dalam memperoleh sumber daya yang terbatas. Contoh : Terdapat dua aplikasi yang berusaha mengakses printer yang sama, bila kedua aplikasi benar-benar mengakses printer yang sama secara bersamaan, maka kedua proses akan memperoleh hasil yang tak dikehendaki.

Sistem operasi harus mengatur pengaksesan-pengaksesan sumber daya agar tidak menyebabkan hasil yang tidak dikehendaki. Proses-proses saling mempedulikan secara tidak langsung Dimana proses-proses tidak perlu saling mempedulikan identitas prosesproses lain tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu. Proses-proses saling mempedulikan secara langsung. Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas. Persaingan diantara proses-proses untuk sumber daya Proses-proses kongkuren berkompetisi ketika proses-proses bersaing menggunakan sumber daya yang sama. Dua proses atau lebih perlu mengakses sumber daya yang sama pada suatu saat. Masing-masing proses tidak peduli keberadaan proses-proses lain dan masing-masing proses tidak dipengaruhi proses-proses lain. Pada proses-proses berkompetisi ini, tidak ada pertukaran informasi antara prosesproses itu. Eksekusi satu proses dapat berpengaruh terhadap kelakuan prosesproses yang berkompetisi. Jika dua proses ingin mengakses satu sumber daya tunggal maka sistem operasi mengalokasikan untuk salah satu proses dan mengharuskan proses lain menunggu. Proses yang ditolak pengaksesan menjadi melambat. Kasus ekstrim yang dapat terjadi adalah proses di-blocked terus-menerus sehingga tak pernah mengakses sumber daya. Proses tak pernah dapat berakhir dengan suskses. Kondisi tidak pernah dapat kesempatan dialokasikan sumber daya disebut startvation. Sistem operasi harus menghindarkan terjadinya kondisi ini. Persaingan proses-proses untuk memperoleh sumber daya menimbulkan tiga masalah : Mutual exclusion

Deadlock Startvation Pengendalian persaingan melibatkan sistem operasi, yang bertugas mengalokasikan sumber daya. Proses-proses itu sendiri harus menyatakan keperluan mutual exclusion (diprogram oleh pemrogram menggunakan system call yang disediakan sistem operasi) dan sistem operasi menangani agar tidak terlanggar kondisi mutual exclusion, serta tidak terjadi deadlock dan startvation. Kerjasama diantara proses-proses dengan pemakaian bersama Dalam kasus kerjasama pemakaian sumber daya bersama meliputi prosesproses yang saling berinteraksi tanpa dinyatakan secara eksplisit. Contoh : Banyak proses mengakses variabel atau berkas yang dipakai bersama. Proses-proses dapat menggunakan dan memperbarui data yang dipakai bersama tanpa peduli proses-proses lain. Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Proses-proes harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut. Kerjasama diantara proses-proses dalam pemakaian bersama mempunyai masalah antara lain : Mutual exclusion Deadlock Startvation Karena data disimpan pada suatu sumber daya (peralatan, memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan startvation. Perbedaannya adalah item-item data dapat diakses dengan dua mode, yaitu : Operasi pembacaan dan penulisan harus mutually exclusive (yaitu benarbenarhanya satu proses yang berada di critical section). Operasi penulisan saja yang harus mutually exclusive. Pada situasi ini, masalah baru muncul yaitu mengenai koherensi data. Critical section digunakan untuk menjamin integritas data.

Kerjasama diantara proses-proses dengan komunikasi Pada kasus persaingan, proses-proses memakai sumber daya tanpa peduli proses-proses lain. Pada kasus kedua, proses-proses memakai bersama nilai dan meski masing-masing proses tidak secara eksplisit peduli proses-proses lain. Tapi proses-proses peduli untuk menjaga integritas data. Ketika proses-proses bekerja sama dengan komunikasi, beragam proses berpartisipasi dalam suatu usaha dengan menghubungkan semua proses. Komunikasi menyediakan cara untuk sinkronisasi atau koordinasi beragam aktivitas. Komunikasi dicirikan dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk mengirim dan menerima pesan disediakan sebagai bagian bahasa pemrograman atau disediakan kernel sistem operasi. Karena tak ada sesuatu yang dipakai bersama diantara proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah mutual exclusion. Tetapi masalah deadlock dan startvation dapat muncul. Pokok penyelesaian masalah kongkurensi Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi dua, yaitu : Mengasumsikan adanya memori yang digunakan bersama. Tidak mengasumsikan adanya memori yang digunakan bersama. Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi. Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama ataupun untuk sistem tersebar.

Latihan 1. Proses dapat meminta berbagai kombinasi dari sumber daya dibawah ini: CDROM, soundcard dan floppy. Jelaskan tiga macam pencegahan deadlock skema yang meniadakan: Hold and Wait Circular Wait No Preemption 2. Diasumsikan proses P0 memegang sumber daya R2 dan R3, meminta sumber daya R4; P1 menggunakan R4 dan meminta R1; P2 menggunakan R1 dan meminta R3. Gambarkan Wait-for Graph. Apakah sistem terjebak dalam deadlock? Jika ya, tunjukkan proses mana yang menyebabkan deadlock. Jika tidak, tunjukkan urutan proses untuk selesai. 3. User x telah menggunakan 7 printer dan harus menggunakan 10 printer. User y telah menggunakan1 printer dan akan memerlukan paling banyak 4 printer. User z telah menggunakan 2 printer dan akan menggunakan paling banyak 4 printer. Setiap user pada saat ini meminta 1 printer. Kepada siapakah OS akan memberikan grant printer tersebut dan tunjukkan "safe sequence" yang ada sehingga tidak terjadi deadlock. 4. Pernyataan manakah yang benar mengenai deadlock: a. Pencegahan deadlock lebih sulit dilakukan (implementasi) daripada menghindari deadlock. b. Deteksi deadlock dipilih karena utilisasi dari resources dapat lebih optimal. c. Salah satu prasyarat untuk melakukan deteksi deadlock adalah: hold and wait. d. Algoritma Banker s (Djikstra) tidak dapat menghindari terjadinya deadlock. e. Suatu sistem jika berada dalam keadaan tidak aman: "unsafe", berarti telah terjadi deadlock.