Selasa, 17 April 2012

Komponen File Service


Pendahuluan

File Sistem Terdistribusi ( Distributed File System , disingkat DFS ) adalah file sistem yang mendukung sharing files dan resources dalam bentuk penyimpanan persistent di sebuah network. File server pertama kali didevelop pada tahun 1970 dan Sun NFS (Network File System) menjadi DFS pertama yang banyak digunakan setelah awal pemunculannya di tahun 1985. DFS yang terkenal selain NFS adalah AFS (Andrew File System) dan CIFS (Common Internet File System).
Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface untuk file service dalam hal operasi primitif file, seperti membuat file (create), menghapus (delete) dan read / write file. File service memiliki beberapa komponen penting.

Komponen File Service

Komponen-komponen file service terdiri dari :
1. File Service
Pengoperasian dari masing-masing file

2. Directory Service
Management atau pengaturan direktori

3. Naming Service
   a. Location independence :
       File dapat dipindahkan tanpa penggantian nama
       Hal-hal yang umum untuk penamaan file dan direktori :
       1. Mesin + nama path e.g / machine / path atau machine : path 
       2. Mo unting File sistem secara remote kedalam hirarki local file 
       3. Si ngle name space yang sama pada semua mesin
   b. Dua level penamaan :
       Na ma simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.


Referensi :

Senin, 09 April 2012

Komponen Inti OS dan Fungsi Kernel

Sistem terdistribusi juga menggunakan suatu Sistem Operasi serta fungsi Kernel didalamnya. Oleh karenanya, saya akan membahas sedikit tentang komponen-komponen pada Sistem Operasi tersebut serta fungsi-fungsi yang dapat dilakukan Kernel.

Komponen Inti Sistem Operasi

Komponen sistem operasi terdiri dari
·         manajemen proses,
·         manajemen memori utama,
·         manajemen berkas,
·         manajemen sistem I/O,
·         manajemen penyimpanan sekunder,
·         sistem proteksi,
·         jaringan, dan
·         Command-Interpreter System.

Manajemen Proses

Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen
proses seperti:
·         Pembuatan dan penghapusan proses pengguna dan sistem proses.
·         Menunda atau melanjutkan proses.
·         Menyediakan mekanisme untuk proses sinkronisasi.
·         Menyediakan mekanisme untuk proses komunikasi.
·         Menyediakan mekanisme untuk penanganan deadlock.

Manajemen Memori Utama

Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori utama termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang begitu sistem dimatikan.

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen
memori seperti:
·         Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
·         Memilih program yang akan di-load ke memori.
·         Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.

Manajemen Penyimpanan Sekunder

Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan secondarystorage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondarystorage adalah harddisk, disket, dll.

Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan diskmanagement seperti: free-space management, alokasi penyimpanan, penjadualan disk.

Manajemen Sistem I/O

Sering disebut device manager. Menyediakan "device driver" yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada hard-disk, CD-ROM dan floppy disk.
Komponen Sistem Operasi untuk sistem I/O:
·         Buffer: menampung sementara data dari/ ke perangkat I/O.
·         Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
·         Menyediakan driver untuk dapat melakukan operasi "rinci" untuk perangkat keras I/O tertentu.

Manajemen Berkas

Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas
tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.).
·         Sistem operasi bertanggung-jawab:
·         Pembuatan dan penghapusan berkas.
·         Pembuatan dan penghapusan direktori.
·         Mendukung manipulasi berkas dan direktori.
·         Memetakan berkas ke secondary storage.
·         Mem-backup berkas ke media penyimpanan yang permanen (non-volatile).

Sistem Proteksi

Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program,
prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
membedakan antara penggunaan yang sudah diberi izin dan yang belum.
·         specify the controls to be imposed.
·         provide a means of enforcement.

Jaringan

Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem.
·         Increased data availability.
·         Enhanced reliability.
·         Computation speed-up.
·         Increased data availability.
·         Enhanced reliability.

Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, commandline interpreter, dan UNIX shell. Command-Interpreter System sangat bervariasi dari satu system operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.



