Selasa, 16 Juni 2020

File-System

Pengertian File Sistem
          File Sistem merupakan mekanisme penyimpanan on-line serta untuk akses, baik data maupun program yang berada dalam system operasi. Terdapat dua bagian penting dalam system file, yaitu :
  • Kumpulan File,sebagai tempat penyimpanan data,serta
  • Struktur direktori, tang mengatur dan menyediakan informasi mengenai seluruh berkas dalam system
A. Konsep Dasar File System
       Komputer dapat menyimpan informasi ke beberapa media penyimpanan yang berbeda, seperti magnetic disks, magnetic tapes dan optical disks. Agar komputer dapat digunakan dengan nyaman, system operasi menyediakan system penyimpanan dengan sistematika yang seragam. Sistem operasi mengabstraksikan property fisik dari media penyimpanannya dan mendefinisikan unit penyimpanan logis yaitu file. File dipetakan ke media fisik oleh system operasi. Media penyimpanan ini umumnya bersifat non-volatile, sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik maupun system reboot.

   file sistem adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Dari sudut pandang pengguna, file merupakan bagian terkecil dari penyimpanan logis, artinya data tidak dapat ditulis ke penyimpanan sekunder kecuali jika berada di dalam file. Biasanya file sistem merepresentasikan program dan data. Data dari berkas dapat bersifat numeric, alfabetik, alfanumerik atau pun biner. Format berkas juga bias bebas, misalnya file berkas teks atau dapat juga diformat pasti. Secara umum, file adalah urutan bit, byte, baris atau catatan yang didefinisikan oleh pembuat berkas dan pengguna.

     Informasi dalam file ditentukan oleh pembuatnya. Ada banyak beragam jenis informasi yang dapat disimpan dalam file. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh file, sesuai dengan jenisnya masing-masing. Contohnya :
  • Text file; yaitu urutan karakter yang disusun ke dalam baris-baris.
  • Source file; yaitu urutan subroutine dan fungsi yang nantinya akan dideklarasikan.
  • Object file; merupakan urutan byte yang diatur ke dalam blok-blok yang dikenali oleh linker dari system.
  • Executable file; adalah rangkaian code section yang dapat dibawa loader ke dalam memori dan dieksekusi
B. Atribus File System

       file diberi nama untuk kenyamanan bagi pengguna dan untuk acuan bagi data yang terkandung di dalamnya. Nama file biasanya berupa string atau karakter. Beberapa system membedakan penggunaan huruf besar dan kecil dalam penamaan sebuah file, sementara system yang lain menganggap kedua hal di atas sama. Ketika file diberi nama, maka file tersebut akan menjadi madiri terhadap proses, pengguna bahkan system yang membuatnya. Atribut file terdiri dari :
  • Nama; merupakan satu-satunya informasi yang tetap dalam bentuk yang bias dibaca oleh manusia (human-readable form)
  • Type, dibutuhkan untuk system yang mendukung beberapa type berbeda
  • Lokasi; merupakan pointer ke device dan ke lokasi berkas pada device tersebut
  • Ukuran (size); yaitu ukuran berkas pada saat itu, baik dalam byte, huruf atau pun blok
  • Proteksi; adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis dan mengeksekusi berkas
  • Waktu, tanggal dan identifikasi pengguna; informasi ini biasanya disimpan untuk :     
           1. Pembuatan file
           2. Modifikasi terkahir yang dilakukan pada file dan
           3. penggunaan terakhir file.

        Data tersebut dapat berguna untuk proteksi, keamanan dan monitoring penggunaan dari file. Informasi tentang seluruh file disimpan dalam struktur direktori yang terdapat pada penyimpanan sekunder. Direktori, seperti file, harus bersifat non-volatile, sehingga keduanya harus disimpan pada sebuah device dan baru dibawa bagian per-bagian ke memori pada saat dibutuhkan.

