KONKURENSI DAN KEAMANAN SISTEM
Konkurensi
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 waktu oleh 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:
1. 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:
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:
- Link dapat otomatis dibuat
- Sebuah
link berhubungan dengan tepat satu proses komunikasi berpasangan
- Diantara
pasangan itu terdapat tepat satu link
- Link
tersebut biasanya merupakan link komunikasi dua arah
2. 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:
- Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
- Sebuah
link dapat terhubung dengan banyak proses
- Setiap
pasang proses dapat membagi beberapa link komunikasi
- 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 suspend sebelum 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:
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.
3.
Proses-proses saling mempedulikan secara langsung
Proses-proses
dapat saling bekomunikasi dan dirancang bekerja sama
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.
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.
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.
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.
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
·
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
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.
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.
4.
SINKRONISASI
Latar
Belakang :
–
Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat
menyebabkan data 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 memori bersama atau untuk
sistem tersebar.

Antivirus
Antivirus adalah sebuah jenis perangkat lunak yang digunakan untuk mengamankan, mendeteksi, dan menghapus virus komputer dari sistem komputer. Antivirus disebut juga Virus Protection Software. Aplikasi ini dapat menentukan apakah sebuah sistem komputer telah terinfeksi dengan sebuah virus atau tidak. Umumnya, perangkat lunak ini berjalan di latar belakang (background) dan melakukan pemindaian terhadap semua berkas yang diakses (dibuka, dimodifikasi, atau ketika disimpan).
Antivirus - antivirus terbaru sekarang tidak hanya mendeteksi virus. Program antivirus sekarang juga telah dilengkapi dengan kemampuan untuk mendeteksi spyware, rootkits, dan malware - malware lainnya. Tidak hanya itu, antivirus sekarang dilengkapi firewall untuk melindungi komputer dari serangan hacker dan anti spam untuk mencegah masuknya email sampah dan/atau virus ke inbox pengguna.
Pada umumnya, cara kerja antivirus adalah:
1. Pendeteksian dengan menggunakan basis data virus signature (virus signature database): Cara kerja antivirus ini merupakan pendekatan yang banyak digunakan oleh antivirus tradisional, yang mencari tanda-tanda dari keberadaan dari virus dengan menggunakan sebagian kecil dari kode virus yang telah dianalisis oleh vendor antivirus, dan telah dikatalogisasi sesuai dengan jenisnya, ukurannya, daya hancurnya dan beberapa kategori lainnya. Cara ini terbilang cepat dan dapat diandalkan untuk mendeteksi virus-virus yang telah dianalisis oleh vendor antivirus, tapi tidak dapat mendeteksi virus yang baru hingga basis data virus signature yang baru diinstalasikan ke dalam sistem. Basis data virus signature ini dapat diperoleh dari vendor antivirus dan umumnya dapat diperoleh secara gratis melalui download atau melalui berlangganan (subscription), dan/atau
2. Pendeteksian dengan melihat cara bagaimana virus bekerja: Cara kerja antivirus seperti ini merupakan pendekatan yang baru yang dipinjam dari teknologi yang diterapkan dalam Intrusion Detection System (IDS). Cara ini sering disebut juga sebagai Behavior-blocking detection. Cara ini menggunakan policy (kebijakan) yang harus diterapkan untuk mendeteksi keberadaan sebuah virus. Jika ada kelakuan perangkat lunak yang "tidak wajar" menurut policy yang diterapkan, seperti halnya perangkat lunak yang mencoba untuk mengakses address book untuk mengirimkan e-mail secara massal terhadap daftar e-mail yang berada di dalam address book tersebut (cara ini sering digunakan oleh virus untuk menularkan virus melalui e-mail), maka antivirus akan menghentikan proses yang dilakukan oleh perangkat lunak tersebut. Antivirus juga dapat mengisolasi kode-kode yang dicurigai sebagai virus hingga administrator menentukan apa yang akan dilakukan selanjutnya. Keuntungan dari cara ini adalah antivirus dapat mendeteksi adanya virus-virus baru yang belum dikenali oleh basis data virus signature. Kekurangannya, jelas karena antivirus memantau cara kerja perangkat lunak secara keseluruhan (bukan memantau berkas), maka seringnya antivirus membuat alarm palsu atau "False Alarm" (jika konfigurasi antivirus terlalu "keras"), atau bahkan mengizinkan virus untuk berkembangbiak di dalam sistem (jika konfigurasi antivirus terlalu "lunak"), terjadi false positive. Beberapa produsen menyebut teknik ini sebagai heuristic scanning. Teknologi Heuristic Scanning ini telah berkembang begitu jauh hingga sekarang. Beberapa antivirus mengecek sebuah file dengan definisi biasa. Jika lolos dari deteksi biasa, maka file tersebut dijalankan di sebuah lingkungan virtual. Semua perubahan yang dilakukan file bersifat seperti virus, maka pengguna akan diperingatkan.
Referensi
http://syahrie.files.wordpress.com/2009/01/kongkurensi1.pdf
http://komputasi.files.wordpress.com/2009/03/so2009-05.pdf
http://dasar-sistem-operasi.blogspot.com/2010/11/konskurensi-dan-keamanan.html
https://id.wikipedia.org/wiki/Perangkat_lunak_antivirus
https://id.wikipedia.org/wiki/Perangkat_lunak_antivirus
0 komentar:
Posting Komentar