SISTEM OPERASI
KONKURENSI
Bernis Sagita
132310499
MI2
PENGERTIAN
KONKURENSI
• Konkurensi adalah proses-proses (lebih dari satu
proses) yang terjadi pada saat bersamaan.
Konkurensi merupakan landasan umum
perancangan sistem operasi. Proses-proses disebut
konkuren jika proses-proses berada pada saat yang
sama. Pada proses-proses konkuren yang
berinteraksi mempunyai beberapa masalah yang
harus diselesaikan:
1. Mutual Exclusion
2. Sinkronisasi
3. Deadlock
4. Startvation
MUTUAL EXCLUSION
• Mutual exclusion adalah jaminan hanya satu proses
yang mengakses sumber daya pada satu interval
waktu tertentu. Sumber daya yang tidak dapat
dipakai bersama pada saat bersamaan.
Fasilitas atau kemampuan menyediakan dukungan
mutual exclusion harus memenuhi kriteria sbb:
• Mutual exclusion harus dijamin, bahwa tidak ada
proses lain, kecuali dirinya sendiri. Di sini terjadi
proses tunggal.
• Proses yang berada di noncritical section, dilarang
mem-blocked proses-proses lain yang ingin masuk
critical section. Hal ini bisa terjadi startvation.
• Harus dijamin bahwa proses yang ingin masuk
critical section tidak menunggu selama waktu yang
tak terhingga. Ini bisa mengakibatkan masalah
deadlock dan antrian proses bertambah panjang.
• Ketika tidak ada proses pada critical section, maka
proses yang ingin masuk critical section harus
ijinkan masuk tanpa waktu tunda.
• Tidak ada asumsi mengenai kecepatan relatif proses
atau jumlah proses yang ada.
• Proses hanya tinggal pada critical section selama
satu waktu yang tidak terhingga
DEADLOCK
• Deadlock adalah suatu kondisi dimana dua proses
atau lebih tidak dapat meneruskan eksekusinya oleh
pemroses. Pada umumnya deadlock terjadi karena
proses mengalami startvation, yaitu suatu job yang
sedang dieksekusi dan eksekusi job tersebut tidak
ada hentinya, tidak diketahui kapan berhentinya
proses tersebut atau bahkan job yang antri bisa
dikatakan mempunyai status mati, padahal proses-
proses lain sedang menunggu sumber daya proses.
• Kondisi Deadlock merupakan kondisi terparah
karena banyak proses dapat terlibat dan semuanya
tidak dapat mengakhiri prosesnya secara benar.
STARTVATION
• Startvation adalah keadaan dimana pemberian
akses bergantian terus menerus, dan ada suatu
proses yang tidak mendapatkan gilirannya. Juga
dapat dimaksudkan bahwa kondisi bila beberapa
proses-proses menunggu alokasi sumber daya
sampai tak berhingga, sementara proses-proses
lain dapat memperoleh alokasi sumber daya.
• Hal ini disebabkan bias pada kebijaksanaan atau
strategi alokasi sumber daya. Kondisi seperti ini
harus dihindari pada sistem operasi karena
tidak adil, tapi dikehendaki penghindaran
dilakukan seefisien mungkin. Penanganan ini
merupakan persoalan yang sulit untuk
menemukan kriteria yang benar, adil dan efesien
dalam suatu strategi Sistem Operasi.
INTERAKSI ANTAR PROSES
Pada sistem dengan banyak proses (kongkuren),
terdapat 3 katagori interaksi antar proses
berdasarkann derajat pengetahuan keberadaan
proses lainnya, yaitu:
• Proses tidak saling mengetahui keberadaannya.
• Proses mengetahui keberadaan proses lainnya
secara tidak langsung.
• Proses mengetahui keberadaan proses lainnya
secara langsung.
KESULITAN – KESULITAN YANG
DITIMBULKAN KONKURENSI
• Masalah yang dihadapi proses-proses kongkurensi
pada multiprogramming dan multiprocessing
serupa, yaitu: kecepatan eksekusi proses-proses di
sistem tidak dapat diprediksi. Beberapa
kemungkinan yang terjadi tidak dapat diprediksi
seperti:
1. Kecepatan proses pada sistem tergantung
pada beberapa hal
2. Beberapa kesulitan yang dapat muncul
3. Proses-proses konkuren mengharuskan
beberapa hal yang harus ditangan
A. Prinsip-prinsip Konkurensi
• Konkurensi meliputi hal-hal sbb:
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk
mendapatkan sumber daya
• Komunikasi antarproses
• Sinkronisasi aktivitas banyak proses.
Konkurensi dapat muncul pada konteks
berbeda, antara lain:
1. Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses
sekaligus dijalankan. Proses-proses dapat berasal
dari aplikasi-aplikasi berbeda. Pada sistem
multiprogramming bisa terdapat banyak aplikasi
sekaligus yang dijalankan di sistem komputer.
2. Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan
pemrograman terstruktur adalah suatu aplikasi
dapat secara efektif diimplementasikan sebagai
sekumpulan proses. Dengan sekumpulan proses,
maka tiap proses menyediakan satu layanan spesifik
tertentu.
3. Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke
pemrograman sistem. Beberapa sistem operasi
aktual yang dipasarkan dan yang sedang dalam riset
telah diimplementasikan sebagai sekumpulan
proses. Sistem operasi bermodelkan client/server
menggunakan pendekatan ini.
4. Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses
dapat memiliki banyak thread yang independen.
Thread-thread tersebut harus dapat bekerjasama
untuk mencapai tujuan proses.
B. Interaksi Antar Proses.
Pada sistem dengan banyak proses (kongkuren), terdapat 2
katagori interaksi, yaitu:
1. Proses-proses Saling Tidak Peduli (Independen).
Proses-proses ini tidak dimaksudkan untuk bekerja
untukmencapai tujuan tertentu. Pada multiprogramming
dengan proses-proses independen, dapat berupa batch atau
sesi interaktif, atau campuran keduanya.
2. Proses-proses Saling Mempedulikan Secara Tidak
Langsung.
Proses-proses tidak perlu saling mempedulikan identitas
proses-proses lain, tapi sama-sama mengakses objek tertentu,
seperti buffer masukan/keluaran. Proses-proses itu perlu
bekerja sama (cooperation) dalam memakai bersama objek
tertentu.
C. Kesulitan-kesulitan yang
ditimbulkan konkurensi
Masalah yang dihadapi proses-proses kongkurensi pada
multiprogramming dan multiprocessing serupa, yaitu:
kecepatan eksekusi proses-proses di sistem tidak dapat
diprediksi. Beberapa kemungkinan yang terjadi tidak dapat
diprediksi seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa
hal, antara lain:
a) Aktivitas proses-proses lain
b) Cara sistem operasi menangani interupsi
c) Kebijaksanaan penjadwalan yang dilakukan oleh sistem
operasi.
2. Beberapa kesulitan yang dapat muncul, di antaranya
adalah:
a) Pemakaian bersama sumber daya global.
• Jika dua proses menggunakan variabel global yang
sama, serta keduanya membaca dan menulis
variabel itu maka urutan terjadinya pembacaan dan
penulisan terhadap variabel itu menjadi kritis.
b) Pengelolaan alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal
masukan/keluaran tertentu dan dapat terjadi
kemudian proses A di suspend sebelum
menggunakan kanal itu. Jika sistem operasi
mengunci kanal tersebut dan orang lain tidak dapat
menggunakannya, maka akan terjadi inefisiensi.
c) Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren
lebih sulit dibanding pencarian kesalahan pada
program-program sekuen.
3. Proses-proses konkuren mengharuskan
beberapa hal yang harus ditangani, antara lain:
a) Sistem operasi harus mengetahui proses-
proses yang aktif
b) Sistem operasi harus mengalokasikan dan
mendealokasikan beragam sumber daya untuk
tiap proses aktif. Sumber daya yang harus
dikelola, antara lain:
(1) Waktu pemroses.
(2) Memori
(3) Berkas-berkas
(4) Perangkat I/O
c) Sistem operasi harus memproteksi data dan
sumber daya fisik masing-masing proses dari
gangguan proses-proses lain.
d) Hasil-hasil proses harus independe terhadap
kecepatan relatif proses-proses lain dimana
eksekusi dilakukan.
D. Pokok Penyelesaian Masalah
Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi
terbagi menjadi 2, yaitu:
1. Mengasumsikan adanya memori yang digunakan
bersama
2. Tidak mengasumsikan adanya memori yang
digunakan bersama.
Adanya memori bersama lebih memudahkan
penyelesaian masalah kongkurensi. Metode memori
bersama dapat dipakai untuk singleprocessor
ataupun multiprocessor yang mempunyai memori
bersama. Penyelesaian ini tidak dapat digunakan
untuk multiprocessor tanpa memori bersama atau
untuk sistem tersebar.
Strategi untuk menghadapi deadlock
dapat dibagi menjadi tiga pendekatan,
yaitu:
1. Mengabaikan adanya deadlock.
2. 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.
3. Membiarkan deadlock untuk terjadi, pendekatan ini
membutuhkan dua metode yang saling mendukung, yaitu:
1. Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock
terjadi.
2. Pemulihan deadlock, mengembalikan kembali sumber daya
yang dibutuhkan pada proses yang memintanya.
POKOK – POKOK PENYELESAIAN
MASALAH PADA KONKURENSI
• Pada dasarnya penyelesaian masalah
kongkurensi terbagi menjadi 2, yaitu:
1. Mengasumsikan adanya memori yang
digunakan bersama
2. Tidak mengasumsikan adanya memori yang
digunakan bersama.