B. Operasi Pada File
        Sebuah file adalah jenis data abstrak. Untuk mendefinisikan file secara tepat, perlu melihat operasi yang dapat dilakukan pada file tersebut. Sistem operasi menyediakan system calls untuk membuat, membaca, menulis, mencari, menghapus dan sebagainya. Berikut dapat kita lihat apa yang harus dilakukan system operasi pada keenam operasi dasar pada file.
  • Membuat sebuah file
         Ada dua cara dalam membuat file. Pertama, tempat baru di dalam system file harus di alokasikan untuk file yang akan dibuat. Kedua, sebuah direktori harus mempersiapkan tempat untuk file baru, kemudian direktori tersebut akan mencatat nama file dan lokasinya pada sistem file.
  • Menulis pada sebuah file
        Untuk menulis pada file, kita menggunakan system call beserta nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada file. Ketika diberi nama file, system mencari ke direktori untuk mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk tulis pada file dimana penulisan berikut akan ditempatkan. Penunjuk tulis harus diperbaharui setiap terjadi penulisan pada file.
  • Membaca sebuah File
       Untuk dapat membaca sebuah file, dapat menggunakan system call beserta nama file di blok memori mana file berikutnya diletakkan. Direktori mencari berkas yang akan dibaca dan system menyimpan penunjuk baca pada file dimana pembacaan berikutnya akan terjadi. Ketika pembacaan dimulai, penunjuk harus diperbaharui. Sehingga secara umum, suatu berkas ketika sedang dibaca atau ditulis, kebanyakan system hanya mempunyai satu penunjuk, baca dan tulis menggunakan penunjuk yang sama, hal ini menghemat tempat dan mengurangi kompleksitas system.
  • Menempatkan kembali sebuah file
       DIrektori yang bertugas untuk mencari file yang bersesuaian dan mengembalikan lokasi file pada saat itu. Menempatkan file tidak perlu melibatkan proses I/O. Operasi ini sering disebut pencarian file.
  • Menghapus sebuah file
     Untuk menghapus file, perlu dicari file tersebut di dalam direktori. Setelah ditemukan dapat dibebaskan tempat yang dipakai file tersebut (sehingga dapat digunakan oleh file lain) dan menghapus tempatnya di direktori.
  • Memendekkan file
      Ada suatu keadaan dimana pengguna menginginkan atribut dari file tetap sama tetapi ingin menghapus isi dari file tersebut. Fungsi ini mengizinkan semua atribut tetap sama tetapi panjang file menjadi nol, hal ini lebih baik daripada memaksa pengguna untuk menghapus file dan membuatnya lagi.

Jenis file

Beberapa informasi yang terkait dengan pembukaan berkas, yaitu :
  • Penunjuk file
       Pada system yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis, system tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
  • Penghitung file yang terbuka
       Setelah berkas ditutup, system harus mengosongkan kembali table berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di table akan habis. KArena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan system harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di table. Penghitung ini mencatat banyaknya berkas yang telah dibuka dan ditutup dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah system dapat mengosongkan tempatnya di table.
  • Lokasi file pada disk
       Kebanyakan operasi pada berkas memerlukan system untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi.

C. Klasifikasi File

1. MASTER FILE
    Adalah file yang berisi data yang relatif tetap. Ada 2 jenis Master File :

a. Reference Master File;
     File yang berisi record yang tak berubah / jarang berubah.
b. Dynamic Master File;
  File yang berisi record yang terus menerus berubah dalam kurun waktu tertentu atau berdasarkan suatu peristiwa transaksi.

2. TRANSACTION FILE
      Adalah file yang berisi record-recod yang akan memperbaharui / meng-update record-record yang ada pada master file. Meng-update dapat berupa : Penambahan record, Penghapusan dan perbaikan record.

3. REPORT FILE
     Adalah file yang berisi data yang dibuat untuk laporan / keperluan user. File tersebut dapat dicetak pada kertas printer atau hanya ditampilkan di layar.

4. WORK FILE
  Merupakan file sementara dalam sistem. Suatu work file merupakan alat untuk melewatkan data yang dibuat oleh sebuah program ke program lain. Biasanya file ini dibuat pada waktu proses sortir.

5. PROGRAM FILE
     Adalah file yang berisi instruksi-instruksi untuk memproses data yang akan disimpan pada file lain pada memori utama.

6. TEXT FILE
    Adalah file yang berisi input data alphanumeric dan grafik yang digunakan oleh sebuah text editor program. Text file hanya dapat diproses dengan text editor.

7. DUMP FILE
  Adalah file yang digunakan untuk tujuan pengamanan (security), mencatat tentang kegiatan peng-update-an, sekumpulan transaksi yang telah diproses atau sebuah program yang mengalami kekeliruan.

8. LIBRARY FILE
   Adalah file yang digunakan untuk penyimpanan program aplikasi, program utilitas atau program lainnya.

9. HISTORY FILE
    File ini merupakan tempat akumulasi dari hasil pemrosesan master file dan transaction file. File ini berisikan data yang selalu bertambah, sehingga file ini terus berkembang, sesuai dengan kegiatan yang terjadi.

Contoh :
Gambar di bawah ini menunjukkan system flow diagram dari suatu sistem penggajian sementara untuk menghasilkan paycheck berdasarkan timecard dan payroll information.

D. Model Akses File

Ada 3 akses yang mungkin oleh sebuah program terhadap file,yaitu :

1. Input File
    Adalah file yang hanya dapat dibaca dengan program.

2. Output File
     Adalah yang hanya dapat ditulis oleh program / file yang dibuat dengan program.

3. Input/Output File
    Adalah file yang dibaca dan ditulis ke selama eksekusi program.

Tabel di bawah ini menunjukan model akses dari sistem flow diagram.

Senin, 15 Juni 2020

Security And Protection

1. Keamanan
Keamanan sistem komputer adalah untuk menjamin sumber daya tidak digunakan atau dimodifikasi orang tak terotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas dan politis.

Keamanan sistem terbagi menjadi tiga, yaitu :

1. Keamanan eksternal (external security).
        Berkaitan dengan pengamanan fasilitas komputer dari penyusup (hacker) dan bencana seperti kebakaran dan kebanjiran.

2. Keamanan interface pemakai (user interface security).
      Berkaitan dengan identifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan.
3. Keamanan internal (internal security).
       Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data. Istilah keamanan (security) dan proteksi (protection) sering digunakan secara bergantian. Untuk menghindari kesalahpahaman, istilah keamanan mengacu ke seluruh masalah keamanan dan istilah mekanisme proteksi mengacu ke mekanisme sistem yang digunakan untuk memproteksi / melindungi informasi pada sistem komputer.

2. Masalah-Masalah Keamanan

Terdapat dua masalah penting, yaitu :

a. Kehilangan data (data loss).
  •      Dapat disebabkan karena :
1. Bencana
  • Kebakaran
  • Banjir
  • Gempa Bumi
  • Perang
  • Kerusakan 
  • Binatang
2. Kesalahan perangkat keras dan perangkat lunak
  • Ketidak berfungsinya pemrosesan 
  • Disk atau tape yang tidak terbaca
  • Kesalahan telekomunikasi
  • Kesalahan program (bugs)
3. Kesalahan / Kelalaian manusia
  • Kesalahan pemasukan data
  • Memasang tape atau disk yang salah 
  • Kehilangan disk atau tape
    Kehilangan data dapat diatasi dengan mengelola beberapa backup dan backup ditempatkan jauh dari data yang online.

Penyusup (Hacker)
  • Terdiri dari :
  1. Penyusup pasif, yaitu yang membaca data yang tak diotorisasi.
  2. Penyusup aktif, yaitu yang mengubah data yang tak diotorisasi.
Kateogri penyusupan :
  • Lirikan mata pemakai non teknis. Pada sistem time-sharing, kerja pemakai dapat diamati orang sekelilingnya. Bila dengan lirikan itu dapat mengetahui apa yang diketik saat pengisian password, maka pemakai non teknis dapat mengakses fasilitas yang bukan haknya.
  • Penyusup oleh orang dalam
  • Usaha hacker dalam mencari uang
  • Spionase militer bisnis
3. Ancaman-Ancaman Keamanan
     Sasaran pengamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem. Kebutuhan keamanan sistem komputer dikategorikan tiga aspek, yaitu :

1. Kerahasiaan (Secrecy)
       Adalah keterjaminan bahwa informasi disistem komputer hanya dapat diakses oleh pihak-pihak yang diotorisasi dan modifikasi tetap menjaga konsistensi dan keutuhan data di sistem.

2. Integritas ( Integrity)
        Adalah keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang diotorisasi.

3. Ketersediaan (Availability)
        Adalah keterjaminan bahwa susmber daya sistem komputer tersedia bagi pihak pihak yang diotorisasi saat diperlukan.

       Tipe-tipe ancaman terhadap keamanan sistem dapat dimodelkan dengan memandang fungsi sistem komputer sebagai penyedia informasi.Berdasarkan fungsi ini, ancaman terhadap sistem komputer dapat dikategorikan menjadi empat ancaman, yaitu :

1. Interupsi (interuption)
       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 dioteritaskan dapat mengakses sumber daya. Intrupsi merupakan ancaman terhadap kerahasiaan. Pihak tak diotorisasi dapat berupa orang atau program komputer. Contoh : Penyadapan untuk mengambil data rahasia, mengatahui file tanpa diotorisasi.

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 diteransmisikan 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

4. Otentifikasi Pemakai
      Kebanyakan proteksi didasarkan asumsi sistem mengetahui identitas pemakai. Masalah identifikasi pemakai ketika login disebut otentifikasi pemakai (user authentication).

Kebanyakan metode otentifikasi didasarkan pada tiga cara, yaitu :

1. Sesuatu yang diketahui pemakai, misalnya :
  • Password
  • Kombinasi Kunci
  • Nama Samaran
  • Dan Sebagainya
2. Sesuatu yang dimiliki pemakai,misalnya :
  • Badge
  • Kartu identitas
  • Kunci
  • Dan sebagainya
3. Sesuatu mengenai (ciri) pemakai, misalnya :
  • Sidik jari
  • Voce suara
  • Foto
  • Tanda tangan
  • Password
       Pemakai memilih satu kata kode, mengingatnya dan mengetikkan saat akan mengakses sistem komputer. Saat diketikkan, komputer tidak menampilkan dilayar. Teknik ini mempunyai kelemahan yang sangat banyak dan mudah ditembus. Pemakai cenderung memilih password yang mudah diingat. Seseorang yang kenal dengan pemakai dapat mencoba login dengan sesuatu yang diketahuinya mengenai pemakai.

