Jumat, 19 Juli 2013

Proses Thread Dan Penjadualan CPU

 Proses
     Sebuah proses adalah sebuah peristiwa adanya sebuah proses yang dapat dieksekusi. Sebagai sebuah
eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat
didefinisikan oleh aktivitas proses tertentu tersebut. Setiap proses mungkin menjadi satu dari beberapa
state berikut,

 antara lain: new, ready, running, waiting, atau terminated. Setiap proses direpresentasikan
ada sistem operasi berdasarkan proses-control-block (PCB)-nya.
Sebuah proses, ketika sedang tidak dieksekusi, ditempatkan pada antrian yang sama. Disini ada 2 kelas
besar dari antrian dalam sebuah sistem operasi: permintaan antrian I/O dan ready queue. Ready queue
memuat semua proses yang siap untuk dieksekusi dan yang sedang menunggu untuk dijalankan pada
CPU. Setiap proses direpresentasikan oleh sebuah PCB, dan PCB tersebut dapat digabungkan secara
bersamaan untuk mencatat sebuah ready queue. Penjadualan Long-term adalah pilihan dari proses-proses
untuk diberi izin menjalankan CPU. Normalnya, penjadualan long-term memiliki pengaruh yang sangat
besar bagi penempatan sumber, terutama managemen memori. Penjadualan Short-term adalah pilihan
dari satu proses dari ready queue.
Proses-proses pada sistem dapat dieksekusi secara berkelanjutan. Disini ada beberapa alasan mengapa
proses tersebut dapat dieksekusi secara berkelanjutan: pembagian informasi, penambahan kecepatan
komputasi, modularitas, dan kenyamanan atau kemudahan. Eksekusi secara berkelanjutan menyediakan
sebuah mekanisme bagi proses pembuatan dan penghapusan.
Pengeksekusian proses-proses pada operating system mungkin dapat digolongkan menjadi proses
independent dan kooperasi. Proses kooperasi harus memiliki beberapa alat untuk mendukung komunikasi
antara satu dengan yang lainnya. Prinsipnya adalah ada dua rencana komplementer komunikasi:
pembagian memori dan sistem pesan. Metode pembagian memori menyediakan proses komunikasi untuk
berbagi beberapa variabel. Proses-proses tersebut diharapkan dapat saling melakukan tukar-menukar
informasi seputar pengguna variabel yang terbagi ini. Pada sistem pembagian memori, tanggung jawab
bagi penyedia komunikasi terjadi dengan programmer aplikasi; sistem operasi harus menyediakan hanya
pembagian memori saja. Metode sistem pesan mengizinkan proses-proses untuk tukar-menukar pesan.
Tanggung jawab bagi penyedia komunikasi ini terjadi dengan sistem operasi tersebut.

Thread
     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. Ada tiga
perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
• Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
• Model one to one: memetakan setiap user thread ke dalam satu kernel thread. berakhir.
• Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin,
konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam
satu waktu.
Java adalah unik karena telah mendukung thread didalam tingkatan bahasanya. Semua program Java
sedikitnya terdiri dari kontrol sebuah thread tunggal dan mempermudah membuat kontrol untuk multiple
thread dengan program yang sama. JAVA juga menyediakan library berupa API untuk membuat thread,
termasuk method untuk suspend dan resume suatu thread, agar thread tidur untuk jangka waktu tertentu
dan menghentikan thread yang berjalan. Sebuah java thread juga mempunyai empat kemungkinan
keadaan, diantaranya: New, Runnable, Blocked dan Dead. Perbedaan API untuk mengelola thread
seringkali mengganti keadaan thread itu sendiri

Penjadualan CPU
     Penjadualan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma yang
digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come First Serve
(FCFS), merupakan algoritma sederhana dimana proses yang datang duluan maka dia yang dieksekusi
pertama kalinya. Algoritma lainnya adalah Sorthest Job First (SJF), yaitu penjadualan CPU dimana
proses yang paling pendek dieksekusi terlebih dahulu.
Kelemahan algoritma SJF adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma
Round Robin (RR). Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan waktu
tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu maka akan
digantikan oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar sedang proses
hanya membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu quantum kecil maka
akan memakan waktu saat alih konteks.
Penjadualan FCFS adalah non-preemptive yaitu tidak dapat diinterupsi sebelum proses dieksekusi
seluruhnya. Penjadualan RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih dieksekusi.
Sedangkan penjadualan SJF dapat berupa nonpreemptive dan preemptive.

Mau Lihat lebih Jelasnya Silakan Download disini proses Dan Threads
download[4]
Add caption
                                                    

Tidak ada komentar:

Posting Komentar