Saturday, May 9, 2015

Process and Threads

I. PROSES

A. Konsep

Perbedaan proses dengan program
- Program : terdiri dari instruksi untuk melakukan tugas
- Proses    : eksekusi dari sebuah program

Proses :
- disebut juga sebuah task
- eksekusi dari sebuah individual program
- dapat ditelusuri berupa daftar instruksi yang dapat dieksekusi

B. The Creation and Termination  of a Process

Event yang menyebabkan proses pembuatan adalah :
  • System Inisialisasi 
  • Ekseskusi dari sebuah proses pembuatan system pemanggil oleh running process (fork())
  • Seorang user merequest untuk membuat proses baru
  • Inisiasi batch job 
Proses Creation menggunakan system call :
1. System() : Mengeksekusi perintah dari dalam program
2. fork()
Ketika program memanggil fork maka proses duplikat yang disebut dengan proses child akan dibuat. Proses parent terus melaksanakan program dari titik yang disebut fork.
Proses child juga mengeksekusi program yang sama dari tempat yang sama fork pid_t (void)
Return dari fungsi fork adalah 0 untuk child, >0 untuk parent, dan -1 untuk kesalahan/error.
hasilnya adalah :
$. / fork
Proses Program ID yang utama adalah 18.611
ini adalah proses child, dengan id 18612
ini adalah proses parent, dengan id 18611
Proses id child adalah 1861

3. Exec()
    Event yang menyebabkan proses terminasi / pengakhiran adalah :
    • Normal exit (voluntary)
    • Error exit (voluntary).
    • Fatal error (involuntary).
    • Killed by another process (involuntary)
    Alasan proses terminasi adalah :
    1. I / O gagal
    2. instruksi yang tidak valid
    3. terjadi ketika mencoba untuk mengeksekusi data
    4. instruksi istimewa
    5. penyalahgunaan Data
    6. Intervensi sistem operasi seperti ketika deadlock terjadi
    7. Parent berakhir sehingga proses child mengakhiri permintaan parent

    5 state dari proses model
    • dispatch berfungsi untuk menjalankan suatu fungsi tertentu.
    • exit kondisi ketika proses sudah terputus (terminated)
    Suspended Process
    • Prosesor lebih cepat daripada I / O sehingga semua proses dapat menunggu I / O
    • Tukar proses ini ke disk untuk membebaskan lebih banyak memory
    • Keadaan yang diblokir akan menjadi keadaan suspend ketika bertukar disk
    • 2 keadaan baru :
                 1. blocked , suspend
                 2. ready , suspend

    Process Table
    - Dimana proses berada
    - Atribut yang diperlukan untuk manajemen :
      1. proses ID
      2. proses state
      3. lokasi di memori

    Lokasi Proses
    - Proses mencakup set program yang akan dieksekusi
         -Lokasi data untuk variabel lokal dan global
         -Setiap konstanta yang didefinisikan
         -stack
    -Proses Kontrol Block : sekumpulan atribut
    -Proses Gambar : sekumpulan program, data, stack, dan atribut

    C. Mode-mode dari Eksekusi
    1. User Mode
        - lebih sedikit hak akses modenya
        - program user biasanya mengeksekusi mode ini.
    2. System Mode, Control Mode, atau Kernel Mode
       - lebih besar hak akses modenya
       - kernel dari operating system


    II. THREADS

    A. Konsep
    Thread memungkinkan beberapa eksekusi berlangsung dalam lingkup proses yang sama
    Thread ada 2 macam :

    1. Lightweight process (LWP) : karena threads memiliki beberapa sifat/properti dari proses. LWP mengambil properti / atribute.
    LWP mempunyai 2 element , yaitu :
          1. LWP Identifier
          2. Prioritas dari LWP : dengan LWP ini proses-proses tertentu akan diprioritaskan dan secara otomatis thread-thread di dalamnya juga akan didahulukan

    2. Multithreading         : memungkinkan beberapa thread dalam proses yang sama
    keadaan eksekusi :
    1. ready          : siap untuk jalan
    2. running      : bekerja / sistem berjalan
    3. terminated : sistem diakhiri

    (a) One to One    : 1 proses 1 thread
    (b) Many to One : 1 proses banyak thread

    B. Thread Model
    Keterangan :
    1. Address Space : mendefinisikan virtual address space yang di assign untuk proses
        -virtual address space : virtual storage yang di assign untuk sebuah proses.
    2. Register : ada di prosesor yang paling cepat
    3. Accounting Information : perhitungan processor time , clock time , resourcenya efisien atau tidak.

    keterangan gambar diatas : 1 proses memiliki banyak thread dan setiap thread mempunyai stacknya masing-masing.


    C. Manfaat Threads
    1. memerlukan waktu lebih sedikit untuk membuat thread baru daripada membuat proses baru.
    2. membutuhkan waktu lebih sedikit untuk mengakhiri thread daripada proses.
    3. membutuhkan waktu lebih sedikit untuk bertukar antara 2 thread dalam proses yang sama.
    4. bisa saling komunikasi.

    D. Implementasi Thread
    A. User Space
         Keuntungan :
       - memungkinkan setiap proses dapat dijadwalkan masing-masing
       - performancenya lebih cepat
      
         Kerugian :
        - implementasi dari non blocking system calls.
        - tidak ada thread yang boleh jalan apabila thread pertama sedang berjalan. (harus menunggu)

    B. Kernel Space
         Keuntungan :
      - tidak membutukan non blocking system calls baru

         Kerugian :
       - membutuhkan biaya yang besar dalam membuat dan merusak threads.

    Pop Up Thread : pembuatan thread baru ketika ada pesan datang (thread yang tiba-tiba muncul)

    E. Hubungan antara Threads dan Process
    One to One (1:1)     : 1 thread berhubungan dengan 1 proses (1 proses 1 thread)
    Many to One (M:1) : Multiple thread yang mengeksekusi 1 proses (1 proses banyak thread)
    One to Many (1:M) : 1 thread mengerjakan banyak proses 
    (M:M)                      : kombinasi antara many to one dengan one to many.

    No comments:

    Post a Comment