Senin, 03 Desember 2012

Clone, Mirror dan Array




Pengertian Mirror


Mirror disini suatu duplikat dari suatu situs yang ditempatkan pada server yang berbeda dengan server aslinya. Fungsi mirror site ini, adalah untuk mengurangi lalu lintas data pada suatu situs.

Intinnya ialah fungsi Mirror ini untuk mengurangi lalu lintas data pada suatu situs. Misalkan anda mengunjungi website Facebook. Server Facebook, terdapat di beberapa negara. Bukan hanya di 1 negara saja. Jika hanya ada 1 server Facebook, maka tentu saja lalu lintas data-nya akan macet karena Server Facebook bekerja sangat keras untuk melayani permintaan anda sebagai Client (Lihat juga Pengertian Server dan Client).Misalkan anda ingin download sebuah File yang ber-server di Amerika Serikat. Tentu akan sangat lama untuk men-downloadnya karena lokasi server tersebut sangat jauh. Maka dari itu, diciptakanlah Mirror situs tersebut dengan membangun server baru yang berlokasi di Indonesia.Jadi, makin dekat sebuah server dengan lokasi kita, makas semakin cepat pula untuk kita berlalu lintas di situs tersebut (Untuk download, upload, dan lain-lain).

Pengertian Array
Array adalah kumpulan data bertipe sama yang menggunakan nama sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.

Array dapat dibedakan menjadi :

1. Array Berdimensi Satu

Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip.

Bentuk umum pendeklarasian:

nama_array[jumlah_eleman]; 

Array satu Dimensi adalah struktur data yang statis yang mempunyai 1 nama tetapi memiliki banyak tempat. Setiap tempat harus dibedakan, untuk membedakannya dibutuhkan penunjuk, pentunjuk dapat berupa karakter(char) atau integer. Sekali disimpan dalam penunjuk yang sama(berbentuk indeks), maka isinya tidak akan hilang kecuali indeksnya diisi oleh nilai yang lain.

Pada saat mendeklarasikan suatu variabel bertipe array, kita harus menuliskan informasi informasi berikut :

1. nama variabel : peraturan untuk nama array sama dengan untuk nama variabel biasa.
2. tipe data variabel : apa tipe data yang ingin disimpan di dalam array ? int ? float ? char ? dsb.....
3. jumlah elemen : berapa banyak data yang ingin disimpan di dalam array ? 20 ? 30 ? 1000 ? dsb.....

Dengan array kita masih bisa meninjau nilai yang telah kita masukkan. Array adalah struktur data statis, sehingga apabila sudah ditetapkan 100 tempat, akan tetap tersedia 100 tempat. Bila tempatnya berlebih, sisanya tidak akan dipakai. Bila tempatnya kekurangan, maka hal ini tidak bisa ditanggulangi.

2. Array Berdimensi Dua

Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom.

Bentuk umum pendeklarasian:

nama_array[jumlah_eleman_baris][jumah_eleme_kolom]; 

3. Array Berdimensi Tiga/ Multi dimensi

Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui banyak indeks atau subskrip. Array seperti ini biasa digunakan untuk matik, array 2 dimensi juga termasuk kedalam array multidimensi.

Pengertian Mirror
       Linux menyediakan dua macam system call , yaitu fork dan clone. fork memiliki fungsi untuk menduplikasi proses dimana proses anak yang dihasilkan bersifat independent. clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dari proses induk. Namun demikian, selain membuat proses baru yang terpisah dari proses induk, clone juga mengizinkan terjadinya proses berbagi ruang alamat antara proses anak dengan proses induk, sehingga proses anak yang dihasilkan akan sama persis dengan proses induknya.

       Setiap proses memiliki struktur data yang unik. Namun demikian, proses-proses di Linux hanya menyimpan pointer-pointer ke struktur data lainnya dimana instruksi disimpan, sehingga tidak harus menyimpan instruksi ke setiap struktur data yang ada. Hal ini menyebabkan context switch antar proses di Linux menjadi lebih cepat. Ketika fork dieksekusi, sebuah proses baru dibuat bersamaan dengan proses penyalinan struktur data dari proses induk. Ketika clone dieksekusi, sebuah proses baru juga dibuat, namun proses tersebut tidak menyalin struktur data dari proses induknya. Proses baru tersebut hanya menyimpan pointer ke struktur data proses induk. Oleh karena itu, proses anak dapat berbagi ruang alamat dan sumber daya dengan proses induknya. Satu set flag digunakan untuk mengindikasikan seberapa banyak kedua proses tersebut dapat berbagi. Jika tidak ada flag yang ditandai, maka tidak ada sharing, sehingga clone berlaku sebagai fork. Jika kelima flag ditandai, maka proses induk harus berbagi semuanya dengan proses anak.

Tabel Flag dan Fungsinya
CLONE_FILES            Berbagi berkas
CLONE_SIGHAND     Berbagi sinyal
CLONE_PID                Berbagi PID dengan proses induk

CLONE_VM                Berbagi data dan Stack
CLONE_FS                  Berbagi informasi sistem berkas
Sumber: 

Tidak ada komentar:

Posting Komentar