Apa si Proses dan Thread itu???
Proses
dan Thread merupakan dua bagian yang saling berhubungan dan berkaitan. Suatu
program yang sedang dieksekusi merupakan pengertian dari sutau proses. Proses
membutuhkan sumber daya. Sistem operasi mengeksekusi proses dengan dua cara
yaitu batch system yang mengeksekusi jobs dan time-shared
system yang mengatur pengeksekusian program pengguna ( user) atau tasks.
Proses berisikan stack yang menyimpan alamat register dan juga alamat dari
sebuah instruksi yang berisikan data – data yang dibutuhkan untuk instruksi
selanjutnya. Program Counter, register set serta stack merupakan bagian dari
thread. Thread berbagi code section, data section dan juga sumber daya sistem
operasi dengan thread lain yang dalam proses yang sama. Kelebihan thread antara
lain responsif, berbagi sumberdaya, ekonomis serta utilitas arsitektur
mikroprosessor.
Thread
merupakan unit dasar dari penggunaan CPU (Central Processing Unit), yang
terdiri dari thread ID, Program Counter, Register Set, dan Stack. Sebuah thread
berbagi code section, data section, dan sumber daya sistem operasi dengan thread
lain yang dalam proses yang sama. Multithread adalah sutau proses thread yang
dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Dua
model multithread, One to One dan Many to Many. One to One model
memetakan setiap user thread ke kernel thread, menyediakan lebih banyak
concurrency. Kelemahannya model ini adalah setiap pembuatan user thread
membutuhkan pembuatan kernel thread. Karena pembuatan thread dapat menurunkan
performa dari sebuah aplikasi maka implementasi dari model ini membatasi jumlah
thread yang dibatasi oleh system. Many to Many model developer dapat
membuat user thread sebanyak yang diperlukan, dan kernel thread yang
bersangkutan dapat bejalan secara pararel pada multiprocessor.
Pemrograman
dari multithreading yang dapat meningkatkan sebuah solusi thread tunggal antara
lain Dalam web browser yang multithreading, sebuah thread dapat
melayani permintaan pengguna sementara thread lain berusaha menampilkan
gambar. Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori
dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread
berbagi memori dan sumber daya proses yang memilikinya maka akan lebih
ekonomis untuk membuat dan context switch thread. Akan susah untuk
mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan
dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama
dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali
dibandingkan pembuatan thread, dan context switch proses 5 kali
lebih lama dibandingkan context switch thread.
Dua
level thread, User Thread dan Kernel Thread. User thread didukung di atas
penjadwalan jangka pendek (short term scheduler), mempunyai tugas untuk
menjadwalkan alokasi pemroses di antara proses ready di memori utama.
Penjadwalan dijalankan setiap terjadi di pengalihan proses untuk memilih proses
berikut yang harus dijalankan. Penjadwalan jangka panjang (long term
scheduler), Penjadwalan ini bekerja terhadap antrian batch dan memilih
batch berikutnya yang harus dieksekusi.. batch biasanya adalah proses-proses
dengan penggunaan sumber daya yang intensif, program ini berprioritas rendah,
digunakan sebagai pengisi selama periode aktivitas job-job interaktif rendah.
Penjadwal
CPU adalah basis dari multi programming sistem operasi. Dengan men-switch CPU
diantara proses. Akibatnya sistem operasi bisa membuat komputer produktif.
Penjadwal adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber
komputer dijadual sebelum digunakan. CPU salah satu sumber dari komputer yang
penting yang menjadi sentral dari sentral penjadual di sistem operasi.
Jenis-jenis algoritma penjadwalan: Algoritma Nonpreemptive adalah Proses
diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh
proses lain sampai proses itu selesai. Dan Algoritma Preemptive, yaitu
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih oleh
proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu.
A. FCFS(First Come First Served). Algoritma
ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU.
Dengan menggunakan algoritma ini setiap proses yang berada pada status ready
dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out,
sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan
dieksekusi.
B. SJF (Shortest Job First). Pada
algoritma ini setiap proses yang ada di ready queue akan dieksekusi berdasarkan
burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk
setiap proses dan karena hal tersebut maka waiting time rata-ratanya juga
menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma
yang optimal.
C. Shortest-Job
First (SJF) Preemptive . Jika ada proses yang sedang
dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang
lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang
sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready
queue tersebut. Preemptive SJF sering disebut juga Shortest-Remaining-
Time-First scheduling.
D. Shortest-Job
First (SJF) Non-preemptive . CPU tidak memperbolehkan proses
yang ada di ready queue untuk menggeser proses yang sedang dieksekusi oleh CPU
meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil.
Status
Proses
Sistem
operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut
biasanya disebut dengan job, sedangkan pada sistem time sharing, program
disebut dengan program user atau task.
Beberapa
buku teks menggunakan istilah job atau proses. Proses adalah program yang sedang dieksekusi.
Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program
counter, stack dan daerah data. Meskipun tiap-tiap proses terdiri
dari suatu kesatuan yang terpisah namun adakalanya proses-proses tersebut butuh
untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses
lainnya sebagai input. Pada saat proses dieksekusi, akan terjadi perubahan
status. Status proses didefiniskan sebagai bagian dari aktivitas proses yang
sedang berlangsung saat itu.
Gambar
1. menunjukkan diagram status proses. Status proses terdiri dari :
a) New:
proses sedang dibuat.
b) Running:
proses sedang dieksekusi.
c) Waiting:
proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu
untuk
menyelesaikan I/O atau menerima sinyal).
d) Ready:
proses menunggu jatah waktu dari CPU untuk diproses.
e) Terminated:
proses telah selesai dieksekusi
Gambar 1. Perubahan Status Proses |
No comments:
Post a Comment