maii

THREADS

Posted on: 15/04/2014

Thread sangat berguna untuk membuat proses yang interaktif; misalnya pada
permainan (game). Dengan menggunakan sejumlah thread, program tetap dapat
menggerakkan sejumlah objek sembari memberikan kesempatan pemakai untuk
melakukan tanggapan melalui keyboard. Web browser merupakan contoh lain
penggunaan thread. Tanpa thread, Web browser akan menghentikan segala tanggapan
terhadap pemakai ketika perangkat lunak tersebut sedang mengambil isi dari suatu URL

A. Pengenalan Thread dalam Distribusi

Untuk memahami peran thread dalam sistem terdistribusi, penting untuk memahami apa suatu proses, dan bagaimana proses saling berhubungan. Untuk mengeksekusi sebuah Program, sebuah sistem operasi menciptakan sejumlah prosesor virtual, masing-masing untuk menjalankan program yang berbeda. Untuk melacak prosesor virtual, operasi sistem memiliki tabel proses, mengandung catatan untuk menyimpan daftar nilai CPU , memori peta, file terbuka, informasi akunting. Hak istimewa, dll Suatu proses sering didefinisikan sebagai sebuah program dalam eksekusi, yaitu, sebuah program yang saat ini sedang dieksekusi di salah satu prosesor virtual sistem operasi. Suatu hal yang penting adalah bahwa sistem operasi membutuhkan perhatian besar untuk memastikan bahwa proses yang independen tidak bisa merugikan atau tidak sengaja mempengaruhi ketepatan dari perilaku masing-masing.

Transparansi Hal ini konkurensi membutuhkan biaya yang relatif tinggi. Sebagai contoh, setiap kali sebuah proses dibuat, sistem operasi harus membuat lengkap ruang alamat yang independen. Alokasi dapat berarti menginisialisasi memori dengan segmen, misalnya, zeroing data segmen, menyalin program yang berkaitan ke dalam teks segmen, dan mengatur stack untuk data sementara. Demikian juga, CPU beralih antara dua proses mungkin relatif mahal juga. Selain dari penghematan CPU konteks (yang terdiri dari nilai-nilai , program counter, stack pointer, dll), sistem operasi juga akan harus memodifikasi register memori unit manajemen (MMU) dan cache membatalkan terjemahan alamat seperti di terjemahan lookaside buffer (TLB). Selain itu, jika sistem operasi mendukung proses lebih dari itu secara bersamaan dapat terus di memori utama, mungkin harus menukar proses antara memori utama dan disk sebelum beralih yang sebenarnya dapat mengambil tempat.

Ada dua implikasi penting dari pendekatan ini. Pertama-tama, kinerja dari aplikasi multithreaded hampir tidak pernah lebih buruk daripada pendamping single-threaded. Bahkan, dalam banyak kasus, multithreading mengarah pada keuntungan kinerja. Kedua, karena thread tidak secara otomatis dilindungi jalan prosesnya terhadap satu sama lain, pengembangan aplikasi multithreaded membutuhkan tambahan intelektual usaha. Tepat desain dan menjaga hal-hal sederhana.

Multithreading juga berguna dalam konteks aplikasi besar. seperti aplikasi yang sering dikembangkan sebagai kumpulan program yang bekerja sama, masing-masing untuk dieksekusi oleh proses yang terpisah. Pendekatan ini adalah khas untuk lingkungan UNIX.
Kerjasama antara program-program dilaksanakan dengan cara komunikasi interprocess (IPC) mekanisme. Untuk sistem UNIX, mekanisme ini biasanya mencakup (bernama) pipa, antrian pesan, dan segmen memori bersama, Kelemahan utama dari semua mekanisme IPC adalah bahwa komunikasi sering memerlukan konteks switching yang luas.

 

B. Implementasi Thread