Bernis Sagita - Konkurensi

  • 1.
  • 2.
    PENGERTIAN KONKURENSI • Konkurensi adalahproses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan: 1. Mutual Exclusion 2. Sinkronisasi 3. Deadlock 4. Startvation
  • 3.
    MUTUAL EXCLUSION • Mutualexclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan. Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi kriteria sbb: • Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini terjadi proses tunggal. • Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
  • 4.
    • Harus dijaminbahwa proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga. Ini bisa mengakibatkan masalah deadlock dan antrian proses bertambah panjang. • Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section harus ijinkan masuk tanpa waktu tunda. • Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada. • Proses hanya tinggal pada critical section selama satu waktu yang tidak terhingga
  • 5.
    DEADLOCK • Deadlock adalahsuatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami startvation, yaitu suatu job yang sedang dieksekusi dan eksekusi job tersebut tidak ada hentinya, tidak diketahui kapan berhentinya proses tersebut atau bahkan job yang antri bisa dikatakan mempunyai status mati, padahal proses- proses lain sedang menunggu sumber daya proses. • Kondisi Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.
  • 6.
    STARTVATION • Startvation adalahkeadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi bila beberapa proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.
  • 7.
    • Hal inidisebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi dikehendaki penghindaran dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi Sistem Operasi.
  • 8.
    INTERAKSI ANTAR PROSES Padasistem dengan banyak proses (kongkuren), terdapat 3 katagori interaksi antar proses berdasarkann derajat pengetahuan keberadaan proses lainnya, yaitu: • Proses tidak saling mengetahui keberadaannya. • Proses mengetahui keberadaan proses lainnya secara tidak langsung. • Proses mengetahui keberadaan proses lainnya secara langsung.
  • 9.
    KESULITAN – KESULITANYANG DITIMBULKAN KONKURENSI • Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti: 1. Kecepatan proses pada sistem tergantung pada beberapa hal 2. Beberapa kesulitan yang dapat muncul 3. Proses-proses konkuren mengharuskan beberapa hal yang harus ditangan
  • 10.
    A. Prinsip-prinsip Konkurensi •Konkurensi meliputi hal-hal sbb: • Alokasi waktu pemroses untuk proses-proses • Pemakaian bersama dan persaingan untuk mendapatkan sumber daya • Komunikasi antarproses • Sinkronisasi aktivitas banyak proses.
  • 11.
    Konkurensi dapat munculpada konteks berbeda, antara lain: 1. Banyak aplikasi (multiple application). Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer. 2. Aplikasi terstruktur. Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
  • 12.
    3. Struktur sistemoperasi. Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini. 4. Untuk Strukturisasi Satu Proses. Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.
  • 13.
    B. Interaksi AntarProses. Pada sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, yaitu: 1. Proses-proses Saling Tidak Peduli (Independen). Proses-proses ini tidak dimaksudkan untuk bekerja untukmencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya. 2. Proses-proses Saling Mempedulikan Secara Tidak Langsung. Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
  • 14.
    C. Kesulitan-kesulitan yang ditimbulkankonkurensi Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti: 1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain: a) Aktivitas proses-proses lain b) Cara sistem operasi menangani interupsi c) Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi. 2. Beberapa kesulitan yang dapat muncul, di antaranya adalah: a) Pemakaian bersama sumber daya global.
  • 15.
    • Jika duaproses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis. b) Pengelolaan alokasi sumber daya agar optimal Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi. c) Pencarian kesalahan pemrograman. Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
  • 16.
    3. Proses-proses konkurenmengharuskan beberapa hal yang harus ditangani, antara lain: a) Sistem operasi harus mengetahui proses- proses yang aktif b) Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain: (1) Waktu pemroses. (2) Memori (3) Berkas-berkas (4) Perangkat I/O
  • 17.
    c) Sistem operasiharus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain. d) Hasil-hasil proses harus independe terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.
  • 18.
    D. Pokok PenyelesaianMasalah Kongkurensi Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu: 1. Mengasumsikan adanya memori yang digunakan bersama 2. Tidak mengasumsikan adanya memori yang digunakan bersama. Adanya memori bersama lebih memudahkan penyelesaian masalah kongkurensi. Metode memori bersama dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem tersebar.
  • 19.
    Strategi untuk menghadapideadlock dapat dibagi menjadi tiga pendekatan, yaitu: 1. Mengabaikan adanya deadlock. 2. 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. 3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu: 1. Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi. 2. Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
  • 20.
    POKOK – POKOKPENYELESAIAN MASALAH PADA KONKURENSI • Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu: 1. Mengasumsikan adanya memori yang digunakan bersama 2. Tidak mengasumsikan adanya memori yang digunakan bersama.