RANGKUMAN KONKRUENSI DAN KEAMANAN SYSTEM
KONKRUENSI DAN
KEAMANAN SYSTEM
Ini adalah penjelasan dari istilah-istilah yang ada di Modul
Pertemuan Ke- 6 Mata Kuliah Sistem Operasi
Proses-Proses yang disebut kongruen apabila proses-proses
(lebih dari satu proses) berada pada saat yang sama. Karena proses tersebut
bisa saja tidak saling bergantung tetapi saling berinteraksi.
Prinsip-prinsip konkurensi meliputi :
Konkurensi meliputi hal-hal sbb:
>> Alokasi waktu pemroses untuk semua proses
Bertugas menjadwalkan alokasi pemroses di
antara proses-proses ready dalam memori . Saat
proses diberi jatah waktuoleh pemroses.
>> Pemakaian bersama dan persaingan untuk
mendapatkan sumber daya
Persaingan antar proses terjadi ketika beberapa proses akan
menggunakan sumber daya yang sama.
Jika ada 2 proses yang akan mengakses ke suatu sumber
daya tunggal, kemudian satu proses dialokasikan kesumber daya tersebut oleh SO
proses yang lainnya akan menunggu.
>> Komunikasi antar proses
Adalah cara atau mekanisme pertukaran data antara satu proses dengan
proses lainnya, baik itu proses yang berada di dalam komputer yang sama, atau
komputer jarak jauh yang terhubung melalui jaringan.
Sistem berbagi memori
Sistem berbagi memori atau yang disebut juga sebagai Shared
Memory System merupakan salah satu cara komunikasi antar proses dengan
cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar
proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh
pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan
memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara
efektif.
Sistem berkirim pesan
Sistem berkirim pesan adalah proses komunikasi antar bagian
sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua
operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin
berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat
sebuah link komunikasi antara keduanya. Setelah itu, kedua
bagian itu dapat saling bertukar pesan melalui link komunikasi
tersebut. Sistem berkirim pesan sangat penting dalam sistem operasi. Karena
dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian
bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antara
beberapa bagian sistem operasi.
Terdapat dua macam cara berkomunikasi, yaitu:
- Komunikasi
langsung. Dalam komunikasi langsung, setiap proses yang ingin
berkirim pesan harus mengetahui secara jelas dengan siapa mereka berkirim
pesan. Hal ini dapat mencegah pesan salah terkirim ke proses yang lain.
Karakteristiknya antara lain:
1.
Link dapat otomatis dibuat
2.
Sebuah link berhubungan dengan
tepat satu proses komunikasi berpasangan
3.
Diantara pasangan itu terdapat tepat satu link
4.
Link tersebut biasanya
merupakan link komunikasi dua arah
- Komunikasi
tidak langsung. Berbeda dengan komunikasi langsung, jenis
komunikasi ini menggunakan sejenis kotak surat atau port yang
mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu sama
lain jika mereka membagi port mereka. Karakteristik
komunikasi ini antara lain:
0.
Link hanya terbentuk jika beberapa
proses membagi kotak surat mereka
1.
Sebuah link dapat terhubung
dengan banyak proses
2.
Setiap pasang proses dapat membagi
beberapa link komunikasi
3.
Link yang ada dapat merupakan link terarah
ataupun link yang tidak terarah
>> Sinkronisasi aktivitas banyak proses
Sinkronisasi aktivitas banyak proses yaitu kerja sama
diantara proses.
Adapun kerjasama diantara proses terbagi kedalam 2 bagian,
diantaranya :
a. Kerjasama diantara proses dengan pemakaian bersama
Dalam kasus kerjasama pemakaian sumber daya bersama meliputi
proses-proses 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:
Ø Mutual exclusion
Ø Deadlock
Ø Starvation
Karena data disimpan pada suatu sumber daya (peralatan,
memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan
starvation. Perbedaannya adalah item-item data dapat diakses dengan dua mode,
yaitu :
1. Operasi pembacaan dan penulisan harus mutually exclusive
(yaitu benar-benar hanya satu proses yang berada di critical section).
2. Operasi penulisan saja yang harus mutually exclusive.
Pada situasi ini, masalah baru muncul yaitu mengenai
koherensi data. Critical section digunakan untuk menjamin integritas data.
b. Kerjasama diantara proses dengan komunikasi
Pada kasus persaingan, proses-proses memakai sumber daya
tanpa peduli prosesproses lain. Pada kasus kedua, proses-proses memakai bersama
nilai dan meski masingmasing proses tidak secara eksplisit peduli proses-proses
lain. Tapi proses-proses peduli untuk menjaga integritas data. Ketiak
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 starvation dapat muncul.
Konkurensi dapat muncul pada konteks berbeda, antara
lain:
>> Banyak aplikasi atau Banyak pemakai (multiple application)
Multiprogramming memungkinkan banyak proses sekaligus
dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada
system multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan
di system komputer.
>> Aplikasi terstruktur (untuk strukturisasi
dari aplikasi)
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.
>> Struktur sistem operasi (untuk strukturisas
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.
>> Untuk Strukturisasi Satu Proses (untuk
strukturisasi dari 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.
A. Beberapa Kesulitan Yang Ditimbulkan Konkurensi
>> 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.
>> Pengelolaan alokasi sumber daya agar
optimal
Jika proses A meminta suatu kanal masukan/keluaran tertentu
dan dapat terjadi kemudian proses A di suspendsebelum menggunakan
kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak
dapat menggunakannya, maka akan terjadi inefisiensi.
>> Pencarian kesalahan pemrograman (Debuging)
Pencarian kesalahan pada pemrograman kongkuren lebih sulit
dibanding pencarian kesalahan pada program-program sekuen.
>> Mengetahui Proses-Proses Aktif
Sistem operasi harus mengetahui proses-proses yang aktif.
>> Alokasi dan Dealokasi bragam sumber daya
untuk tiap proses aktif
Sistem operasi harus mengalokasikan dan mendealokasikan
beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola,
antara lain:
- Waktu
pemroses
- Memori
- Berkas-berkas
- Perangkat
I/O
>> Proteksi Data dan Sumber Daya Fisik
Sistem operasi harus memproteksi data dan sumber daya fisik
masing-masing proses dari gangguan proses-proses lain.
>> Hasil-hasil harus Independen
Hasil-hasil proses harus independen terhadap kecepatan
relatif proses-proses lain dimana eksekusi dilakukan.
B. Tiga Katagori Interaksi dengan Banyak Proses
(Kongkruen)
Pada system dengan banyak proses (konkuren), terdapat 3
kategori interaksi,
yaitu:
yaitu:
1. Proses-proses tidak saling peduli (Independent)
Proses-proses tidak dimaksudkan untuk bekerja bersama untuk
mencapai tujuan tertentu.
2. Proses-proses saling mempedulikan secara tidak langsung
Proses-proses tidak perlu saling mempedulikan identitas
prosesproses
lain tapi samasama mengakses objek tertentu (seperti buffer Input/Output).
Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu.
lain tapi samasama mengakses objek tertentu (seperti buffer Input/Output).
Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu.
3. Proses-proses saling mempedulikan secara langsung
Proses-proses dapat saling bekomunikasi dan dirancang
bekerja sama
untuk suatu aktivitas.
untuk suatu aktivitas.
C. Masalah-masalah Kongkuren diantaranya :
1. MUTUAL EXCLUSION
Mutual Exclusion adalah jaminan hanya satu proses yang
mengakses sumber daya pada satu interval tertentu. Terdapat sumber daya yang
tak dapat dipakai bersama pada saat bersamaan (mis. printer). Sumber daya
ini disebut dengan sumber daya kritis. Bagian program yang menggunakan sumber
daya kritis disebut memasuki critical region/station. Hanya satu program pada
satu saat yang diijinkan masuk critical region. Programmer tidak dapat bergantung
pada system operasi untuk memehami dan memaksa batasan ini karena maksud
program tidak dapat diketahui.
Sistem hanya menyediakan layanan (system call) untuk mencegah proses
masuk critical regionyang sedang dimasuki proses lain. Programmer harus
menspesifikasi bagianbagian
critical region sehingga system operasi akan
menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk
critical region yang sedang dipakai proses lain.
Pemaksaaan adanya mutual exclusion menimbulkan deadlock dan startvation
Sistem hanya menyediakan layanan (system call) untuk mencegah proses
masuk critical regionyang sedang dimasuki proses lain. Programmer harus
menspesifikasi bagianbagian
critical region sehingga system operasi akan
menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk
critical region yang sedang dipakai proses lain.
Pemaksaaan adanya mutual exclusion menimbulkan deadlock dan startvation
Kriteria penyelesaian mutual exclusion:
1. Mutual exclusion harus dijamin, hanya satu proses pada
saat yang
diijinkan masuk ke critical section.
2. Prosesyang berada di noncritical section, dilarang memblocked proses lain yang ingin masuk critical section.
3. Harus dijamin proses yang ingin masuk critical section tidak menunggu
selama waktu yang tak berhingga.
4. Ketika tidak ada proses pada critical section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
diijinkan masuk ke critical section.
2. Prosesyang berada di noncritical section, dilarang memblocked proses lain yang ingin masuk critical section.
3. Harus dijamin proses yang ingin masuk critical section tidak menunggu
selama waktu yang tak berhingga.
4. Ketika tidak ada proses pada critical section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
2. DEADLOCK
Proses disebut deadlock jika prose menunggu suatu kejadian
yang tak
pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses
yang ada menunggu suatu kejadian yang hanya dapat dilakukan proses
lain yang juga berada di kumpulan tersebut.
pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses
yang ada menunggu suatu kejadian yang hanya dapat dilakukan proses
lain yang juga berada di kumpulan tersebut.
Ilustrasi:
· Terdapat dua proses P1 dan P2
· Dua sumber kritis R1 dan R2
· Proses P1 dan P2 harus mengakses kedua sumber daya itu (R1 dan R2).
· R1 diberikan pada P1 sedang R2 diberikan pada P2.
· Karena untuk melanjutkan eksekusi memerlukan dua sumber daya sekaligus maka proses akan saling menunggu sumber daya lain selamanya.
· Terdapat dua proses P1 dan P2
· Dua sumber kritis R1 dan R2
· Proses P1 dan P2 harus mengakses kedua sumber daya itu (R1 dan R2).
· R1 diberikan pada P1 sedang R2 diberikan pada P2.
· Karena untuk melanjutkan eksekusi memerlukan dua sumber daya sekaligus maka proses akan saling menunggu sumber daya lain selamanya.
Syarat terjadinya deadlock:
· Mutual exclusion
Tiap sumber daya saat diberikan pada satu proses.
· Hold and wait Condition
Proses-proses yang sedang menggenggam sumber daya, menunggu
sumberdaya-sumberdaya baru
· Non Preemption Condition
Sumberdaya- sumberdaya yang sebelumnya duberikan tidak dapat
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
· Circulair Wait Condition
Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
· Mutual exclusion
Tiap sumber daya saat diberikan pada satu proses.
· Hold and wait Condition
Proses-proses yang sedang menggenggam sumber daya, menunggu
sumberdaya-sumberdaya baru
· Non Preemption Condition
Sumberdaya- sumberdaya yang sebelumnya duberikan tidak dapat
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
· Circulair Wait Condition
Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi deadlock :
· Pencegahan terjadinya deadlock
· Pengindaran terjadinya deadlock
· Deteksi dan pemulihan deadlock
· Pencegahan terjadinya deadlock
· Pengindaran terjadinya deadlock
· Deteksi dan pemulihan deadlock
3. STARVATION
Proses dikatakan mengalami starvation jika proses-proses itu
menunggu
alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.
alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.
Ilustrasi:
Misal terdapat 3 (tiga) proses P1,P2 dan P3.
P1,P2 dan P3.memerlukan akses sumber daya R secara periodik.
Selanjutnya :
P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu
sumber sumber daya R.
Ketika P1 keluar dari critical region, P2 dan P3 diijinkan
mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R.
Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.
Misal terdapat 3 (tiga) proses P1,P2 dan P3.
P1,P2 dan P3.memerlukan akses sumber daya R secara periodik.
Selanjutnya :
P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu
sumber sumber daya R.
Ketika P1 keluar dari critical region, P2 dan P3 diijinkan
mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R.
Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.
4. SINKRONISASI
Latar Belakang :
- Akses-akses yang dilakukan secara bersama-sama ke data
yang sama, dapat menyebabkan data
memori bersama atau untuk sistem tersebar.
DAFTAR PUSTAKA menjadi tidak konsisten.
- Untuk menjaga agar data tetap konsisten, dibutuhkan
mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang
bekerja.
- Race Condition: Situasi dimana beberapa proses mengakses
dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung
dari proses mana yang selesai terakhir.
-Untuk menghindari Race Condition, proses-proses secara
bersamaan harus disinkronisasikan.
D. Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi
menjadi 2, yaitu:
-
Mengasumsikan adanya memori yang digunakan bersama
-
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
www.google.com
www.google.co.id
http://syahrie.files.wordpress.com/2009/01/kongkurensi1.pdf
http://komputasi.files.wordpress.com/2009/03/so2009-05.pdf
http://mohiqbal.staff.gunadarma.ac.id/…/06.Sinkronisasi+dan+Deadlock.ppt
http://puva.multiply.com/journal/item/52/about_Sistem_Operasi
http://youfan.wordpress.com/2008/05/26/mutual-exclusion/
http://lecturer.ukdw.ac.id/anton/download/SO6.pdf
http://d4roel.wordpress.com/2009/03/23/sistem-operasi-week-3/
http://yayangarya-blog.blogspot.com/2009/11/kongkurensi-mutual-exclusion-dan.html
http://yogapw.wordpress.com/2009/10/21/konkurensi/
http://s-operasimnjmn.blogspot.com/2010/10/konkurensi-dan-keamanan.htm
l
l





Comments
Post a Comment