Selasa, 17 April 2012

File Service Terdistribusi

File Sistem Terdistribusi ( Distributed File System , disingkat) 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).
I. Pengenalan File Service
File service adalah suatu perincian atau pelayanan dari file system yang ditawarkan pada komputer client. Suatu file server adalah implementasi dari file service dan berjalan pada satu atau lebih mesin. File itu sendiri berisi dari nama, data dan atribut file seperti kepemilikan file, ukuran, waktu pembuatan file dan hak akses file.
II. Komponen File service
Komponen-komponen file service adalah terdiri dari :
  • File Service
Pengoperasian dari masing-masing file.
  • Directory Service
Management atau pengaturan direktori
  • Naming Service
- Location Independence :
File dapat dipindahkan tanpa penggantian nama
- Hal yang umum untuk penamaan file dan directori :
Mesin + nama path e.g / machine / path atau machine : path
Mounting File sistem secara remote kedalam hirarki local file.
Single name space yang sama pada semua mesin.
- Dua level penamaan :
Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.
III. Contoh File Service
NFS (Network File System)
Network File System (NFS) merupakan sebuah protokol yang dikembangkan oleh Sun Microsystem pada tahun 1984 dan NFS didefinisikan dalam RFC 1094, 1813 dan 3530 sebagai DFS yang mengijikan sebuah komputer untuk mengakses file melalui network serasa akses file di disk local.
Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut.
Protokol NFS
NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara client dan server di dalam jaringan. Client NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada client.
Mesin-mesin yang menjalankan perangkat lunak NFS client dapat saling berhubungan dengan perangkat lunak NFS server untuk melakukan perintah operasi tertentu dengan menggunakan request RPC.
Beberapa manfaat NFS diantaranya ialah
– Lokal workstations menggunakan ruang disk lebih kecil
– Pemakai tidak harus membagi direktori home pada setiap mesin di jaringan
– Direktori home dapat di set up pada NFS server dan tersedia melalui jaringan
– Device penyimpanan seperti floppy disk, CDROM drives, dll dapat digunakan oleh mesin lainnya
Kerugian /Kelemahan NFS
– Desain awal hanya untuk jaringan yang lokal dan tertutup
– Security
– Congestion (Traffic yang tinggi bisa menyebabkan akses lambat)
AFS (Andrew File System)
Ada persamaan dan perbedaan antara AFS dan NFS.
Persamaan:
AFS sama seperti NFS menyediakan akses menuju shared files secara transaparant. Akses menuju ke file AFS adalah melalui normal unix file primitives (tanpa modifikasi atau rekompilasi). AFS kompatibel dengan NFS.
Perbedaan:
Secara desain dan implementasi, AFS berbeda dengan NFS, perbedaan utama, NFS didesain untuk dapat menangani active users dengan jumlah yang lebih banyak daripada distributed file systems yang lain. Kunci AFS untuk menangani jumlah active users yang besar terletak pada kemampuan caching seluruh files pada client node.
Karakter AFS
AFS mempunyai dua karakter desain yang unik :
• Whole file serving
Seluruh konten dari direktori dan file dikirim kepada komputer client oleh AFS servers (di AFS3, file yang ukurannya lebih dari 64kbytes ditransfer dalam 64kbyte chunks).
• Whole file caching
Copy dari sebuah file chunk yang telah ditransfer di komputer client disimpan dalam cache pada local disk.Cache disini mengandung ratusan file yang sering dipakai di dalam sebuah komputer.

sumber : http://ku2harlis.wordpress.com/file-service/

Selasa, 10 April 2012

Sistem Operasi dan Fungsinya

Sistem operasi (bahasa Inggris: operating system ; OS) adalah seperangkat program yang mengelola sumber daya perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi boot diri.
Waktu-berbagi jadwal tugas sistem operasi untuk penggunaan yang efisien dari sistem dan juga dapat mencakup akuntansi untuk alokasi biaya waktu prosesor, penyimpanan massa, cetak, dan sumber daya lainnya.
Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer, meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web.
Biasanya, istilah Sistem Operasi sering ditujukan kepada semua perangkat lunak yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi perangkat lunak terinstal. Sistem operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi seperti program-program pengolah kata dan peramban web.
Secara umum, Sistem Operasi adalah perangkat lunak pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi
Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem berkas. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur schedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu.
Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.
Sistem Operasi secara umum terdiri dari beberapa bagian:
  • Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
  • Kernel, yaitu inti dari sebuah Sistem Operasi
  • Command Interpreter atau shell, yang bertugas membaca input dari pengguna
  • Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu (misalnya DOS), tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti ini disebut sebagai Multi-tasking Operating System (misalnya keluarga sistem operasi UNIX). Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time OS, contohnya adalah Windows, Linux, Free BSD, Solaris, palm, symbian, dan sebagainya.
