KONKURENSI DAN KEAMANAN SISTEM
A. Pengertian
Konkurensi
Konkurensi merupakan lansdasan umum perancangan sistem operasi.
Proses –proses disebut konkuren jika proses-proses ada pada saat yang sama
B.
Prinsip – prinsip Konkurensi
Prinsip – prinsip konkurensi meliputi :
1. Alokasi
layanan pemoses untuk proses – proses
2. Pemakaian
bersama dan persaingan untuk mendapatkan sumberdaya
3. Sinkronisasi
aktivitas banyak proses
4. Komunikasi
antar proses
Konkurensi
dapat muncul pada konteks berbeda yaitu :
1. Untuk
banyak pemakai
2. Untuk
strukturisasi dari aplikasi
3. Untuk
strukturisasi dari satu proses
4. Untuk
strukturisasi sistem operasi
C. Beberapa
kesulitan yang ditimbulkan konkurensi
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.
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.
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
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 independen terhadap kecepatan
d) Hasil-hasil proses harus independen terhadap kecepatan
relatif proses-proses lain dimana eksekusi
dilakukan.
D. Masalah – masalah konkuren
D. Masalah – masalah konkuren
1. Mutual
Exclusion
Adalah
jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu
tertentu. Proses-proses yang lain dilarang mengerjakan hal yang sama. Bagian
program yang sedang mengakses memori atau sumber daya yang dipakai bersama
disebut Critical Section/Region. Mutual Exclusion merupakan jaminan untuk
mengatasi kondisi pacu agar tidak boleh 2 proses atau lebih memasuki Critical
Section secara bersamaan.
Kesuksesan
proses- proses kongkuren memerlukan pendefinisian Critical Section dan
memaksakan Mutual Exclusion di antara proses-proses kongkuren yang sedang
berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.
Pemaksaan
adanya mutual eclusion menimbulkan dua maslah, yaitu:
- Deadlock.
- Deadlock.
-
Startvation.
Kriteria
penyelesaian mutual exclusion:
1. Mutual
exclusion harus dijamin, hanya satu proses pada saat yang
diijinkan masuk ke critical section.
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.
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.
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak
ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
proses yang ada.
2. Deadlock.
Deadlock
adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang
lain untuk melepaskan resource yang sedang dipakai. Karena beberapa
proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja
proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi
ketika banyak proses yang membagi sebuah resource yang hanya boleh
dirubah oleh satu proses saja dalam satu waktu.
Di
kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada
gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang
akan menyeberangi jembatan. 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.
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.
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
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.
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.
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode
Mengatasi deadlock :
1. Pencegahan
terjadinya deadlock
2. Pengindaran
terjadinya deadlock
3. Deteksi
dan pemulihan deadlock
3. 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).
Namun, starvation juga
bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam
sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses
selalu mendapat resource, sedangkan proses yang lain tidak pernah
mendapatkannya. Ilustrasi starvation tanpa deadlock di
dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan
terjadi starvation karena resource (jembatan) selalu dipakai oleh
antrian kiri, dan antrian kanan tidak mendapatkan giliran
.
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.
Adalah
proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan
utama sinkronisasi adalah menghindari terjadinya inkonsistensi data karena
pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk
mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar
dan terhindar dari deadlock atau starvation.
Latar
Belakang :
1. Akses-akses
yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data
menjadi tidak konsisten.
2. Untuk
menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk
memastikan pemintaan ekseskusi dari proses yang bekerja.
3. Race
Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data
secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang
selesai terakhir.
4. Untuk
menghindari Race Condition, proses-proses secara bersamaan harus
disinkronisasikan.
E.
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.
Sumber : http://cahgantenggg./2013/06/masalah-masalah-konkuren-tugas-sistem.html
Ancaman
– Ancaman Keamanan
Kebutuhan keamanan sistem komputer meliputi tiga aspek, yaitu:
1.
Kerahasiaan (secrecy)
2. Integritas
(Intergrity)
3. Ketersediaan
(availability)
F. Definisi
Keamanan
Adalah
untuk menjamin sumberdaya agar tidak digunakan atau dimodifikasi orang yang
tidak diotorisasikan
Keamanan
sistem terbagi menjadi tiga yaitu :
1. Keamanan
eksternal ( external security)
2. Keamanan
interface pemakai (user interface security)
3. Keamanan
internal (internal security)
G. Masalah
– Masalah Keamanan
Terdapat
2 masalah penting :
1. Kehilangan
data (data lost) disebabka bencana, kesalahan perangkat keras/lunak, kesalahan kelalaian
manusia
2. Penyusup
(intruder), berupa penyusupan pasif dan penyusupan aktif
H. Tipe
– Tipe Ancaman Keamanan
1. Interupsi (interruption)
Sumber daya sistem komputer dihancurkan atau menjadi
tak tersedia atau tak berguna. Interupsi merupakan ancaman terhadap
ketersediaan.
Contoh : penghancuran bagian perangkat keras, seperti
harddisk, pemotongan kabel komunikasi.
2. Intersepsi (interception)
Pihak tak diotorisasi dapat mengakses sumber daya.
Interupsi merupakan ancaman terhadap kerahasiaan. Pihak tak diotorisasi dapat
berupa orang atau program komputer.
Contoh : penyadapan untuk mengambil data rahasia, mengetahui
file tanpa
diotorisasi.
3. Modifikasi (modification)
3. Modifikasi (modification)
Pihak tak diotorisasi tidak hanya mengakses tapi juga
merusak sumber daya.
Modifikasi merupakan ancaman terhadap integritas.
Contoh : mengubah nilai-nilai file data, mengubah program
sehingga bertindak secara berbeda, memodifikasi pesan-pesan yang ditransmisikan
pada jaringan.
4. Fabrikasi (fabrication)
Pihak tak diotorisasi menyisipkan/memasukkan
objek-objek palsu ke sistem.
Fabrikasi merupakan ancaman terhadap integritas.
Contoh : memasukkan pesan-pesan palsu ke jaringan, penambahan
record ke file.
I.
Mekanisme Proteksi
1.
Objek perangkat keras
2.
Objek perangkat lunak
J.
Program – Program Jahat
1.
Program yang memerlukan host program
Trapdoor
Logic bomb
Trojan horse
Virus
2.
Program yang tidak memerlukan host program (independen)
Bacteria
Worm
K.
Virus dan Anti Virus
Virus
adalah kode yang ditempelkan dalam satu program yang menyebabkan
pengopian dirinya ke satu program lain atau lebih.
Virus mengalami siklus
hidup empat fase (tahap), yaitu:
1.
Fase tidur (dormant phase)
2. Fase propagasi (propagation phase)
3. Fase pemicuan (triggering phase)
4. Fase eksekusi (execution phase)
Klasifikasi tipe virus adalah sebagai berikut:
_ Parasitic virus
_ Memory-resident virus
_ Boot sector virus
_ Stealth virus
_ Polymorphic virus
Anti Virus
Solusi ideal terhadap ancaman virus adalah pencegahan. Pendekatan
yang dilakukan setelah pencegahan terhadap masuknya virus,yaitu:
Deteksi, Identifikasi dan Penghilangan.
Perkembangan anti virus dapat diperiodekan menjadi 4
(empat) generasi, yaitu:
1. Generasi pertama : sekedar scanner sederhana
2. Generasi kedua : scanner yang pintar (heuristic scanner)
3. Generasi ketiga : jebakan-jebakan aktivitas activity trap)
4. Generasi keempat : proteksi penuh (full-feature protection)