TUGAS Mata Kuliah : Sistem Terdistribusi
OLEH :
Nama NIM Kelas Dosen Prodgi
: TARSO : 090103193 : C (Week End) : Ardy Mulya Iswardani, S.Kom : S1 –Teknik Informatika
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
DUTA BANGSA SURAKARTA 2011
Sistem distribusi
PROSES Vs THREAD
Proses Proses merupakan program sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel- variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya .
Status Proses Proses yang dieksekusi mempunyai lima status yang terdiri dari: a. new: Pembent ukan suatu proses b. running: Instruksi- instruksi yang sedang dieksekusi c. waiting: Proses menunggu untuk beberapa event yang terjadi d. ready: Proses menunggu untuk dialirkan ke pemroses (processor) e. terminated: Proses telah selesai dieksekusi.
Diagram status proses
Process Control Block (PCB) Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB), juga disebut sebuah control block. PCB berisikan banyak bagian
Sistem distribusi
dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal- hal di bawah ini: ?
Status proses: status yang mungkin adalah new, ready, running, waiting, halted, dan seterusnya.
?
Program counter: suatu penghitung yang mengindikasikan alamat dari instruksi selanjutnya yang akan dieksekusi untuk proses tersebut.
?
CPU register: Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur komputer. Register tersebut termasuk accumulator, index register, stack pointer, general-purposes register, ditambah informasi condition-code. Bersama dengan program counter, keadaan/status informasi harus disimpan ketika
gangguan
terjadi,
untuk
memungkinkan
proses
tersebut
berjalan/bekerja dengan benar. ?
Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, table page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
?
Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu nyata yang digunakan, batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi.
?
Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
Sistem distribusi
Diagram yang menggambarkan penukaran dari proses ke proses oleh CPU
Operasi-Operasi Pada Proses Proses dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuat dan dihapus secara dinamis. Maka, sistem operasi harus menyediakan suatu mekanisme umtuk pembuatan proses dan terminasi proses.
Operasi pada Proses Thread Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.
Thread
Sistem distribusi
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread.
Model Multithreading Dalam
sub
bab
sebelumnya
telah
dibahas
pengertian
dari
thread,
keuntungannya, tingkatan atau levelnya seperti pengguna dan kernel. Maka dalam sub-bab ini pembahasan akan dilanjutkan dengan jenis-jenis thread tersebut dan contohnya baik pada Solaris mau pun Java. Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel thread, sehingga model- model multithreading- nya pun menjadi beragam. Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan many-to- many.
Model Multithreading
Sistem distribusi
1.
Model Many to One: Model Many-to-One 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. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model Many-to-One.
2.
Model One to One: Model One-to-One memetakan setiap thread tingkatan pengguna ke thread kernel. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan pembuatan thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari sebuah aplikasi maka implmentasi dari model ini, jumlah thread dibatasi oleh sistem. Contoh sistem operasi yang mendukung model One-to-One ialah Windows NT dan OS/2.
3.
Model Many To Many: Model ini me- multipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan
Sistem distribusi
tingkatan pengguna. thread. Jumlah thread kernel spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer untuk membuat user thread sebanyak yang ia mau tetapi concurrency (berjalan bersama) tidak dapat diperoleh karena hanya satu thread yang dapat dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati- hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat thread dalam jumlah yang terbatas). Model Many-to-Many tidak mengalami kelemahan dari dua model di atas. Developer dapat membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara paralel pada multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.
Keadaan Thread Sebuah thread java dapat menjadi satu dari 4 kemungkinan keadaan: 1.
new: sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat.
2.
runnable: memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek.
Sistem distribusi
3.
block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan. Contohnya: sleep() atau suspend().
4.
dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil.
Sistem distribusi