Pertemuan 4 - E-learning Amikom

advertisement
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
Pertemuan 4
KONKURENSI
Konkurensi merupakan landasan unum perancangan sistem operasi. Proses-proses
disebut konkuren jika proses-proses berada pada saat yang sama.
Pada proses-proses konkuren yang berinteraks mempunyai beberapa masalah yang harus
diselesaikan:
1. Mutual Exclusion
2. Sinkronisasi
3. Deadlock
4. Startvation
A. Prinsip-prinsip Konkurensi
Konkurensi meliputi hal-hal sbb:
- Alokasi wkatu pemroses untuk proses-proses
- Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
- Komunikasi antarproses
- Sinkronisasi aktivitas banyak proses.
Konkurensi dapat muncul pada tiga konteks berbeda, antara lain:
- Banyak aplikasi (multiple application)
- Aplikasi terstruktur
- Struktur sistem operasi
B. Kesulitan-kesulitan yang ditimbulkan konkurensi
Konsep: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
Beragam kemungkinan yang terjadi tidak dapat diprediksi, seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
- Aktivitas proses-proses lain
- Cara sistem operasi menangani interupsi
- Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.
2. Beberapa kesulitan yang dapat muncul, di antaranya adalah:
- Pemakaian bersama sumber daya globla
- Pengelolaan alokasi sumber daya agar optimal
- Pencarian kesalahan pemrograman.
3. Proses-proses konkuren mengharuskn beberapa hal yang harus ditangani, antara
lain:
- Sistem operasi harus mengetahui proses-proses yang aktif
- Sistem operasi harus mengalokasikan dan mendealokasikan beragam
sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola,
antara lain:
i.
Waktu pemroses.
ii.
Memori
iii.
Berkas-berkas
iv.
Perangkat I/O
1
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
-
Sistem operasi harus memproteksi data dan sumber daya fisik masingmasing proses dari gangguan proses-proses lain.
Hasil-hasil proses harus independen terhadap kecepatan relatif prosesproses lain dimana eksekusi dilakukan.
Mutual Exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada
satu interval waktu tertentu.
Sering terjadi pada peralatan pencetakan (printer). Daemon printer adalah proses yang
melakukan penjadwalan dan pengendalian pencetakan berkas-berkas di printer. Ruang
disk ini disebut direktori spooler. Direktori spooler membagi disk menjadi sejumlah slot.
Slot-slot diisi berkas yang akan dicetak. Terdapat variabel in yang menunjuk slot bebas
pada ruang disk yang akan dipakai untuk menyimpan berkas yang ingin dijadwalkan
untuk dicetak. Bagian program yang sedang mengakses memory atau sumber daya yang
dipakai bersama disebut critical section. Jika proses pada critical section memblokir
proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock.
Kesuksesan proses-proses konkurensi memerlukan pendefinisian critical section dan
memaksakan mutual exclusion di antara proses-proses konkuren yang sedang berjalan.
Pemaksaan mutual exclusion merupakan landasan pemrosesan konkuren. 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 prosesproses lain yang ingin masuk critical section. Hal ini bisa terjadi
startvation.
- Harus dijamin bhwa 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 yang ada.
- Proses hanya tinggal pada critical section selama satu waktu yang
berhingga
Beberapa metode yang diusulkan untuk menjamin Mutual Exclusion, antara lain:
- Metode Variable Lock
Metode ini sederhana ketika proses masuk critical section lebih dahulu
memeriksa variable lock.
v.
Jika variable lock bernilai 0, proses men-set variable lockny
menjadi 1 kemudian masuk ke dalam critical section.
vi.
Jika variable lock bernilai 1, maka proses menunggu sampai
nilai variable lock nya menjadi 0.
Metode ini tidak menjamin proses tidak masuk critical section yang telah
dimasuki proses lain.
- Metode bergantian secara ketat
2
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
Metode ini mengasumsikan dapat mengalir masuk critical section secara
bergantian terus-menerus. Metode ini melakukan refleksi terhadap
variabel yang berfungsi untuk memenuhi critical section.
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.
a. Resource
Sistem operasi di sini berperan sebagai pengatur berbagai tipe resource yang
berlainan, krena pada dasarnya proses-proses maupun job-job tersebut ingin
mengakses resource yang sama.
Shareable resource misalnya printer, tape drive.
b. Karakteristik Deadlock
Kondisi yang dapat menimbulkan terjadinya deadlock:
1. Mutual exclusion. Apabila proses telah menggunakan suatu resource, mka tidak
boleh ada proses lain yang menggunakan resource tsb. Hanya satu proses yang
dapat menggunakan sebuah resource pada satu waktu.
2. Hold & Wait. Pada suatu proses sedang mengakses suatu resource, proses tsb dapat
meminta ijin untuk mengakses resource lain yang dipakai oleh proses lain.
3. No Preemption. Jika suatu proses meminta ijin untuk mengakses resource,
sementara resource tersebut tidak tersedia, maka permintaan ijin tidak dapat
dibatalkan.
4. Circular Wait Condition. Jika proses P0 sedang mengakses Resource R1 dan minta
ijin untuk mengakses resource R1 dan minta ijin untuk mengakses resource R2,
dan pada saat yang bersamaan P1 sedang mengakses resource R2 dan mint ijin
untuk mengakses R1.
Metode Mengendalikan Deadlock
1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah
mengalami deadlock.
2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat
memperbaikinya.
3. Mengabiakan semua masalah dan menganggap deadlock tidak akan pernah terjadi
lagi di dalam sistem.
Pencegahan Deadlock
1. Mutual exclusion. Harus tetap menjaga resource-resource yang bersifat nonshareable. Yaitu, proses menahan sebuah resource, proses lain yang meminta
resource tsb harus menunggu sampai proses melepaskannya. Jika terjadi pada
perangkat I/O dan berkas, maka sulit untuk menghindari mutual exclusion pada
sumber daya non shareable.
3
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
2. Hold & Wait. Apabila suatu proses minta ijin untuk mengakses suatu resource,
maka proses tersebut tidak boleh membawa resource yang lainnya. Sebleum proses
meminta resource, maka harus melepas semua resource yang dibawa.
3. Non Preemption. Jika suatu proses minta ijin mengakses resource, sementara
resource tersebut tidak dapat dipenuhi secepatnya, maka proses tersebut harus
membebaskan semua resourcenya terlebih dahulu.
4. Circular Wait. Memberi nomor pada setiap resource yang ada, dan setiap resource
hanya boleh mengakses resource2 secara berurutan.
5. Untuk menghindari deadlock ikuti prinsip preemptive.
Penghindaran Deadlock
1. State Selamat
Contoh:
Pada sistem dengan 10 sumber daya setipe, proses A memerlukan sumber daya
maksimum sebanyak 10, sedang saat ini menggenggam 2. Proses B memerlukan sumber
daya maksimum sebanyak 3, sedang saat ini menggenggam 1. Proses C memerlukan
sumber daya maksimum sebanyak 7, sedang saat ini menggenggam 3. Maka, masih
tersedia 4 sumber daya.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
B
1
3
C
3
7
Tersedia 4
Dengan hati-hati, sistem penjadwalan ini dapat terhindarkan dari deadlock, dengan cara
sbb:
Langkah 1. Alokasikan 4 sumber daya ke proses C sehingga sumber daya yang tersedia
tinggal 1 dan nantikan sampai proses C berakhir.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
B
1
3
C
7
7
Tersedia 0
Maka setelah proses C selesai dan menjadi :
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
B
1
3
C
0
0
Tersedia 7
Langkah 2: Alokasikan 2 sumber daya ke proses B, nantikan proses B sampai berakhir.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
4
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
B
C
3
3
0
0
Tersedia 5
Maka, setelah proses B selesai dan menjadi:
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
B
0
0
C
0
0
Tersedia 8
Langkah 3: Alokasikan 8 sumber daya ke proses A, nantikan proses A sampai berakhir.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
10
10
B
0
0
C
0
0
Tersedia 0
Maka, setelah proses A selesai dan menjadi :
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
0
0
B
0
0
C
0
0
Tersedia 0
Maka, ketiga proses tersebut dengan penjadwalan hati-hati dapat menyelesaikan proses
mereka dengan sempurna.
B. State Tak Selamat (unsafe state)
State dikatakan sebagai state tak selamat jika tidak terdapat cara untuk memenuhi semua
permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
Contoh
Soal di bawah ini adalah seperti soal pada state selamat, sate ini dapat berubah menjadi
state tak selamat bila alokasi sumber daya tak terkendali.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
2
10
B
1
3
C
3
7
Tersedia 4
State tersebut dapat menjadi state tak selamat bila:
- dua permintaan sumber daya oleh proses A dilayani, kemudian
- Permintaan satu sumber daya oleh proses B dilayani
Maka state menjadi:
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
5
Mata Kuliah : Sistem Operasi
Pengampu : Ardiansyah, S.T.
Kontak : [email protected]
A
B
C
4
10
2
3
3
7
Tersedia 1
Tabel di atas adalah state tak selamat. Pada state ini tidak terdapat barisan pengalokasian
yang dapat membuat semua proses selesai. Misalnya, barisan pengalokasian yang
ditempuh adalah:
Langkah 1: Alokasikan satu sumber daya ke proses B sehingga sumber daya tersedia
tinggal 1 dan nantikan sampai proses B berakhir.
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
4
10
B
3
3
C
3
7
Tersedia 0
Maka, setelah proses B selesai dan menjadi:
Proses
Jumlah Resource
Maksimum Resource
digenggam
yang dibutuhkan
A
4
10
B
0
C
3
7
Tersedia 3
Saat hanya tersedia tiga sumber daya sementara dua proses yang sedang aktif masingmasing membutuhkan 6 dan 4 sumber daya.
Perlu diingat!, bahwa state tak selamat bukan berarti deadlock, hanya menyatakan bahwa
state tersebut memiliki kemungkinan deadlock.
Referensi:
Sistem Operasi, SP Hariningsih, Penerbit Graha Ilmu 2003.
6
Download