Jumat, 08 Mei 2015

Process and Threads


PROCESS


Process Vs Program

  • Program : mengandung instruksi untuk melakukan suatu tugas.
  • Process : merupakan eksekusi dari suatu program.

The Process Model 











Process Creation
Event yang menyebabkan proses creation :
  • Inisialisasi sistem.
  • Pelaksanaan pemanggilan sistem proses creation dengan proses yang berjalan. (fork ())
  • Sebuah permintaan pengguna untuk membuat proses baru.
  • Inisiasi pekerjaan batch.

Process
  • Disebut juga dengan sebuah tugas atau pelaksanaan program secara individu, dan dapat ditelusiri daftar urutan instruksi yang mengeksekusinya.




5 States Process Model















Suspended Process

  • Prosesor lebih cepat daripada I / O sehingga semua proses dapat menunggu I / O
  • Swap proses ke disk untuk membebaskan lebih banyak memory
  • State yang diblokir menjadi suspend state ketika bertukar ke disk
  • Dua state baru : Blocked-suspend, Ready-suspend

Akibat dari Suspended Process
  • Swapping
  • Other OS reason
  • Interactive user request
  • Timing
  • Parent Process Request

Process Table
Merupakan lokasi dari suatu proses, atribut yang dibutuhkan untuk managementnya adalah :
  • Process ID
  • Process state
  • Location in memory 
Process Location
-   Proses mencakup sekumpulan program yang akan dieksekusi : 
  • Lokasi data untuk variabel lokal dan global
  • Setiap konstanta yang didefinisikan
  • Stack
-   Process Control Block
  • Merupakan sekumpulan atribut yang ada pada table process.
-   Process Image
  • Sekumpulan program, data, stack dan atribut.

Process Control Block
  • Mengidentifikasikan proses
  • Informasi state processor
  • Informasi proses control

Process Termination
Event yang dapat menyebabkan proses termination :
  • Normal Exit (voluntary)
  • Error Exit (voluntary)
  • Fatal Error (involuntary)
  • Di kill oleh process lain (invouluntary)
Alasan untuk Process Termination
  • Normal completion
  • Batas waktu terlampaui
  • Memori tidak tersedia
  • Pelanggaran Bounds
  • Kesalahan perlindunga : misalnya menulis untuk read-only file 
  • Kesalahan aritmatika
  • Waktu overrun : proses menunggu lebih lama dari maksimum yang ditentukan untuk sebuah event.
  • I/O failure
  • Instruksi tidak valid
  • Terjadi ketika mencoba untuk mengeksekusi data
  • Privileged instruction
  • Penyalahgunaan Data
  • Intervensi sistem operasi
  • Seperti ketika deadlock terjadi
  • Parent di terminate sehingga proses child mengakhiri permintaan parentnya.
Alasan Untuk Process Switch
  • Clock interupt
  • I/O interrupt
  • Memory fault
  • Trap
  • Supervisor Call

Modeling Multiprogramming


















Utility CPU sebagai fungsi dari jumlah proses dalam memori.



Process Creation

  • System()
  • Fork()
  • Exit()

System()

Example
#include <stdlib.h>
int main ( )
{
int return_value ;
return_value = system ( "ls -l /" );
return return_value;
}



Fork()
  • Ketika program memanggil fork(), proses akan diduplikat  yang disebut proses child.
  • Proses parent terus melaksanakan program dari titik yang disebut fork.
  • Proses child juga, mengeksekusi program yang sama dari tempat yang sama pid_t frok (void)














Exit()
  •          execvp dan execlp (dengan p)

         menerima nama program dan mencari program dengan nama di jalur eksekusi saat ini; fungsiyang tidak mengandung p harus diberi path lengkap dari program yang akan dieksekusi

  •          execv, execvp, dan execve (dengan v)

         menerima daftar argumen untuk program baru sebagai array NULL-dihentikan pointer mengerjakan sesuatu • execl, execlp, dan execle (dengan l)

         menerima daftar argumen menggunakan mekanisme varargs bahasa C                                                   

  •            execve dan execle (dengan e)
         menerima argumen tambahan, dan beberapa array environtment variable. Argumen harus array NULL-diterminate dari pointer ke string karakter. Setiap karakter string harus dari bentuk "VARIABLE = nilai".




THREADS

Threads

  • Merupakan state eksekusi yang berjalan(running, ready, dll)
  • Thread kontext tersimpan ketika tidak berjalan
  • Per-thread memiliki beberapa penyimpanan statis untuk variable lokal
  • Akses ke memory dan resources dari proses tersebut



Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama :

  •  Proses Lightweight : karena thread memiliki beberapa properti dari proses
  •  Multithreading : memungkinkan beberapa thread dalam proses yang sama

Property Proses :
  • LWP identifier
  • Priority LWP
  • Signal mask
  • Register
  • Stack


Thread Model




Kolom pertama berisi beberapa item yang dishare oleh semua thread dalam proses. Yang kedua berisi beberapa item pribadi untuk setiap thread.












Setiap thread masing-masing memiliki stack




Single thread : terdiri dari satu thread
Multiple thread : terdiri dari banyak thread


Keuntungan menggunakan thread


  • Waktu yang lebih efisien untuk membuat thread baru daripada membeuat suatu proses
  • Waktu yang dibutuhkan untuk terminate thread lebih sedikit daripada proses
  • Waktu yang dibutuhkan lebih sedikit untuk beralih antara dua thread dalam proses yang sama
  • Sejak thread dalam memori yang sama berbagi proses dan file, mereka dapat berkomunikasi satu sama lain tanpa melibatkan kernel

Hubungan antara Thread dan Proses
  • 1:1 (One to One)
  • M:1 (Many to One)
  • 1:M (One to Many)
  • M:M (Many to Many)

    www.binus.ac.id

    Tidak ada komentar:

    Posting Komentar