Minggu, 21 Oktober 2018

PERTEMUAN KE 5

KONKURENSI DAN KEAMANAN SISTEM


A. Pengertian Konkurensi

Konkurensi adalah merupakan landasan umum perancangan sistem operasi. Proses-proses dapat disebut konkuren jika :
1. Proses-proses (lebih dari satu proses) berada pada saat yang sama.
2. Proses-proses konkuren dapat sepenuhnya tidak bergantung dengan lainya tapi dapat juga saling berinteraksi.
3. Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.

B. Prinsip-prinsip Konkurensi Meliputi

1.  Alokasi waktu pemroses untuk semua proses

Bertugas menjadwalkan alokasi pemroses di antara prosesproses ready dalam memori . Saat proses diberi jatah waktu oleh pemroses.

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

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

4. Sinkronisasi aktivitas banyak proses 

Sinkronisasi aktivitas banyak proses yaitu kerja sama diantara proses.

Konkurensi dapat muncul pada konteks berbeda, antara lain:

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

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

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

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

C. Beberapa Kesulitan yang Ditimbulkan Konkurensi 

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

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

3. Pencarian kesalahan pemrograman (Debuging)

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

Proses-proses konkuren

Proses-proses konkuren mengharuskan hal-hal berikut ditangani sistem operasi, yaitu:

a. Mengetahui Proses-Proses Aktif
Sistem operasi harus mengetahui proses-proses yang aktif.

b. 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:
  1. Waktu pemroses
  2. Memori
  3. Berkas-berkas
  4. Perangkat I/O
c. Proteksi Data dan Sumber Daya Fisik

Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.

d. Hasil-hasil harus Independen

Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

D. Masalah-masalah konkuren 

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 memahami dan memaksa batasan ini karena maksud program tidak dapat diketahui.
Contoh Ilustrasi Eksekusi Daemon Printer
Daemon untuk printer adalah proses penjadwalan dan pengendalian untuk mencetak berkas-berkas di printer sehingga seolah-olah printer dapat digunakan secara simultan oleh proses-proses. Daemon untuk printer mempunyai ruang penyimpanan di harddisk (disebut direktori spooler) untuk menyimpan berkas-berkas yang akan di cetak. Terdapat variabel in yang menunjuk slot bebas diruang harddisk yang dipakai untuk menyimpan berkas yang hendak di cetak.

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 proses 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 diberikan 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

Keadaan dimana pemberian akses bergantian terusmenerus, dan ada suatu proses yang tidak mendapatkan gilirannya. 

 





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.  

E. Pokok penyelesaian masalah konkurensi

Pada dasarnya penyelesaian masalah konkurensi terbagi menjadi dua, yaitu :
1. Mengasumsikan adanya memori yang digunakan bersama.
2. Tidak mengasumsikan adanya memori yang digunakan bersama

Adanya memori bersama lebih mempermudah dalam penyelesaian masalah konkurensi. Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori bersama.

F. Definisi Keamanan

Keamanan sistem komputer adalah untuk menjamin sumber daya agar tidak digunakan atau dimodifikasi orang yang tidak diotorisasikan.

Keamanan Sistem terbagi menjadi tiga, yaitu:
1. Keamanan Eksternal (external security)
Berkaitan dengan pengamanan fasilitas komputer dari penyusup dan bencana, seperti kebakaran dan
kebanjiran.
2. Keamanan Interface Pemakai (user interface security)
Berkaitan dengan identifikasi pemakai sebelum pemakai diizinkan mengakses program dan data yang
disimpan.
3. Keamanan Internal (internal security)
Berkaitan dengan pengaman beragam kendali yang bangun pada perangkat keras dan sistem operasi yang menjamin operasi yang andal dan tak terkorupsi untuk menjaga integritas program dan data. 

G. Ancaman-ancaman Keamanan 

Kebutuhan keamanan sistem komputer meliputi tiga aspek, yaitu:

1. Kerahasiaan (secrecy)
Adalah keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihak-pihak yang
diotorisasi, sehingga jika dimodifikasi tetap terjaga konsistensi dan keutuhan datanya.
2. Integritas (Intergrity)
Adalah keterjaminan bahwa sumber daya sistem komputer hanya dapat diakses oleh pihak-pihak yang diotorisasi.
3. Ketersediaan (Availability)
Adalah keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi
saat diperlukan.

H. Tipe-tipe Ancaman Keamanan

1. Interupsi
Sumber daya sistem komputer dihancurkan atau menjadi tidak tersedia atau tidak berguna. Merupakan ancaman terhadap ketersediaan.
cth: 
pemotongan kabel komunikasi, penghancuran bagian perangkat keras, seperti harddisk
2. Intersepsi
Pihak tidak diotorisasi dapat mengakses sumber daya. Merupakan ancaman terhadap kerahasiaan. Pihak tidak diotorisasi dapat berupa orang atau program komputer.
cth:
 penyadapan untuk mengambil data rahasia, mengkopi file tanpa diotorisasi