Proteksi password dapat ditembus dengan mudah, antara lain :
  • Terdapat file berisi nama depan, nama belakang, nama jalan, nama kota dari kamus ukuran sedang, disertai dengan pengejaan dibalik), nomor plat mobil yang valid, dan string-string pendek karakter acak.
  • Isian di file dicocokan dengan file password.
Upaya untuk lebih mengamankan proteksi password, antara lain :

1. Salting
      Menambahkan string pendek ke string password yang diberikan pemakaisehingga  mencapai panjang password tertentu.

2. One time Password
      Pemakai harus mengganti password secara teratur. Upaya ini membatasi peluang password telah diketahui atau dicoba-coba pemakai lain. Bentuk ekstrim pendekatan ini adalah one time password, yaitu pemakai mendapat satu buku berisi daftar password. Setiap kali pemakai login, pemakai menggunakan password berikutnya yang terdapat di daftar password. Dengan one time password, pemakai direpotkan keharusan menjaga agar buku passwordnya jangan sampai dicuri.

3. Satu daftar panjang pertanyan dan jawaban.
    Variasi terhadap password adalah mengharuskan pemakai memberi satu daftar pertanyaan panjang dan jawabannya. Pertanyaan-pertanyaan dan jawabannya dipilih pemakai sehingga pemakai mudah mengingatnya dan tak perlu menuliskan di kertas. Pada saat login, komputer memilih salah satu dari pertanyaan-pertanyaan secara acak, menanyakan ke pemakai dan memeriksa jawaban yang diberikan.

4. Tantangan Tanggapan ( Chalege Response )
        Pemakai diberi kebebasan memilih suatu algoritma, misalnya x3. Ketika pemakai login, komputer menuliskan di layar angka 3. Dalam kasus ini pemakai mengetik angka 27. Algoritma dapat berbeda di pagi, sore, dan hari berbeda, dari terminal berbeda, dan seterusnya.

5. Access Control
      Access control pada system operasi mengatur kemampuan akses user dalam suatu jaringan, computer atau aplikasi. Sistem access control pada jaringan data umumnya menggunakan firewall. Firewall akan bertindak sebagai pelindung atau pembatas terhadap orang-orang yang tidak berhak mengakses jaringan.

Kemampuan-kemampuan firewall :

1. IP Hiding/Mapping
  • Kemampuan ini mengakibatkan IP address dalam jaringan ditransalasikan ke suatu IP address yang baru. Dengan demikian, IP address dalam jaringan tidak akan dikenali di internet.
2. Privilege Limitation
  • Dengan kemampuan ini, kita juga bisa membatasi para user jaringan sesuai dengan otorisasi atau hak-hak yang diberikan kepadanya.
3. Outside Limitation
  • Kemampuan ini, dapat membatasi para user dalam jaringan untuk mengakses ke alamat-alamat tertentu di luar jangkauan kita.
4. Inside Limitation
  • Kita memperbolehkan orang luar untuk mengakses informasi yang tersedia dalam salah satu computer dalam jaringan kita. Selain itu, tidak diperbolehkan untuk mengakses seluruh computer yang terhubung ke jaringan kita
5. Password dan Encrypted Authentication
  • Beberapa user di luar jaringan memang diizinkan untuk masuk ke jaringan kita untuk mengakses data, dengan terlebih dahulu harus memasukkan password khusus yang sudah terenkripsi.
6. Bentuk Serangan Terhadap Sistem Operasi
      Ancaman Sistem Operasi Windows pada saat ini berdasarkan daftar ancaman yang dikeluarkan oleh SANS Institute :

1. Internet Information Services (IIS)
2. Microsoft SQL Server (MSSQL)
3. Windows Authentication (termasuk LM Hashing)
4. Internet Explorer (IE)
5. Windows Remote Access Services (termasuk NetBIOS, Anonymous logon, remote registry, RPC DOM)
6. Microsoft Data Access Components (MDAC)
7. Windows Scripting Host (WSH)
8. Microsoft Outlook & Outlook Express
9. Windows Peer to Peer File Sharing (P2P)
10. Simple Network Management Protocol

    Sedangkan ancaman yang terjadi pada Unix berdasarkan daftar ancaman yang dikeluarkan oleh SANS Institute :

