Tsani Agustin Aghnia Toibin.S Nim : 14111085 Prodi : Teknik

advertisement
Nama
: Tsani Agustin Aghnia Toibin.S
Nim
: 14111085
Prodi
: Teknik Informatika
Kelas
: 21
PROSES DAN THREADS DALAM SISTEM OPERASI
 Proses
Proses adalah keadaan ketika sebuah program sedang di eksekusi. Saat komputer
berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui
system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh
proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru
sehingga semua proses ini pada akhirnya membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti
waktu CPU, memori, berkas, atau perangkat I/O. Sumber daya ini dapat diperoleh langsung dari
sistem operasi, dari proses induk yang membagi-bagikan sumber daya kepada setiap proses
turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan sistem
operasi.
Pengelolaan Proses
Proses perlu dikelola karena dalam sebuah proses membutuhkan beberapa sumber daya
untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkasberkas, dan perangkat-perangkat I/O.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan
managemen proses seperti:

Pembuatan dan penghapusan proses pengguna dan sistem proses

Menunda atau melanjutkan proses

Menyediakan mekanisme untuk proses sinkronisasi

Menyediakan mekanisme untuk proses komunikasi

Menyediakan mekanisme untuk penanganan deadlock
Perkembangan sistem komputer mendatang adalah menuju ke sistem multi- processing,
multiprogramming, terdistribusi dan paralel yang mengharuskan adanya proses-proses yang
berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan masalah yang perlu
perhatian dari perancang sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat
lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren). Prosesproses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling
berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik.
Status Proses
Proses yang dieksekusi mempunyai lima status yang terdiri dari:
1. New : pembentukan suatu proses
2. Running : instruksi-instruksi yang sedang dieksekusi
3. Waiting : proses menunggu untuk beberapa event yang terjadi
4. Ready : menunggu untuk dialirkan ke pemroses (processor)
5. Terminated : proses telah selesai dieksekusi
Kelima status proses tersebut dapat digambarkan pada diagram berikut:
Pembentukan Proses
Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah
proses dibuat melalui system call create-process membentuk proses turunan (child process) yang
dilakukan oleh proses induk parent process. Proses turunan tersebut juga mampu membuat
proses baru sehingga kesemua proses-proses ini pada akhirnya membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti
”waktu CPU”, ”memori”, ”berkas” atau perangkat ”M/K”. Sumber daya ini dapat diperoleh
langsung dari Sistem Operasi, dari Proses Induk yang membagi-bagikan sumber daya kepada
setiap proses turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang
diberikan Sistem Operasi.
Ada dua kemungkinan bagaimana jalannya (running) proses induk dan turunan berjalan
(running). Proses-proses tersebut berjalan secara konkuren atau proses induk menunggu sampai
beberapa/seluruh proses turunannya selesai berjalan
Terminasi Proses
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah
terakhir serta meminta sistem operasi untuk menghapus perintah tersebut dengan menggunakan
system call exit. Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induknya melalui system call wait. Semua sumber-daya yang digunakan oleh proses akan dialokasikan
kembali oleh system operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses juga dapat
diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk
melakukan hal ini pada turunannya. Alasan terminasi tersebut seperti:

Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan
ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.

Task yang ditugaskan kepada turunan tidak lagi diperlukan.

Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap
berjalan.
Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.
Process Control Block (PCB)
Proses Control Block adalah bentuk informasi-informasi lain yang diperlukan sistem
operasi untuk mengendalikan dan mengoordinasikan beragam proses aktif dalam suatu proses.
Dalam kenyataannya, proses banyak mengalami gangguan dalam menjalankan tugasnya oleh
karena itu ada PCB (Proses Control Block) untuk membantu dan memberikan dukungan kepada
proses itu.
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, seperti status proses, program counter,
CPU register, Informasi manajemen memori, informasi pencatatan, informasi status I/O. Berikut
adalah gambar diagram PCB.
 Threads
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 banyakmengerjakan 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].
a. Single thread dan multi thread
1.Single thread: process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi thread: process dapat mengeksekusi sejumlah thread dalam satu waktu
Gambar 3. Single thread dan multi thread
b. 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-toOne. 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-toMany 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.
Download