Penggunaan system operasi memiliki perintah yang berbeda,bergantung jenis operasi yang digunakan. Banyak yang dapat dilakukan system opreasi dalam membantu kegiatan manusia contohnya saya dan mungkin Anda . Untuk dapat membantu kegiatan manusia, system operasi memiliki berbagai macam fungsi. Dan pada postingan kali ini akan dijabarkan mengenai fungsi sistem operasi, berikut ini merupakan fungsi-fungsi sistem operasi :
1.   Resource Manager
Fungsi Resource Manager adalah untuk mengalokasikan sumber daya, seperti CPU, printer, drive, memori, dan lain sebagainya.
2.   Interface
Fungsi interface adalah sebagai perantara antara user dengan hardware untuk menyediakan lingkungan yang bersahabat. Dengan demikian, user tidak memiliki kekhawatiran untuk mengoprasikan perangkat level bawah.
3.   Guardian
Fungsi guardian adlah untuk menyediakan control akses yang melindungi file dan member pengawasan pada pembaca/penulisan/eksekusi data dan program.
4.   Optimizer
Fungsi optimizer adalah untuk menjadwal peng-inpu-an oleh user, pengaksesan basis data, proses komputasi, dan pengeluaran output untuk meningkatkan kegunaan.
5.   Accountant
Fungsi Accountant adalah untuk mengatur waktu CPU, penggunaan memori, disk storage, waktu connect terminal dan pemanggilan I/O.
6.   Server
Fungsi server adalah untuk menyediakan layanan yang sering dibutuhkan user, baik secara eksplisit, maupun implicit seperti mekanisme akses file.
7.   Coordinator
Fungsi coordinator adalah untuk menyediakan fasilitas sehingga aktivitas yang kompleks dapat diatur untuk dikerjakan dalam urutan yang telah disusun sebelumnya.

Sumber : http://id.wikipedia.org/wiki/Sistem_operasi
              http://dicahideto.wordpress.com/2010/08/18/fungsi-sistem-operasi/
              http://www.jaringankomputer.org/pengertian-sistem-operasi-dan-fungsi-sistem-operasi-komputer/



Selasa, 03 April 2012

Implementasi Thread & Multithreaded Server


Thread yaitu kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :

1. Membuat subclass dari thread
Untuk menjalankan thread, dapat dilakukan dengan start(). Saat start() dijalankan, maka  sebenarnya     method dijalankan. Jadi untuk membuat thread, harus mendefinisikan pada definisi class. Konstruktor dari cara ini adalah :
   ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
   New ClassThread().start();

2. Mengimplementasikan interface Runnable
Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :
   ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());




Arti istilah Multithreading dianggap berkaitan erat dengan pengertian multi thread merupakan jalannya beberapa proses dengan urutan yang cepat (multitasking) dalam satu program. Multithreading ini merupakaan teknik pada manipulasi data dimana node-node pada struktur pohon data berisi penunjuk ke node yang lebih tinggi untuk membuat lintasan struktur menjadi lebih efisien.

Kalau sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalakan beberapa task secara bersamaan walaupun otaknya hanya satu.

Keuntungan MultiThreading

Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem komputer. Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4 bagian: 

1. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.

2. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.

4. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

Model MultiThreading

Beberapa terminologi yang akan dibahas: 

1. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.

2. Thread Kernel: Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Model-Model MultiThreading: 

1. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.

2. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.

3. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

Kesimpulan

Thread adalah alur kontrol dari suatu proses.

Keuntungan menggunakan Multithreading: 
1. Meningkatkan respon dari pengguna.
2. Pembagian sumber daya.
3. Ekonomis.
4. Mengambil keuntungan dari arsitektur multiprosessor.



Tiga model Multithreading: 
1. Model Many-to-One.
2. Model One-to-One.
3. Model Many-to-Many.