1. BIND Domain Name System
2. Remote Procedure Calls (RPC)
3. Apache Web Server
4. General UNIX Authentication Acounts with No Passwords or Weak
Passwords
5. Clear Text Services (termasuk FTP, r-service/trust relationship, Line
Printer Daemon)
6. Sendmail
7. Simple Network Management Protocol (SNMP)
8. Secure Shell (SSH)
9. Misconfiguration of Enterprise Services NIS/NFS
10. Open Secure Sockets Layer (SSL)

   Berdasarkan masalah ancaman pada system operasi ini, dikenal suatu istilah “vulnerabilitas”. Vulnerabilitas secara universal adalah keadaan dimana :
  • Memungkinkan penyerang mengeksekusi perintah sebagai user lainnya.
  • Memungkinkan penyerang untuk mengakses data yang berbeda dengan batasan akses untuk data tersebut.
  • Memungkinkan penyerang untuk memalsukan diri sebagai pihak lain
  • Memungkinkan penyerang untuk melakukan denial of service.
Selain itu dikenal pula istilah “exposure “, yaitu suatu keadaan dimana :
  • Memungkinkan penyerang melakukan aktivitas pengambilan informasi
  • Memungkinkan penyerang menyembunyikan aktifitas
  • Menyertakan suatu kemampuan yang berperilaku seolah-olah seperti yang diinginkan, tetapi bisa dilakukan compromise dengan mudah
  • Merupakan titik masuk utama penyerang bisa melakukan usaha memperoleh akses ke system atau data
  • Dianggap sebagai masalah yang berkaitan dengan kebijakan keamanan tertentu.
Contoh vulnerabilitas universal :
  • Menjalankan service semacam finger (berguna untuk mengambil informasi, tapi membuatnya seperti “mengiklankan” system bagi penyerang)
  • Setting dan konfigurasi yang tidak tepat pada kebijakan audit Windows NT
  • Menjalankan service yang biasa menjadi titik serangan (misal HTTP, FTP, atau SMTP)
  • Pemakaian aplikasi atau service yang bisa diserang dengan sukses memakai metode brute force.

Virtual Machines

A. Sejarah Virtual Machines
     Virtual machine pada awalnya didefinisikan oleh Gerald J. Popek dan Robert P. Goldberg di tahun 1974, sebagai suatu duplikat yang efisien dan terisolasi dari suatu mesin asli. Di masa yang sekarang ini, virtual machine yang beredar mampu melakukan simulasi perangkat keras, walaupun tak ada perangkat keras aslinya sekalipun.

         Contohnya ialah program yang ditulis dalam menggunakan bahasa Java akan dilayani oleh Java Virtual Machine (JVM) dengan cara memberikan perintah-perintah yang dimengerti JVM yang selanjutnya mampu memberikan hasil yang diharapkan.

       Dengan memberikan layanan seperti ini terhadap program tersebut, perangkat lunak JVM berlaku sebagai suatu mesin virtual, sehingga program tak lagi membutuhkan akses secara langsung melalui sistem operasi atau perangkat keras yang sangat bervariasi dan membutuhkan pemrograman masing-masing secara spesifik.
       Mesin virtual terdiri atas 2 kategori besar yang dipisahkan menurut cara penggunaan dan tingkat keterhubungan dengan mesin aslinya, yakni :
  • System Virtual Machines, perangkat yang berupa platform sistem lengkap dan mampu menjalankan suatu sistem operasi dengan lengkap.
  • Process Virtual Machines, didesain untuk menjalankan suatu program komputer tertentu saja, yang berarti virtual machine ini mendukung proses tertentu juga. Karakteristik yang paling dasar dari process virtual machines adalah batasan terhadap perangkat lunak yang berjalan di mesin tersebut, sumber daya yang terbatas dan tak bisa mengakeses di luar tembok batasan dunia maya.
B. Jenis-Jenis Virtual Machines

1. System Virtual Machines


      Keinginan dalam menjalankan beberapa sistem operasi menjadi motif awal adanya virtual machine, sehingga memungkinkan pembagian waktu diantara beberapa sistem operasi single-tasking. IBM menjadi sistem pertama yang mendukung virtualisasi penuh, menerapkan pembagian waktu dengan menyediakan setiap pengguna terhadap sistem operasi tunggal, Conversational Monitor System (CMS).

     Berbeda dengan virtual memory, sebuah system virtual machine memberikan hak kepada pengguna dalam menulis instruksi. Pendekatan ini tentu memiliki keunggulan, seperti mampu menambahkan perangkat input maupun output yang tidak diizinkan dalam sistem standar. Penggunaan virtual machine dalam mendukung sistem operasi tamu yang terpisah tentu sangat populer dalam embedded systems. Penggunaan yang paling umum ialah menjalankan sistem operasi secara real-time, bersamaan dengan sistem operasi lain yang tengah dijalankan, yang paling banyak disukai adalah Linux dan Windows.