Kernel

Dalam sains komputer, kernel merupakan inti dari sistem pengoperasian yang mengatur penggunaan ingatan/memori, peranti masukan dan keluaran, proses-proses, penggunaan fail pada sistem fail dan lain-lain. Kernel juga menyediakan sekumpulan layanan yang digunakan untuk mengakses kernel yang disebut system call. System call ini digunakan untuk mengimplementasikan berbagai layanan yang diberikan oleh sistem pengoperasian. Program sistem dan semua program-program lainnya yang dijalankan di atas kernel disebut user mode.Kernel Linux terdiri dari beberapa bagian penting, seperti: pengurusan proses, pengurusan ingatan, pemacu perkakasan, pemacu sistem fail, pengurusan jaringan dan lain-lain. Namun bahagian yang terpenting ialah pengurusan proses dan pengurusan ingatan. Pengurusan ingatan meliputi penggunaan ingatan, kawasan pertukaran, bahagian-bahagian kernel dan untuk cache penimbal (buffer cache). Pengurusan proses menangani penggunaan proses-proses dan penjadualan proses. Pada bahagian dasar kernel terdapat pemacu perkakasan untuk setiap jenis perkakasan komputer yang disokong.

Fungsi-fungsi kernel

1. Pengurusan proses

Tugas utama sebuah system pengoperasian kernel ialah membenarkan aplikasi yang lain untuk berjalan dan menyokong mereka dengan ciri-ciri tambahan, seperti pengabstrakan perkakasan, untuk menjalan proses, kernel mesti memuat turun failnya kepada ingatan, menyediakan stack untuk program dan pergi ke lokasi yang diberikan di dalam program, ini memulakan perjalanan sesebuah program, cara ini dipanggil scheduling. Dalam sistem berbilang kerja, kernel secara asasnya akan memberikan setiap program sedikit masa dan menukarkan dari proses ke proses dengan cepat dengan itu ia akan muncul kepada pengguna jika proses ini dijalankan secara terus menerus. Kernel mesti juga menyediakan proses ini untuk berkomunikasi, ini dikenali sebagai inter-process communication. Ini kemungkinan ada multipemprosesan yang menyokong kernel tersebut.

2. Pengurusan ingatan

Kernel mempunyai akses penuh dalam ingatan sistem dan menyediakan cara-cara untuk membenarkan userland program untuk mengakses memori ini dengan selamat. Cara pertama untuk mengurus ingatan ialah virtual addressing, biasanya arkib dengan mukasurat atau segmentation. Virtual addressing membenarkan kernel untuk memberikan alamat fizikal yang muncul sebagai alamat yang lain iaitu virtual address, ini membenarkan setiap program mempercayai ia hanya satu program (sebahagian daripada kernel) yang berjalan, dan ini mengelakkan aplikasi daripada berlanggar antara satu sama lain.

3. Pengurusan peranti

Dalam arahan untuk melakukan sesuatu tugas, kernel perlu untuk mengakses perbagai peranti yang bersambungan di dalam komputer, sebagai contoh, dalam arahan untuk memaparkan pengguna apa-apa sahaja, pemacu monitor perlu untuk muncul, peranti ini boleh dikawal melalui pemacu, di mana ia mesti dibuat oleh pembangun dan/atau disediakan oleh pengilang sesuatu peranti tersebut.
Pengurus peranti pertamanya akan melakukan semakan keatas bas perkakasan yang berbeza (seperti USB, PCI), dalam arahan unruk mengesan semua peranti yang telah dipasang dan kemudiannya mencari pemacu yang bersesuaian, selepas ini, semuanya bergantung kepada jenis kernel dan rekaan kernel.

4. Sistem panggilan