3. Modifikasi
Pihak tidak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Merupakan ancaman terhadap integritas.
cth: 
mengubah nilai-nilai file data, mengubah program sehingga bertindak secara berbeda, memodifikasi
pesan-pesan yang ditransminikan pada jaringan.
4. Fabrikasi
Pihak tidak diotorisasi menyisipkan/memasukkan objek-objek palsu ke sistem. Merupakan ancaman terhadap integritas
cth: 
memasukkan pesan-pesan palsu ke jaringan, penambahan record ke file

I. Mekanisme Proteksi

Pada sistem komputer banyak objek yang perlu diproteksi, yaitu:

1. Objek perangkat keras, antara lain: pemroses, segmen memori, terminal, disk drive, printer, dll.
2. Objek perangkat lunak, antara lain: proses, file, basis data, dll.
Mekanisme proteksi dikembangkan berdasarkan konsep domain. Domain adalah himpunan pasangan (objek,hak).

J. Program-program Jahat

Bowles [BOW-92] memberikan taksonomi ancaman perangkat lunak atau klasifikasi program jahat (malicious program). Ancaman-ancaman itu dapat menjadi dua kategori, yaitu:

1. Program-program yang memerlukan host program
  • Trapdoor
  • Logic Bomb
  • Trojan horse
  • Virus
Logic Bomb

Adalah logic yang ditempelkan pada program komputer agar memeriksa kumpulan kondisi di sistem.

Trapdoor

Adalah titik masuk rahasia yang tidak terdokumentasi disatu program untuk memberikan akses tanpa metode otentifikasi normal. 

Trojan Horse

Adalah rutin tak terdokumentasi rahasia yang ditempelkan dalam satu program pengguna. Program-program tersebut jika terinfeksi, pasti terdapat kode tersembunyi dan ketika dijalankan, akan melakukan suatu fungsi yang tidak diinginkan.

 Virus

Adalah kode yang ditempelkan dalam satu program yang menyebabkan pengopian dirinya ke satu program lain atau lebih. Virus biasanya melakukan fungsi yang tidak diinginkan.

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
Parasitic virus

Merupakan virus tradisional dan bentuk virus yang paling sering. Tipe ini menggantungkan diri ke file exe. Ketika program yang terinfeksi di eksekusi Virus mereplikasi dengan mencari file-file exe lain untuk diinfeksi.

Memory-resident virus 

Virus memuatkan diri ke memori utama sebagai bagian program yang menetap. Virus menginfeksi
setiap program yang dieksekusi.

Boot sector virus 

Virus menginfeksi master boot record atau boot record dan menyebar saat sistem di-boot dari disk
yang berisi virus.

Stealth virus

Virus yang bentuknya telah dirancang agar dapat menyembunyikan diri dari deteksi perangkat lunak
anti-virus.

Polymorphic virus

Virus bermutasi setiap kali melakukan infeksi. Deteksi dengan “penandaan” virus tersebut tidak
dimungkinkan.

2. Program-program yang tidak memerlukan host program (independen)
  •  Bacteria
  •  Worm 
Bacteria

Adalah program yang mengkonsumsi sumber daya sistem dengan replikasi dirinya sendiri.
Worm 

Adalah program yang dapat mereplikasi dirinya dan mengirim kopian-kopian dari komputer ke komputer lewat hubungan jaringan.

K. 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)

 DAFTAR PUSTAKA

Slide UBSI
https://manajemenmemori.wordpress.com/2010/10/26/konkurensi-dan-keamanan-2/
http://syahrie.files.wordpress.com/2009/01/kongkurensi1.pdf
http://komputasi.files.wordpress.com/2009/03/so2009-05.pdf

Minggu, 07 Oktober 2018

ALGORITMA PENJADWALAN P3

Algoritma Penjadwalan

Algoritma penjadwalan terbagi menjadi 2 bagian, diantaranya:

1. Algoritma penjadwalan pertama tiba pertama dilayanai(PTPD/FCFS/FIFO)
Yaitu penjadwalan tanpa prioritas tanpa premsi, dimana proses yang tiba lebih dahulu akan dilayani lebih dahulu, jika tiba pada waktu yang bersamaan akan dilayani sesuai dengan urutan pada antrian.

2. Algoritma penjadwalan proses terpendek dipertamakan (PTD/SJF/SJN)
Yaitu penjadwalan dengan prioritas tanpa premsi, terdiri dari 2 langkah.
a. Penjadwalan ditentukan berdasarkan pendeknya proses yang dilayani.
b. Jika proses terpendek tersebut belum tiba, maka prosesor akan melayani proses yang telah tiba sampai proses tersebut selesai.
Contoh :