2. Process Virtual Machines

        Sebuah process virtual machine terkadang disebut sebagai application virtual machine atau managed runtime environment (MRE) yang berjalan sebagai aplikasi normal di suatu sistem operasi dan mendukung suatu proses yang berjalan. Process virtual machines diimplementasikan dengan menggunakan interpreter, kinerja yang cukup sebanding dengan bahasa pemrograman yang dikompilasi yang mampu dicapai dengan menggunakan just-in-time compilationJenis virtual machine yang satu ini kian populer dengan bahasa pemrograman Java yang berhasil diimplementasikan menggunakan virtual machine Java. Ada juga contoh lainnya seperti .NET Framework yang berjalan pada virtual machine, disebut dengan Common Language Runtime. Semua itu bisa berfungsi sebagai lapisan abstraksi terhadap berbagai macam bahasa komputer.

C. Fungsi Virtual Machines

1. Berganti ke Versi Sistem Operasi yang lebih baru


       Dengan menggunakan virtual machine, pengguna bisa melakukan adopsi metode yang aman untuk menjalankan versi pengembangan, contohnya menjalankan sistem operasi Windows 10 pada komputer pengguna yang tengah menjalankan sistem operasi Windows 8.Dengan adanya metode ini, memungkinkan para pengguna untuk melakukan ujicoba terhadap sistem operasi Windows 10 tanpa harus menginstall versi Windows di komputer/laptop secara langsung.

2. Virtual Dari Dekstop Pengguna


   Ada kecenderungan yang muncul di kalangan komunitas IT di mana pengguna menyimpan aplikasi desktop dan sistem operasi di dalam sebuah virtual machine yang terpisah dari server dan menggunakan personal computer (PC) sebagai "thin client" ke server. Setiap pengguna terisolasi dari semua pengguna yang lain dengan menggunakan bantuan teknologi virtual machine dan pemeliharaan aplikasi yang dialihkan dari setiap desktop ke data center.

3. Melakukan Pengujian dengan sistem Operasi yang Berbeda

     Pengguna juga bisa dengan mudah menginstal distribusi Linux yang berbeda atau sistem operasi lain yang kurang dikenal dalam virtual machine dalam melakukan suatu bentuk eksperimen dan memahami bagaimana sistem operasi tersebut bekerja. Beberapa sistem operasi bisa berjalan di server yang sama, sehingga bisa menghilangkan kebutuhan dalam mendedikasikan 1 fisik server ke 1 aplikasi.

4. Melakukan Tahap Pengujian Software di Banyak Platform yang Berbeda

       Pada saat dibutuhkan adanya suatu pengujian, apakah suatu aplikasi bisa bekerja pada beberapa sistem operasi, atau hanya bisa bekerja di beberapa versi sistem operasi Windows.Pengguna bisa dengan mudah menginstal di masing-masing virtual machine, dibandingkan harus menginstal di banyak komputer yang berbeda.

5. Komplikasi Server yang Berbeda dalam penggunaan Bisnis

        Dalam tujuan bisnis dengan aplikasi yang berjalan di beberapa server, server- server yang ada bisa dimasukkan ke dalam virtual machine dan dijalankan pada hanya 1 personal computer (PC). Sehingga, hal ini tak menyebabkan adanya masalah keamanan yang mungkin saja bisa terjadi saat menjalankan server yang berbeda di sistem operasi yang sama. Virtual machine juga bisa dipindahkan dari fisik server yang satu ke fisik server yang lainnya.

D. Cara Kerja Virtual Machines

       Virtual machine bekerja dengan cara membuat layer hardware virtual pada sebuah komputer. Virtual machine akan membuat storage virtual, CPU virtual, RAM virtual DVD ROM virtual dan berbagai macam komponen virtual yang lain yang selanjutnya dijadikan sebuah virtual machine utuh. 

      Layar software yang dinamakan dengan hypervisor inilah yang secara dinamis akan mengalokasikan resource (sumber daya) pada host computer (komputer fisik) ke virtual machine sesuai dengan apa yang dibutuhkan.

       Saat virtual machine berhasil diinstal sistem operasi, maka sistem operasi yang ada di virtual machine itu (guest operating system) akan berjalan secara terisolasi di sistem operasi utama (host operating system).

     Setiap state dari virtual machine tersebut akan tersimpan ke dalam bentuk file yang selanjutnya bisa digandakan oleh pengguna dan dipindahkan dengan mudah. Dengan begitu, pengguna bisa menjalankan beberapa virtual machine dengan beberapa spesifikasi dan sistem operasi, hanya dari 1 komputer fisik saja.

E. Kelebihan dan Kekurangan Virtual Machines

