Langsung ke konten utama

Sistem Operasi #4 Thread

 

Ilustrasi Thread

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack.

Perbedaan antara proses thread tunggal dengan proses thread yang banyak (Multi thread) adalah proses thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

A. Definisi Thread

Proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread.

Thread terdiri atas ID thread, program counter, himpunan register, dan stack sehingga dengan banyaknya kontrol thread, proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.


Sebuah thread dalam sistem operasi memberikan keuntungan sebagai berikut:

  1. Tanggap, artinya ketika Multithreading mengizinkan program untuk berjalan terus walaupun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
  2. Pembagian sumber daya, artinya thread mampu membagi memori dan sumber daya dari proses.
  3. Ekonomis, artinya ketika Sistem Operasi mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, thread mampu membagi sumber daya dari proses sehingga lebih ekonomis untuk membuat proses.
  4. Pemberdayaan arsitektur multiprosesor, maksudnya adalah dengan multithreading dapat ditingkatkan dengan menggunakan arsitektur multiprosesor, di mana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. 

B. Model Multithreading


Implementasi Multithreading dalam sistem operasi terdiri dari:

1. Model Many to One

Model many to one ini memetakan beberapa tingkatan pengguna thread hanya kesatu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). 

Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

2. Model One to One

Model one to one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan. Hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. 

Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT dan OS/2.

3. Model Many to Many

Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.

Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi. 

Komentar

Postingan populer dari blog ini

Sistem Operasi #5 Sinkronisasi

Sinkronisasi mengacu pada salah satu dari dua proses yang berbeda tetapi saling berkaitan satu sama lainnya. Dua proses ini merupakan sinkronisasi data dan sinkronisasi proses. A. Definisi Sinkronisasi Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Sinkronisasi ini dibutuhkan ketika menemukan sebuah kasus yang menyebabkan ketidakkonsistenan data sehingga data menjadi tidak konkuren.  Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan. Adapun manfaat sikronisasi pada sistem operasi adalah:  Adanya akses-akses dat...

Perintah-perintah Dasar Linux

  Perintah Dasar Linux Beserta Skenario Pembuatan Struktur Folder ` Linux adalah sebuah sistem operasi seperti Unix yang menggunakan kernel linux sebagai inti dan disertakan aplikasi dan module pendukung lain agar berfungsi dan bisa digunakan secara utuh layaknya sistem operasi pada umumnya. Untuk mengoperasikan linux kalian perlu mengakses terminal, terminal merupakan sebuah insterface berbasis Command Line Interface (CLI) yang dapat mengeksekusi perintah yang kalian ketik. Agar dapat memahami perintah-perintah tersebut kalian harus mempelejari sintaks-sintaks dasar Linux. Apa saja perintahnya? yuk simak perintah-perintah dasar Linux dibawah ini. 1. mkdir Perintah mkdir digunakan untuk membuat direktori. Pada skenario, kita mempunyai lima direktori yaitu, member, ashar, rico, ukki dan caca.  Buat direktori member, gunakan perintah  mkdir latihan 2. cd Change directory digunakan untuk pindah dari satu direktori ke direktori lain. Untuk pindah ke direktori member, gunakan ...