PERTEMUAN 5 KONKURENSI DAN SISTEM KEAMANAN

KONKURENSI DAN KEAMANAN SISTEM

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. Deadlock
3. Startvation

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:

Banyak aplikasi (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.
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.
Keunggulan strukturisasi dapat jauga 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.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

Interaksi Antar Proses.

B. 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.

Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:

o Aktivitas proses-proses lain
o Cara sistem operasi menangani interupsi
o Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.

Beberapa kesulitan yang dapat muncul, di antaranya adalah:

o 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.

o 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.

o Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.


1. Pokok Penyelesaian Masalah Konkurensi

Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:

- Mengasumsikan adanya memori yang digunakan bersama
- Tidak mengasumsikan adanya memori yang digunakan bersama.







1. 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:

o Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini terjadi proses tunggal.
o Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
o 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.
o Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section harus ijinkan masuk tanpa waktu tunda.
o Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.
o Proses hanya tinggal pada critical section selama satu waktu yang tidak terhingga


2. 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.

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. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

a. Mengabaikan adanya  deadlock.
b. 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.
c. Membiarkan deadlock  untuk terjadi, pendekatan ini membutuhkan dua metode yang  saling mendukung, yaitu:
- Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
- Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.

Pencegahan Deadlock

1. Meniadakan Mutual exclusion.
Harus tetap menjaga resource-resource yang bersifat non-shareable. 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.

2. Meniadakan Syarat 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. Meniadakan 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. Meniadakan Circular Wait.
Memberi nomor pada setiap resource yang ada, dan setiap resource hanya boleh mengakses resource secara berurutan.

Mendeteksi Deadlock dan Memulihkan Deadlock

Metode deteksi digunakan pada system yang mengijinkan terjadinya deadlock. Tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, system dipulihkan dari deadlock dengan metode pemulihan.
Metode pemulihan dari deadlock berupaya untuk menghilangkan deadlock dari system sehingga system beroperasi kembali, bebas dari deadlock. Proses-proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-sumberdayanya.

3. 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.
Program – Program Jahat
Terdapat taksonomi ancaman perangkat lunak atau klasifikasi program jahat (malicious program), yaitu :
  • Program – program yang memerlukan program inang (host program).  Fragmen program tidak dapat mandiri secara independen dari suatu program aplikasi, program utilitas atau program sistem.
  • program – program yang tidak memerlukan program inang . Program sendiri yang dapat dijadwalkan dan dijalankan oleh sistem operasi.
Pembagiaan Atau Taksonomi Menghasilkan Tipe – Tipe Program Jahat
  1. Bacteria adalah program yang mengkonsumsi sumber daya sistem dengan mereplikasi dirinya sendiri. Bacteria tidak secara eksplisit merusak file. Tujuan program ini hanya satu yaitu mereplikasi dirinya.
  2. Logic Bomb adalah logik yang ditempatkan pada program komputer agar memeriksa suatu kumpulan kondisi disistem. Ketika kondisi – kondisi yang dimaksud ditemui, logik mengeksekusi suatu fungsi yang menghasilkan aksi – aksi tak terotorisasi.
  3. Trapdoor adalah titik masuk tak terdokumentasi rahasia disatu program untuk memberikan akses tanpa metode – metode otentifikasi normal.
  4. Trojan Horse adalah rutin tak terdokumentasi rahasia ditempelkan dalam satu program berguna. Program yang berguna mengandung kode tersembunyi yang ketika dijalankan melakukan suatu fungsi yang tak diinginkan.
  5. Virus adalah kode yang ditempatkan dalam satu program yang menyebabkan pengkopian dirinya disisipkan kesatu program lain atau lebih. Program meninfeksi program – program lain dengan memodifikasi program- program itu.
  6. Warm adalah program yang dapat mereplikasi dirinya dan mengirim kopian- kopian dari komputer lewat hubungan jaringan.
Perangkat Lunak 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.
Jenis Antivirus  Berdasarkan Pengguna
Antivirus berdasarkan penggunanya dibagi menjadi 2, yaitu Home User dan Network /Corporate User. Untuk home user, antivirus berjalan seperti biasa. Untuk versi jaringan (network), antivirus dapat melakukan scan di komputer – komputer client dan network drive. Selain itu, proses update komputer client dalam jaringan tidak harus langsung dari Internet. Komputer client dapat melakukan upate langsung dari server jaringan.
Pada umumnya, cara kerja antivirus adalah:
  • 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
  • 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

Komentar