Dalam arahan untuk menyediakan kerja yang berguna, program userland mesti mempunyai akses kepada semua perkhidmatan yang disediakan oleh kernel. Ini dilaksanakan secaar berbeza-beza oleh kernel yang berlainan, tetapi mesti disediakan oleh C library, dimana ia menukarkan kelemahan kesemua system panggilan, sama ada diberikan atau melalui memori yang dikongsi.

 

5. Shell


 Shell adalah perisian atau aplikasi yang menjadi alat untuk perhubungan antara pangguna untuk berhubung dengan sistem operasi, shella akan membaca apa sahaja yang dimasukkan oleh pengguna dan memahaminya sebagai arahan untuk menjalankan perisian lain, memanipulasi fail, dan memberikan output. Shell juga turut dikenali sebagai command line interface.
Terdapat pelbagai shell untuk Unix/Linux. Korn shell atau POSIX shell adalah shell yang biasa di kebanyakkan jenis unix atau linux.
 

Dibawah ini merupakan gambaran hubungan antara Kernel dengan Sistem Operasi




Referensi :


Senin, 02 April 2012

Model Arsitektur Client-Server Pada Internet


Gambaran Umum
Arsitektur jaringan Client Server merupakan model konektivitas pada jaringan yang membedakan fungsi computer sebagai Client dan Server. Arsitektur ini menempatkan sebuah komputer sebagai Server. Server ini bertugas memberikan pelayanan kepada terminal-terminal lainnya tang terhubung dalam system jaringan atau yang kita sebut sebagai Client. Server juga dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi).
Pada model arsitektur ini, Client tidak dapat berfungsi sebagai Server, tetapi Server dapat berfungsi menjadi Client (server non-dedicated). Prinsip kerja pada arsitektur ini sangat sederhana, dimana Server akan menunggu permintaan dari Client, memproses dan memberikan hasil kepada Client, sedangkan Client akan mengirimkan permintaan ke Server, menunggu proses dan melihat visualisasi hasil prosesnya. Alur prosesnya dapat dilihat pada gambar dibawah ini :

Arsitektur Client Server Pada Jaringan Internet
Model arsitektur Client-Server dapat terlihat secara jelas pada jaringan internet. Oleh karenanya saya akan membahas lebih khusu mengenai model arsitektur Client-Server pada jaringan internet.
Internet juga menggunakan arsitektur client server. Komputer Anda menjalankan sebuah program yang disebut dengan client dan program tersebut berinteraksi dengan program yang lain yang disebut sebagai server yang diletakkan di remote computer. Client biasanya merupakan sebuah browser seperti Internet Explorer, Netscape Navigator atau Mozila. Browser berinteraksi dengan server dengan menggunakan sekumpulan instruksi yang disebut dengan protokol. Protokol ini lah yang membantu dalam hal akurasi transfer data melalui request yang dikirimkan oleh browser dan response yang dikirim oleh server. Terdapat banyak protokol yang tersedia untuk Internet. World Wide Web, yang merupakan bagian dari Internet menggunakan semua protokol ini dalam satu atap, yaitu HTTP, FTP, Telnet, email, dan lain sebagainya dari satu platform sistem - hingga akhirnya ke browser Anda.
Beberapa Protokol Internet yang Sering Digunakan :
  • HTTP (HyperText Transfer Protocol), digunakan dalam World Wide Web (WWW) yang berfungsi untuk transfer halaman web dan seluruh file yang terletak dalam halaman web seperti gambar, multimedia, attachment file, dan lain sebagainya.
  • FTP (File Transfer Protocol), berfungsi untuk transfer file dari server ke client atau sebaliknya.
  • SMTP (Simple Mail Transfer Protocol), digunakan untuk pengiriman email.
  • Telnet Protocol, digunakan untuk membuka sesi telnet, yaitu sesi koneksi remote login dari satu komputer ke computer yang lain.
Web menggunakan protokol yang bersifat connection-less. Artinya setiap setelah terjadi interaksi antara client dan server, koneksi antara keduanya akan terputus, demikian seterusnya. Alur proses pada arsitektur Client-Server pada jaringan internet dapat dilihat pada gambar dibawah ini


