Wednesday, June 8, 2011

Process and Thread

Definisi Proses
Proses adalah konsep dasar sistem operasi.
Secara sederhana proses adalah sebuah program yang dieksekusi.
Konsep dasar proses secara informal adalah program dalam eksekusi.

Keadaan Proses
New (Proses Baru)
Ready
Running
Waiting
Terminate/Done





Process Creation
yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses akan ditambahkan ke proses yang sedang dikelola, sistem operasi membuat struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu

Alur Pembuatan Proses adalah sebagai berikut:
  • Memberi identitas (nama) pada proses yang dibuat
  • Menyisipkan proses pada list proses atau tabel proses
  • Menentukan prioritas awal proses
  • Membuat PCB
  • Mengalokasikan resource awal bagi proses tersebut.
Satu proses dimungkinkan untuk membuat sejumlah proses baru melalui system call create-process.
Proses yang dibuat sebelumnya disebut parent process, sedangkan proses yang baru disebut childern process.
Proses baru ini juga dimungkinkan membuat proses yang lebih baru lagi.
Pada saat sebuah proses membuat proses baru, terdapat dua kemungkinan pada proses eksekusi.
  • Parent melanjutkan eksekusi secara konkuren dengan childern
  • Parent menunggu sampai beberapa atau semua childern terminate.
Terdapat pula dua kemungkinan pada address space proses baru :
  • Child process merupakan duplikat dari parent process
  • Child Process memiliki program untuk di-load ke dalam address space.

KONGKURENSI
  • Proses-proses disebut kongkuren jika proses-proses berada / berjalan pada saat yang sama.
  • Proses-proses kongkuren dapat sepenuhnya tidak bergantung dengan lainnya, tetapi dapat juga saling berinteraksi
  • Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.

Prinsip-prinsip Kongkurensi
  • Alokasi waktu pemroses untuk proses-proses
  • Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
  • Komunikasi antar proses
  • Sinkronisasi aktivitas banyak proses

Process Termination
Sebuah proses terminate ketika proses itu selesai mengeksekusi instruksi terakhir dan meminta sistem operasi untuk menghapusnya melalui system call.

Kondisi yang menyebabkan proses berhenti:
  • normal exit (voluntary) à prosedur sudah selesai – keluar
  • error exit (voluntary) à suatu proses berjalan, tiba2 ada yang salah/error. Mis: yg diminta int, yang dimasukkan string
  • fatal error (involuntary) à kesalahan2 yang gak bisa ditolerir. Mis: proses gak berjalan, trus dibagi 0 – terpaksa berhenti, kalo gak hasilnya kacau
  • killed by another process (involuntary) à terpaksa keluar oleh proses lain. Mis: dengerin mp3 trus maen game yang ada suaranya juga – terpaksa berhenti mp3nya gara2 game.

Process Control Block (PCB)
Fungsi : sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari proses ke proses.

PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, yaitu:
  • Keadaan proses
  • Program counter
  • CPU register
  • Informasi managemen memori
  • Informasi pencatatan
  • Informasi status I/O
  • Scheduling information

Keadaan proses : Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
Program counter : Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.
CPU register : Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
Informasi managemen 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 riil yang digunakan, batas waktu, jumlah akun, 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 open berkas dan banyak lagi.
Scheduling information : berisis penjadwalan proses beserta algoritmanya


Thread

Definisi: unit dasar dari utilisasi CPU.

Konsep Dasar
Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan (lightweight) atau kadang disebut thread.

Dengan banyak kontrol thread, proses dapat
melakukan lebih dari satu pekerjaan pada waktu yang
sama.

Managemen Thread
Java menyediakan beberapa fasilitas untuk mengatur thread — thread, diantaranya adalah:
Suspend(): berfungsi untuk menunda eksekusi dari thread yang sedang berjalan.
Sleep(): berfungsi untuk menempatkan thread yang sedang berjalan untuk tidur dalam beberapa waktu.
Resume(): hasil eksekusi dari thread yang sedang ditunda.
Stop(): menghentikan eksekusi dari sebuah thread; sekali thread telah dihentikan dia tidak akan memulainya lagi.

Sejauh ini suatu proses adalah sebuah program yang menjalankan eksekusi thread tunggal. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
Sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus proses yang berkesinambungan.

Multi Thread
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.

Thread States
Pada setiap saat, thread dikatakan dalam satu atau lebih oleh beberapa thread seperti yang ditunjukkan oleh properti Thread.Thread diilustrasikan pada diagram alir di bawah ini:



Unstarted : Ketika sebuah thread baru dibuat oleh runtime.
Running : Thread baru dibuat tetap dalam keadaan Unstarted sampai program panggilan Thread Start.
bortRequested : Fungsi Thread ini adalah Thread Abort telah dipanggil tetapi thread belum menerima pengecualian Thread AbortException yang akan mencoba untuk menghentikannya.
Stopped : Sebuah thread aktif memasuki state Berhenti ketika delegasi ThreadStart tersebut berakhir.
WaitSleepJoin : Jika kode thread pertemuan tidak dapat mengeksekusi (karena beberapa kondisi tidak selesai).
Suspended : Jika thread aktif menjalankan Thread Suspend, thread akan memasuki kondisi Suspended.Sebuah state Suspended kembali ke keadaan aktif jika thread lain dalam program memanggil thread ditangguhkans Thread Resume.


No comments:

Post a Comment