Assalamualaikum
Wr…Wb…
Kali ini
saya akan membahas tentang Proses dan Thread dalam sistem operasi . Proses adalah konsep pokok dari
sistem operasi sedangkan Thread adalah jalur eksekusi tunngal dengan stack
eksekusi,status processor,dan informasi penjadwalan. Mau tau lebih jelas lagi ? ayok dibaca sampai selesai yaa sobat :)
A. PROSES
Proses
adalah konsep pokok dari sistem operasi. Berbagai macam defnisi mengenai proses
telah dicetuskan. Secara sederhana, proses adalah sebuah program yang
dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki
sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi
mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses
sesuai kebutuhan.
Konsep Dasar dan Definisi Proses
Secara
informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari
kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga
termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada
program counter dan isi dari daftar prosesor/ processor's register. Suatu proses
umumnya juga termasuk process stack, yang berisikan data temporer (seperti
parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data
section, yang berisikan variabel global.
Ditekankan bahwa
program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas
pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana
sebuah proses dalam suatu entitas aktif, dengan sebuah program counter
yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat
sumber daya/ resource yang berkenaan dengannya. Walau dua proses dapat
dihubungkan dengan program yang sama, program tersebut dianggap dua urutan
eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy
yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak
copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan
walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah
umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.
Status Proses
Jenis
status yang mungkin dapat disematkan pada suatu proses pada setiap sistem
operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum,
yaitu:
1.
New, yaitu pembentukan suatu proses
2.
Running, yaitu status dimana saat ini proses sedang dieksekusi oleh
prosesor
3.
Waiting, yaitu proses menunggu untuk beberapa event yang
terjadi
4.
Ready, yaitu status dimana proses siap untuk dieksekusi pada giliran
berikutnya
5.
Blocked, yaitu status dimana proses tidak dapat dijalankan pada
saat prosesor siap/bebas
6.
Terminated, yaitu proses telah selesai dieksekusi
Di antara status Running, Ready dan Blocked, hanya terdapat
4 kemungkinan perubahan status, yaitu:
·
Running ke Blocked:
Terjadi jika proses diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
Terjadi jika proses diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
·
Running ke Ready:
Terjadi jika Process Scheduler menghentikan proses yang sedang running untuk memberikan kesempatan pada proses lain menggunakan CPU.
Terjadi jika Process Scheduler menghentikan proses yang sedang running untuk memberikan kesempatan pada proses lain menggunakan CPU.
·
Blocked ke Ready:
Terjadi jika ada kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya datangnya input atau selesainya suatu aktifitas I/O.
Terjadi jika ada kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya datangnya input atau selesainya suatu aktifitas I/O.
·
Ready ke Running:
Terjadi jika proses siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut telah tiba.
Terjadi jika proses siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut telah tiba.
Gambar 1.
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 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, tabel 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.
Gambar 2.
Diagram PCB
B. THREAD
Proses
merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread
tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu
waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan
agar memungkinkan sebuah proses untuk mengeksekusi multi-threads. Misalnya user
melakukan pekerjaan secara bersamaan yaitu mengetik dan menjalankan pemeriksaan
ejaan didalam proses yang sama.
Thread
merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread ID, program
counter, register set, dan stack. Sebuah threadberbagi code section, data section,
dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses
yang sama.
Thread
juga sering disebut lightweight process. Sebuah proses tradisional atau
heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
Perbedaannya ialah proses dengan thread yang banyak mengerjakan lebih dari satu
tugas pada satu satuan waktu. Pada umumnya, perangkat lunak yang berjalan pada
komputer modern dirancang secara multithreading. Sebuah aplikasi biasanya
diimplementasi sebagai proses yang terpisah dengan beberapa thread yang
berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread
untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi
sebagai penerima data dari network. Terkadang ada sebuah aplikasi yang perlu
menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server
dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web
server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia
hanya dapat melayani satu klien pada pada satu satuan waktu. Bila ada klien
lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien
sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi
multi-threading. Dengan ini maka sebuah web server akan membuat thread yang
akan mendengar permintaan klien, ketika permintaan lain diajukan maka web
server akan menciptakan thread lain yang akan melayani permintaan tersebut
[MDGR2006].
Single thread dan multi thread
·
Single thread: process hanya mengeksekusi satu thread saja pada satu
waktu
·
Multi thread: process dapat mengeksekusi sejumlah thread dalam satu
waktu
Gambar 3. Single
thread dan multi thread
Model Multithreading
Dukungan
thread disediakan pada tingkat user yaitu user threads atau tingka kernel untuk
kernel threads. User Threads disediakan oleh kernel dan diatur tanpa dukungan
kernel, sedangkan kernel therads didukung dan diatur secara langusng oleh
sistem operasi. Hubungan antara user threads dan kernel threads terdiri dari
tiga model relasi, yaitu:
- 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. Jadi, multiple thread tidak dapat berjalan secara paralel pada multiprocessor. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model Many-to-One.
Gambar 4. Model
Many to One
- 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.
Gambar 5. Model
One to One
- Model Many To Many: Model ini me-multipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan 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.
Sekian postingan saya yah sobat, sampai jumpa di postingan
selanjutnya J
jangan lupa mampir di link ini yah http://ft.uts-sumbawa.ac.id/
. thankyou..
Wassalamualaikum Wr…Wb…
Sumber: http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/i2.html
Tidak ada komentar:
Posting Komentar