1. Kelebihan Virtual Machines
  • Command Management Interface (CMI) yang sederhana untuk semua fungsi sistem operasi.
  • Memungkinkan penggunaan snapshot virtual machine sebagai pengujian 
  • Tidak ada perangkat keras (hardware) yang harus di pelihara.
  • Meningkatkan penggunaan perangkat keras ( hardware ) komputer.
  • Mampu menekan biaya operasi
  • Ketersediaan yang tinggi
  • Mampu menjalankan program lain yang belum tentu sama di host machine.
  • Memungkinkan kembali kepada sebelumnya jika terjadi kesalahan.
  • Segi keamanan yang baik.
  • Memungkinkan mendefinisikan suatu jaringan dari virtual machine.
  • Kemudahan dalam penggunaan.
  • Sebagai bahan belajar dan membandingkan berbagai sistem operasi.
2. Kekurangan Virtual Machines
  • Implementasi yang sulit,terlebih untuk orang awam.
  • Sistem operasi pada host machine dan Virtual machine berjalan lambat.
  • Kesulitan dalam sistem penyimpanan.
  • Jika host  machine mati, maka Virtual machine tak dapat diakses.
  • Kemungkinan terjadi overheating pada memori dan processor.
F. Software Virtual Machine

1. Virtual Box

         Oracle VM VirtualBox merupakan perangkat lunak virtualisasi yang bisa dipergunakan dalam mengeksekusi sistem operasi tambahan di dalam sistem operasi utama. Sebagai contoh, apabila seseorang memiliki sistem operasi Microsoft Windows yang terpasang di dalam komputer, maka seseorang tersebut bisa juga menjalankan sistem operasi lain yang diinginkan pada sistem operasi Microsoft Windows.Fungsi ini sangat penting apabila seseorang ingin melakukan suatu uji coba dan simulasi instalasi suatu sistem, tanpa harus kehilangan sistem yang sudah ada.

2. Parallels

      Parallels Desktop for Mac merupakan sebuah perangkat lunak virtualisasi perangkat keras yang ditujukan untuk Macintosh dengan processor Intel. Pengembang software ini adalah Parallels, Inc.

3. VMWare

     VMWare Workstation adalah suatu perangkat lunak virtualisasi untuk arsitektur komputer x64 dan x86-64 dari VMWare, yang menjadi bagian dari EMC Corporation. Perangkat lunak ini digunakan untuk membuat banyak komputer virtual dan digunakan secara simultan dengan sistem operais yang digunakan.

4.QEMU

     QEMU adalah singkatan dari Quick Emulator, yakni emulator yang tidak berbayar dan dikembangkan dengan open-source (sumber terbuka) yang melakukan virtualisasi perangkat keras.

    QEMU menjadi mesin virtual monitor yang dihosting, mengemulasi processor mesin melalui terjemahan biner dinamis dan menyediakan 1 set perangkat keras dan model perangkat yang berbeda bagi mesin, di mana mampu menjalankan berbagai macam sistem operasi tamu

    Hal ini juga bisa digunakan dengan KVM dalam menjalankan mesin virtual dengan kecepatan yang mendekati aslinya. QEMU bisa melakukan emulasi terhadap proses tingkat pengguna, yang memungkinkan aplikasi dikompilasi dalam 1 arsitektur untuk dijalankan pada yang lainnya.

5. Microsoft Virtual PC

     Microsoft Virtual PC merupakan suatu program virtualisasi yang dijalankan pada personal computer (PC) berbasis sistem operasi Microsoft Windows dan bisa juga dijalankan di atas komputer Apple Macintosh berbasis sistem operasi Mac OS. Pada awalnya, aplikasi ini ditulis leh Connectix, namun selanjutnya diakuisisi oleh Microsoft Corporation.

Minggu, 14 Juni 2020

Networks and Distributed System

Sistem Jaringan Terdistribusi

    Sistem Terdistribusi terdiri dari dua kata yaitu “Sistem” dan “Terdistribusi”. Sistem terdistribusi merupakan sekumpulan elemen yang saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik atau menjalangkan sperangkat fungsi. Adapun terdistribusi berasal dari kata “distribusi” yang merupakan lawan kata “sentralisasi” yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.

Contoh Sistem Terdistribusi :
  1. Intranet Jaringan (proprietary) yang teradministrasi secara lokal dan  dapat terhubung ke internet melalui firewall juga adanya layanan internal dan eksternal didalamnya.
  2. Internet Jaringan global yang menghubungkan komputer satu sama lain dan dapat berkomunikasi dengan media IP sebagai protokol.
  3. World Wide Web Arsiteketur client/server terbuka yang diterapkan di atas infrastuktur internet dan juga shared resources melalui URL.
  4. Mobile dan sistem komputasi ubiguitos Sistem telepon Celullar (e.g. GSM) re. Resources yang dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak, komputer laptop, ubiquitos computing, handheld devices, PDA, etc
  5. Sistem terdistribusi multimedia biasanya digunakan pada infrastruktur internet - karakteristik Sumber data yang heterogen dan memerlukan sinkronisasi secara real time -video, audio, text Multicast
