Tugas sistem
operasi
Nama
: Edwin rudini
Nim :
13120180
Jurusan : Teknik komputer
Kelas
: 134.4d.01
Akademi Bina sarana Informatika dan
Komputer
Artikel
tentang konkurensi
Menurut kamus besar bahasa
indonesia Konkurensi adalah perlawanan, persaingan, persengketaan. Konkurensi merupakan landasan umum perancangan
system operasi. Proses proses
disebut konkuren jika proses-proses itu berada pada saat yang sama. Proses-proses konkuren dapat sepenuhnya tak bergantung dengan yang lain tapi dapat juga saling berinteraksi.
Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik. Proses proses yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu:
1. Mutual Exclusion
2. Deadlock
3. StarVation
disebut konkuren jika proses-proses itu berada pada saat yang sama. Proses-proses konkuren dapat sepenuhnya tak bergantung dengan yang lain tapi dapat juga saling berinteraksi.
Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik. Proses proses yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu:
1. Mutual Exclusion
2. Deadlock
3. StarVation
Prinsip-prinsip konkurensi meliputi :
1. Alokasi waktu processor untuk proses-proses.
2. Pemakaian bersama dan persaingan untuk mendapatkan
sumber daya.
3. Komunikasi antar proses.
4. Sinkronisasi aktivitas banyak proses
A. Mutual Exclusion.
Pada system komputer terdapat sumber daya yang
tidak dapat dipakai bersama pada saat yang bersamaan seperti pada penggunaan
printer, Sumber daya seperti hanya dapat menjalankan satu proses pada suatu
saat, sumber daya ini disebut sumber daya kritis. Program yang menggunakan
sumber daya kritis disebut sedang memasuki critical region / section .
Sistem operasi
memberikan fasilitas untuk pemrogram dapat memberikan indikasi keberadaan
critical region. Sistem operasi menyediakan layanan ( berupa system call )
untuk mencegah suatu proses masuk kedalam critical region akan tetapi di dalam
critical region terdapat proses lain yang sedang berjalan. Mutual exclusion
merupakan solusi bagi masalah pada critical region / section, mutual exclusion
adalah persoalan untuk menjamin hanya satu proses saja yang berjalan dalam
suatu critical region / section.Seluruh sistem yang melibatkan banyak proses
mengakses satu sumber daya bersama selalu menimbulkan persoalan
mutual-exclusion.
Contohnya adalah sebagai berikut :
• Pada aplikasi tabungan, misalnya rekening A berisi Rp
1.000.000,- yang terdaftar di kantor cabang bandung.
• Kemudian pada suatu saat program aplikasi kantor cabang di
Jakarta melayani penyetoran Rp 3.000.000,- ke rekening A. lalu program aplikasi
membaca saldo akhir rekening A
Persoalan di atas dapat tidak terjamin mutual-exclusion jika:
1. Program aplikasi bandung menulis ke rekening A secara
cepat sehingga di hasilkan saldo Rp 6.000.000. Setelah itu, program aplikasi
kantor cabang Jakarta menimpa hasil itu
dengan saldo Rp 4.000.000,- . Dalam kasus ini saldo akhir
yang diperoleh adalah Rp
4.000.000,- bukan Rp 10.000.000,- (yang seharusnya).
2. Program aplikasi Jakarta
dilakukan menulis ke rekening A secara cepat sehingga
dihasilkan saldo Rp
4.000.000,-. Setelah itu program aplikasi di kantor bandung menimpa hasil itu
dengan saldo Rp 6.000.000,-. Hasil yang lebih baik dibanding skenario
pertama tetapi masih di
bawah yang seharusnya yaitu Rp 10.000.000,-.
Kemampuan menjamin mutual-exclusion harus
memenuhi kriteria-kriteria berikut :
1. Mutual-exclusion harus
dijamin.
2. Hanya satu proses pada
satu saat yang diizinkan masuk critical section yang sama
pada saat telah ada proses yang masuk critical section itu.
3. Proses yang berada di
noncritical section, dilarang mem-block proses-proses lain yang ingin masuk
critical section.
4. Harus dijamin proses yang
ingin masuk critical section tidak menunggu selama waktu yang tak berhingga
atau tidak boleh terjadi deadlock maupun startvation.
5. Ketika tidak ada proses
di critical section, maka proses yang ingin masuk critical section harus
diizinkan segera masuk tanpa ada waktu tunda.
6. Tidak ada asumsi mengenai
kecepatan relatif proses atau jumlah proses yang ada.kriteria pada nomor satu
merupakan kriteria pokok yang harus dipenuhi. Metode yang melanggar kriteria
nomor satu sama sekali tidak dapat di gunakan. Pelanggaran kriteria-kriteria
lain berarti metode masih bisa digunakan pada situasi-situasi tertentu tapi
harus dilakukan secara hati-hati
B. Deadlock.
Deadlock
dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem
operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana
proses tidak berjalan lagi atau tidak ada komunikasi lagi antar proses.
Deadlock disebabkan karena proses yang satu menunggu sumber daya yang
sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu
sumber daya yang dipegang olehnya. Dengan kata lain setiap proses dalam
set menunggu untuk sumber yang hanya dapat dikerjakan oleh proses lain
dalam set sedang menunggu.
Contoh sederhananya ialah
pada gambar berikut ini.
Deadlock terjadi pada
persimpangan jalan
Penjelasan :
Dalam kasus ini setiap mobil
bergerak sesuai nomor yang ditentukan, tetapi tanpa pengaturan yang benar,
maka setiap mobil akan bertemu pada satu titik yang permanen (yang dilingkari)
atau dapat dikatakan bahwa setiap mobil tidak dapat melanjutkan perjalanan
lagi atau dengan kata lain terjadi Deadlock.
Kejadian
Deadlock selalu tidak lepas dari sumber daya, bahwa hampir seluruhnya merupakan
masalah sumber daya yang digunakan bersama-sama. Oleh karena itu, kita juga perlu tahu tentang jenis sumber daya, yaitu: sumber daya dapat digunakan lagi berulang-ulang dan sumber daya yang dapat digunakan dan habis dipakai atau dapat dikatakan sumber daya sekali pakai.
Sumber daya ini tidak habis dipakai oleh proses mana pun.Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini.
masalah sumber daya yang digunakan bersama-sama. Oleh karena itu, kita juga perlu tahu tentang jenis sumber daya, yaitu: sumber daya dapat digunakan lagi berulang-ulang dan sumber daya yang dapat digunakan dan habis dipakai atau dapat dikatakan sumber daya sekali pakai.
Sumber daya ini tidak habis dipakai oleh proses mana pun.Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini.
1. Kasus deadlock di
sebuah pintu kecil. Pada sebuah rumah yang dihuni oleh sepasang suami istri yang memiliki berat badan lebih (keduanya sama2 gemuk) kebetulan pintu untuk
keluar rumah hanya bisa dilewati oleh salah satu dari dua orang tersebut. Pada
suatu pagi di saat yang bersamaan, suami istri tersebut sama2 ada keperluan
mendadak dan sangat mendesak hingga mengharuskan keduanya untuk keluar rumah di
saat itu juga. Dari kedua manusia berbadan besar tersebut sama2 keras kepala
tidak ada yang mau merelakan salah satu di antranya untuk keluar duluan.
Keadaann ini berlangsung hingga 2 jam, tidak ada yang mundur dan tidak ada yang
maju.
Ada empat kondisi
yang dapat menyebabkan terjadinya deadlock. Keempat kondisi tersebut
tidak dapat berdiri sendiri, namun saling mendukung.
1. Mutual exclusion.
Hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang
ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi
dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
2. Hold and wait.
Proses yang sedang memakai sumber daya boleh meminta sumber daya
lagi maksudnya menunggu hingga benar-benar sumber daya yang diminta tidak
dipakai oleh proses lain, hal ini dapat menyebabkan kelaparan sumber daya
sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu yang
lama.
3. No preemption. Sumber
daya yang ada pada sebuah proses tidak boleh diambil begitu saja
oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus
dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu
seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki
sumber daya yang boleh berjalan.
4. Circular wait.
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya
yang dipegang proses berikutnya.
Sebuah sistem komputer
terdiri dari berbagai macam sumber-daya (resources), seperti:
• Fisik (Perangkat, Memori)
• Logika (Lock, Database record)
• Sistem Operasi (PCB Slots)
• Aplikasi (Berkas)
Ada beberapa cara untuk
menanggulangi terjadinya deadlock, diantaranya adalah:
· Mengabaikan masalah
deadlock.
· Mendeteksi dan memperbaiki
· Penghindaran yang
terus menerus dan pengalokasian yang baik dengan menggunakan protokol
untuk memastikan sistem tidak pernah memasuki keadaan deadlock. Yaitu dengan
deadlockavoidance sistem untuk mendata informasi tambahan tentang proses mana yang akan meminta
dan menggunakan sumber daya.
Pencegahan yang secara struktur
bertentangan dengan empat kondisi terjadinya deadlock
dengan deadlock prevention sistem untuk memastikan bahwa salah satu kondisi yang penting
tidak dapat menunggu.
Ada beberapa jalan untuk kembali dari Deadlock, yaitu:
dengan deadlock prevention sistem untuk memastikan bahwa salah satu kondisi yang penting
tidak dapat menunggu.
Ada beberapa jalan untuk kembali dari Deadlock, yaitu:
· Lewat Preemption
Dengan cara untuk sementara waktu menjauhkan sumber
daya dari pemakainya, dan memberikannya pada proses yang lain. Ide untuk
memberi pada proses lain tanpa diketahui oleh pemilik dari sumber daya tersebut
tergantung dari sifat sumber daya itu sendiri. Perbaikan dengan cara ini
sangat sulit atau dapat dikatakan tidak mungkin. Cara ini dapat dilakukan
dengan memilih korban yang akan dikorbankan atau diambil sumber dayanya untuk
sementara, tentu saja harus dengan perhitungan yang cukup agar waktu yang
dikorbankan seminimal mungkin. Setelah kita melakukan preemption dilakukan
pengkondisian proses tersebut dalam kondisi aman. Setelah itu proses dilakukan
lagi dalam kondisi aman.
· Lewat Melacak Kembali
Setelah melakukan beberapa langkah preemption, maka
proses utama yang diambil sumber dayanya akan berhenti dan tidak dapat
melanjutkan kegiatannya, oleh karena itu dibutuhkan langkah untuk kembali pada
keadaan aman dimana proses masih berjalan dan memulai proses lagi dari situ.
Tetapi untuk beberapa keadaan sangat sulit menentukan kondisi aman tersebut,
oleh karena itu umumnya dilakukan cara mematikan program tersebut lalu memulai
kembali proses. Meski pun sebenarnya lebih efektif jika hanya mundur beberapa
langkah saja sampai deadlock tidak terjadi lagi. Untuk beberapa sistem mencoba
dengan cara mengadakan pengecekan beberapa kali secara periodik dan menandai
tempat terakhir kali menulis ke disk, sehingga saat terjadi deadlock dapat
mulai dari tempat terakhir penandaannya berada.
· Lewat mematikan
proses yang menyebabkan Deadlock
Cara yang paling umum ialah mematikan semua proses
yang mengalami deadlock. Cara ini paling umum dilakukan dan dilakukan oleh
hampir semua sistem operasi. Namun, untuk beberapa sistem, kita juga dapat
mematikan beberapa proses saja dalam siklus deadlock untuk menghindari deadlock
dan mempersilahkan proses lainnya kembali berjalan. Atau dipilih salah satu
korban untuk melepaskan sumber dayanya, dengan cara ini maka masalah pemilihan
korban menjadi lebih selektif, sebab telah diperhitungkan beberapa kemungkinan
jika si proses harus melepaskan sumber dayanya.
C. Starvation.
Dan dalam kongruensi ini
pasti ada masalah yang salah satunya adalah starvation . Starvation adalah
kondisi yang biasanya terjadi setelah deadlock. Proses yang
kekurangan resource (karena terjadi deadlock)
tidak akan pernah mendapat resource yang dibutuhkan sehingga
mengalami starvation (kelaparan).Ilustrasi starvation dengan
deadlock seperti pada gambar di bawah ini.
Penejelasan :
Dalam kasus diatas,
antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource),
begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja
dua antrian tersebut.Misal ada proses A mempunyai resource X,
proses B mempunyai resource Y. Kemudian kedua proses ini
dijalankan bersama, proses A memerlukan resource Y dan
proses B memerlukan resource X, tetapi kedua proses tidak
akan memberikan resource yang dimiliki sebelum proses
dirinya sendiri selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
Contoh kasus starvation
· Contoh Starvation : Sambil menunggu selesainya layanan (misalnya
transferdata oleh modem) pemakai dapat
berinteraksi denganaplikasi lain seperti aplikasi permainan game
ataumengetikkan perintah pada text editorProses tersebut harus berjalan
konkuren dan tidak terjadi deadlock (hang).
a. Dengan Aging
Ada beberapa cara untuk mengatasi
Starvation, salah satunya dengan Aging. Pada flowchart di atas, proses awal
yang ada diberi urutan ( N ) pemrosesan dengan rumus N = ( P+T ) / P. N
maksimum akan mulai dikerjakan dan proses yang lain dinaikkan tingkat urutan
prosesnya agar nanti jika ada proses lain yang masuk, proses terdahulu
mendapatkan bagian resource dan dapat dikerjakan. Jika ada beberapa proses yang
memiliki N maksimum, maka diantara proses tersebut dilihat dari waktu yang
dibutuhkan untuk menyelesaikannya. Jika masih sama juga, maka dilihat waktu
kedatangannya.
b. Dengan penjadwalan Round Robin
Selain itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara Round Robin. Pada Round Robin, proses yang masuk akan dimasukkan ke dalam antrian menurut kedatangan proses tersebut. Dalam penyelesainnya, suatu proses tidak akan langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum yang diberikan. Waktu kuantum adalah waktu yang diberikan untuk menyelesaikan suatu proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses tersebut dikembalikan ke antrian paling belakang dan resource dipindahkan ke proses selanjutnya. Dengan cara ini, semua proses yang mengantri, akan mendapatkan resource secara bergantian ( tidak ada proses yang memonopoli resource ) sehingga semua proses dapat diselesaikan.
Dalam menjalankan fungsinya dalam sistem operasi, dibutuhkan interaksi antara beberapa proses yang berbeda. Interaksi tersebut bertujuan agar terjadi kesinambungan antar proses yang terjadi sehingga sistem operasi dapat berjalan sebagaimana mestinya. Dalam interaksi antar proses, terkadang suatu proses saling menunggu proses yang lain sebelum melanjutkan prosesnya, sehingga proses-proses tersebut saling menunggu tanpa akhir, hal ini disebut deadlock. Jika deadlock terjadi dalam waktu lama, maka terjadilah starvation, yaitu suatu proses tidak mendapatkan resource yang dibutuhkan.
Bambang [2002] Bambang
Hariyanto,. Ir. 2002. Sistem Operasi. Edisi kedua. Informatika. Bandung
Tidak ada komentar:
Posting Komentar