Pada model arsitektur jaringan internet juga terdapat beberapa model komunikasi yang digunakan. Berikut ini adalah komunikasi antar client server dengan 3 model:

Model #1 Arsitektur Client Server - Halaman Web dengan HTML Statis

Client (browser) mengirim request (permintaan layanan) berupa file HTML yang tersimpan dalam server melalui aplikasi pada server. Server menanggapi request ini kemudian mengirimkan file yang diminta ke client. Client kemudian menampilkan file ini melalui komputernya. Dalam kasus ini, halaman HTML bersifat statis. Halaman-halaman statis ini tidak akan berubah hingga developernya sendiri yang mengubahnya.


Model #2 Arsitektur Client Server - Teknologi CGI Script

Skenarionya sedikit berbeda dengan aplikasi CGI. Di sini server harus bekerja lebih banyak dikarenakan program-program CGI memakai tenaga pemrosesan mesin server. Contohnya, misal kita dihadapkan pada sebuah halaman web yang menyediakan sebuah form searching yang menjalankan program CGI, kemudian kita masukkan kata "komputer" dalam form tersebut sebagai query pencarian. Browser mengirimkan request tersebut ke server, kemudian server memeriksa header dari request tersebut dan memanggil program CGI yang dibutuhkan untuk memproses data request tersebut. Program CGI
memproses data request tersebut dan mengeluarkan hasilnya (output) ke server. Server kemudian mengirimkan output tersebut dalam format HTML ke browser yang akan menampilkan hasilnya sebagai halaman HTML. Program CGI men-generate halaman-halaman web secara dinamis. Content halaman web dinamis bergantung pada query yang di-passing ke dalam program CGI.


Model #3 Arsitektur Client Server - Teknologi Server Side Script

Kasus ketiga ini juga menerapkan respon dinamis, yang di-generate oleh penggunaan teknologi server side. Terdapat banyak teknologi server side script yang populer saat ini, di antaranya yaitu:
  • Active Server Pages (ASP), merupakan teknologi Microsoft. Halaman-halaman web ASP biasanya memiliki ekstensi .asp atau .aspx.
  • PHP Hypertext Preprocessor (PHP), merupakan teknologi open source. Halaman-halaman web PHP memiliki ekstensi .php atau .php3.
  • Java Server Pages (JSP), merupakan teknologi Java - Sun, yang berisikan kode-kode Java dalam mengenerate halaman web dengan ekstensi file .jsp

Dengan teknologi server side script ini, kita lebih dimudahkan untuk memelihara, updating dan mengembangkan halaman-halaman web secara dinamis terutama untuk pengelolaan website yang dalam skala besar. Para developer perlu menyisipkan kode-kode program server-side ke dalam halaman HTML. Kode ini di-passing ke dalam interpreter yang akan memproses instruksi-instruksi di dalamnya dan men-generate HTML final yang akan ditampilkan di layar browser. Perlu diketahui bahwa kode-kode server-side script yang disisipkan dalam halaman HTML tidak dapat ditampilkan (invisible) oleh
client walaupun client menampilkan source halaman web tersebut, dikarenakan server hanya mengirimkan kode HTML.

Kita ambil PHP sebagai contoh. Sebuah request untuk sebuah halaman PHP yang dikirimkan oleh client di-passing ke dalam interpreter (penerjemah) PHP. Interpreter kemudian memproses kode PHP tersebut kemudian men-generate sebuah output berupa halaman HTML secara dinamis. Kemudian output yang dihasilkan ini dikirimkan oleh interpreter ke server untuk kemudian dikirimkan kembali ke client (browser). Client (browser) tidak mengetahui semua proses yang terjadi pada sisi server, client hanya menerima kode HTML, yang merupakan format yang sesuai untuk ditampilkan hasilnya melalui layar browser.