A. Karakteristik System Terdistribusi
  • Resource Access and Sharing
       Kemampuan menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam  sebuah  sistem  terdistribusi.  Salah  satu  contohnya  dalam   sebuah   web,  terdapat .htaccess yang hanya dapat diakses oleh user-user yang telah memiliki grant access terhadap file tersebut.
  • Openness (Keterbukaan)
      Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance.
  • Concurrency
     Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut.
  • Scalability
   Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading tersebut, komponen dalam web tidak perlu diubah.
  • Fault Tolerance (Toleransi Kesalahan)
      Kesalahan pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya.
  • Transparency
    Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut.

B. Model System Terdistribusi

1.Model Client Server

      Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih proses server, dan sebuah proses client dapat mengirim query ke sembarang proses server. Client bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah personal komputer dan mengirim query ke sebuah server yang berjalan pada mainframe.

    Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang relatif sederhana karena pembagian fungsi yang baik dan karena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user- friendly. perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan.

2. Model Multiple Server

                                                                Gambar 1.1 Model Multiple Server 
Service disediakan oleh beberapa server
Contoh:
  • Sebuah situs yang jalankan dibeberapa server
  • Server menggunakan replikasi atau database terdistribusi
3. Model Proxy Server

Gambar 1.2 Model Proxy Server

     Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain. Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke sever, hal yang pertama dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada setiap client atau dapat di pakai bersama client. Tujuannya adalah mengingkatkan performance dan availibity dengan mencegah frekwensi akses ke server.

Proxy server membuat duplikasi beberapa server yang diakses oleh client
 Caching:
  •  Penyimpanan lokal untuk item yang sering diakses
  •  Meningkatkan kinerja
  • Mengurangi beban pada server
3. Model Peer To Peer
   Gambar 1.3 Model Peer To Peer

       Bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan fleksible.

4.Model Mobile Code
Gambar 1.4 Model Mobile Code

Kode yang berpindah dan dijalankan pada pc yang berbeda 
Contoh: Applet

5. Model Mobile Agent

Sebuah program yang berpindah dari satu komputer ke komputer yang lain
  • Melakukan perkerjaan otomatis
Contoh:
  • Untuk install dan pemeliharan software pada komputer sebuah organisasi
C. Permasalahan System Terdistribusi

Keheterogenan 
  • Suatu sistem terdistribusi dapat dibangun dari berbagai n/w, o/s, h/w, & p/l yg berbeda. IP dapat digunakan untuk mengatasi perbedaan jaringan.  Middleware mengatasi perbedaan lainnya.
Keterbukaan
  • Mendukung extensibility-Setiap komponen memiliki antarmuka (interface), yang di publikasi ke komponen lain.
  • Perlu integrasi berbagai komponen yang dibuat oleh programming atau vendor yang berbeda.
Keamanan
  • Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi.
Scalability
  • Penambahan pemakai membutuhkan penambahan resource yang konstan,Cegah bottleneck jika perlu ,gunakan replikasi.
Penanganan Kegagalan 
  • Setiap proses ( komputer atau jaringan ) dapat mengalami kegagalan secara independen.
  • Komponen lain harus tetap berjalan dengan baik.
Concurrency

  • Multiple users with concurret requests to a shared resources, setiap resources harus aman di lingkungan tersebut di atas.

Transparansi

  • Transparansi: bagi pemakai, keberadaan beberapa komponen tampak sebaaig satu sistem saja. Accesstransparency : Local & remote resources dapat diakses dengan operasi yang sama.
D. Keuntungan Sistem Jaringan Terdistribusi

1. Performance
  • Kumpulan dari beberapa prosesor akan memberikan kinerja yang lebih baik dari pada komputer yang terpusat. Begitu juga kalau dilihat dari sisi biaya.
2. Reliability (Fault tolerance)
  • apabila salah satu komponen terjadi kerusakan, system tetap dapat berjalan
3. Incremental Growth
  • Mudah dalam melakukan penambahan komputer/komponen
4. Sharing Data/Resources
  • Berbagi data adalah salah satu hal yang pokok pada kebanyakan aplikasi
E. Performance & Scalability

1. Performance
Ada beberapa faktor yang mempengaruhi kinerja (performance) dari pada sistem terdistribusi :
  • Kinerja dari pada personal workstations
  • Kecepatan infrastruktur komunikasi
  • Fleksibilitas dalam membagi beban kerja : contoh, apabila terdapat prosesor (workstation) yang idle maka dapat di alokasikan secara otomatis untuk mengerjakan tugas2 user.
2. Scalability
Sistem tetap harus memperhatikan efesiensi walaupun terdapat penambahan secara signifikan user atau sumber daya yang terhubung:
  • Cost (biaya) penambahan sumber daya (resources) harus reasonable.
  • Penurunan kinerja (Performance) diakibatkan oleh penambahan user atau sumber daya harus terkontrol.