Thread pada Java ditangani melalui dua mekanisme. Cara pertama dilakukan
dengan memperluas kelas Thread, sedangkan cara kedua dilakukan dengan
mengimplementasikan Runnable.

  • Thread dengan Menggunakan kelas Thread
    Cara pertama untuk membuat thread adalah dengan memperluas kelas Thread
    dan kemudian menuliskan kembali kode pada metode run(). Secara prinsip, hal ini
    dilakukan dengan bentuk semacam berikut:
    class namaKelas extends Thread {
    public void run() {

    }
  • Thread Melalui Runnable
    Runnable sesungguhnya adalah sebuah interface. Dengan mengimplementasikan interface ini, sebuah kelas yang menangani thread dapat diciptakan. Kelas Thread merupakan implementasi dari Runnable. Secara prinsip, hal ini dilakukan dengan bentuk semacam berikut:
    ObjekRunnable objek = new ObjekRunnable();
    Thread namavar = new Thread(Objek Runnable);
    Atau
    New Thread(new ObjekRunnable()).a. Thread di dalam Distribusi Sistem
    Sebuah properti penting dari thread adalah bahwa mereka dapat menyediakan sarana yang mudah digunakan yang memungkinkan panggilan sistem memblokir tanpa menghalangi seluruh proses di mana thread berjalan. Properti ini membuat thread sangat menarik untuk digunakan dalam sistem terdistribusi karena membuat lebih mudah untuk mengekspresikan komunikasi dalam bentuk mempertahankan koneksi logis beberapa pada saat yang sama. Kami menggambarkan ini titik dengan melihat lebih dekat pada klien dan server multithreaded, masing-masing.

C.Visualisasi

Thread dan proses dapat dilihat sebagai cara untuk melakukan lebih banyak hal pada saat yang sama waktu. Akibatnya, mereka membiarkan kita membangun (potongan) program yang tampaknya akan dieksekusi secara bersamaan. Pada komputer prosesor tunggal, ini adalah eksekusi simultan, Tentu saja, ilusi. Karena hanya ada sebuah CPU, hanya instruksi dari thread tunggal atau proses akan dijalankan pada suatu waktu. Dengan cepat beralih antara thread dan proses, ilusi paralelisme dibuat. Pemisahan antara memiliki sebuah CPU tunggal dan mampu berpura-pura ada lebih dapat diperpanjang untuk sumber daya lain juga, yang mengarah ke apa yang dikenal sebagai sumber daya virtualisasi. Virtualisasi ini telah diterapkan selama beberapa dekade, namun telah menerima minat baru sebagai (didistribusikan) sistem komputer telah menjadi lebih umum dan kompleks, yang mengarah ke situasi yang aplikasi perangkat lunak sebagian besar selalu hidup lebih lama perangkat lunak yang mendasarinya sistem dan perangkat keras. Dalam bagian ini, kita memperhatikan beberapa peran virtualisasi dan mendiskusikan bagaimana dapat direalisasikan.
D. Peran Virtualisasi dalam Sistem Terdistribusi

Dalam prakteknya, setiap sistem komputer (didistribusikan) menawarkan antarmuka pemrograman ke perangkat lunak tingkat yang lebih tinggi. Ada berbagai jenis interface, mulai dari instruksi dasar yang ditetapkan yang ditawarkan oleh CPU untuk koleksi luas antarmuka pemrograman aplikasi yang dikirimkan dengan banyak sistem middleware saat ini. Pada intinya penawaran virtualisasi, dengan memperluas atau mengganti antarmuka yang ada sehingga untuk meniru perilaku sistem lain. Kami akan datang untuk membahas rincian teknis tentang virtualisasi tak lama, tapi mari kita berkonsentrasi pada mengapa virtualisasi adalah penting untuk sistem terdistribusi.

Salah satu alasan paling penting untuk memperkenalkan virtualisasi pada 1970-an, adalah untuk memungkinkan perangkat lunak warisan untuk dijalankan pada hardware mainframe mahal. perangkat lunak tidak hanya termasuk berbagai aplikasi, tetapi sebenarnya juga sistem operasi mereka dikembangkan untuk. Pendekatan terhadap perangkat lunak warisan pendukung telah telah berhasil diterapkan pada mainframe IBM 370 (dan penerus mereka) yang menawarkan mesin virtual untuk sistem operasi yang berbeda yang telah porting.

Refrensi :

vlsm.org, Komponen Sistem Operasi, http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch05.html#c20501

Wahyu Wijanarko, Sistem Operasi Terdistribusi, http://ilmukomputer.com/2006/08/20/sistem-operasi-terdistribusi/

http://id.wikipedia.org/wiki/Sistem_operasi

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: