twitter
rss

PROSES Vs THREAD

Proses

Proses merupakan program sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya .

Status Proses
Proses yang dieksekusi mempunyai lima status yang terdiri dari:
a. new: Pembentukan suatu proses
b. running: Instruksi-instruksi yang sedang dieksekusi
c. waiting: Proses menunggu untuk beberapa event yang terjadi
d. ready: Proses menunggu untuk dialirkan ke pemroses (processor)
e. terminated: Proses telah selesai dieksekusi.




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, table 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.




Diagram yang menggambarkan penukaran dari proses ke proses oleh CPU






Operasi-Operasi pada Proses
Proses dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuat dan dihapus secara dinamis. Maka, sistem operasi harus menyediakan suatu mekanisme umtuk pembuatan proses dan terminasi proses.




Thread

Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.
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.
Model Multithreading
Dalam sub bab sebelumnya telah dibahas pengertian dari thread, keuntungannya, tingkatan atau levelnya seperti pengguna dan kernel. Maka dalam sub-bab ini pembahasan akan dilanjutkan dengan jenis-jenis thread tersebut dan contohnya baik pada Solaris mau pun Java. Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel thread, sehingga model-model multithreading-nya pun menjadi beragam. Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan many-to-many.

Model Multithreading

1.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. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model Many-to-One.
2.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.
3.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.
Keadaan Thread
Sebuah thread java dapat menjadi satu dari 4 kemungkinan keadaan:
1.new: sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat.
2.runnable: memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek.
3.block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan. Contohnya: sleep() atau suspend().
4.dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil.
Symmetric Multi Processing
Berkaitan dengan arsitektur hardware multiprosesor, dimana dua buah atau lebih prosesor terhubung pada sebuah memori utama dan dikendalikan oleh sebuah Sistem Operasi. Sekarang ini banyak sistem mikroprosesor menggunakan SMP ini. Intinya sistem SMP ini memungkinkan prosesor untuk mengerjakan tugas-tugas dimanapun datanya tersimpan pada memori, dengan syarat setiap tugas yang dikerjakan tidak dilakukan oleh kedua prosesor secara bersamaan.

Dengan sistem operasi yang tepat, sistem SMP dapat dengan mudah memindahkan tugas antar prosesor untuk menyeimbangkan bebean kerja dengan efisien.

Kelebihan dan Kekurangan SMP

Kelebihannya adalah memungkinkan prosesor memproses banyak pengolahan data, jadi berguna untuk beberapa program tertentu. Untuk beberapa program seperti Game, SMP ini tidak cocok untuk CPU berprosesor tunggal.
Bilapun akan dihubungkan dengan prosesor tunggal, SMP ini membutuhkan sistem program yang mendukung untuk melakukan kinerja.

Microkernel
Microkernel adalah inti (kernel) dari operating system yang paling sederhana, tidak ada fasilitas apapun, menjadikannya kernel ini berukuran sangat kecil dan biasanya sangat stabil (hampir bisa dipastikan tidak ada lagi bugsnya).

Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services :
Low-level address space management : sistem pengalamatan physical atau virtual untuk memory,networkhost, peripheral, dan lain-lain
Thread management : pengaturan proses (='molekul') yang terpecah menjadi thread (='atom') dan dijalankan secara paralel.
Inter-process communication (IPC) : pengaturan komunikasi antar thread pada satu atau beberapa proses. IPC bisa punya ruang lingkup di dalam atau antar komputer.
Arsitektur microkernel sangat berbeda dengan monolithic kernel :
Monolithic kernel memiliki struktur vertical layered : setiap aplikasi memanggil servis yang berada di bawahnya
Microkernel memiliki struktur horizontal : aplikasi memanggil servis yang berada sejajar dengan menggunakan IPC.

Performance
Cara kerja microkernel kurang efisien dibanding dengan monolithic, karena adanya IPC setiap kali servis dipanggil. Namun demikian, pengembangan arsitektur microkernel sangat intensif, sehingga efisiensi arsitektur inipun meningkat dengan tajam.

Realtime Applications
Karena sistem microkernel menggunakan thread yang dieksekusi secara parallel, microkernel sangat mudah mendukung aplikasi realtime meskipun system sedang overloaded. Sedangkan pada arsitektur monolithic, aplikasi realtime akan terputus-putus pada saat system overloaded.

Robustness/Keandalan Tinggi
Microkernel sangat sederhana, sehingga bisa dipastikan bebas bugs. Selain itu proses di dalam microkernel berjalan secara independent. Sehingga microkernel memiliki keandalan sangat tinggi, jauh lebih tinggi dibandingkan dengan monolithic. Oleh karena itu arsitektur microkernel banyak dipakai pada aplikasi mission critical pada embedded system.
Pada monolithic kernel, bugs lebih sering menghantam kernel karena kernelnya sangat kompleks. Selain itu semua proses saling terkait. Sehingga jika ada bugs atau proses yang menggantung, seluruh sistem bisa ikut crashed.

Security/Keamanan Tinggi
Microkernel menggunakan prinsip miminal privilege, di mana setiap proses hanya dapat mengeksekusi instruksi sederhana yang sangat spesifik. Sehingga pengaturan security menjadi sangat mudah.
Sedangkan proses2 pada arsitektur monolithic cenderung bisa melakukan eksekusi kompleks yang lebih sulit dimonitor securitynya.
Arsitektur Microkernel pada Router
Pada router-router kelas high end, seperti Cisco CRS-1, operating system dengan arsitektur Microkernel menjadi pilihan yang sangat menarik, karena keunggulan-keunggulan tadi :
•Performance - Router CRS-1 adalah router raksasa yang memiliki CPU (dan kipas pendingin) yang sangat kuat, sehingga overhead microkernel menjadi tidak ada artinya
•Realtime Applications - Router CRS-1 dapat menjalankan aplikasi realtime (seperti emulasi leased line, voice, telemetri, dll) tanpa takut aplikasi realtime terganggu karena ada traffic sangat tinggi atau ada serangan DDoS
•Robustness - semua komponen hardware/software CRS-1 dapat diganti2 tanpa adanya system down sama sekali. Termasuk penggantian chassis dan switching fabric, karena CRS-1 bersifat multi chassis dan multi switching fabric (yang dimungkinkan karena microkernel ini)
•Security - user CRS-1 memiliki tingkat privilege yang berbeda2, sehingga pengaturan security menjadi mudah sekali. Level security inipun terbawa sampai tingkat process dan thread karena arsitektur microkernel ini

0 komentar:

Posting Komentar