Kamis, 07 Mei 2015

Process and Thread

Process

Process vs Program
     Process : Eksekusi dari sebuah program
     Program : Mengandung instruksi untuk melakukan suatu tugas

Proses :
  • Creation : proses saat kita membuka program
  • Spawning : proses saat menampilkan program
  • Termination : proses saat berhenti / keluar program
Kejadian-kejadian yang menyebabkan proses creation :
- Inisialisasi sistem
- Pengeksekusian sistem pemanggilan proses creation dengan proses yang berjalan
- Pengguna meminta untuk membuat proses baru
- Inisiasi sebuah batch job (dikerjakan tiap paket)

Process Creation :
  • Menetapkan identifier proses yang unik
  • Mengalokasikan ruang untuk proses
  • Menginisialisasi proses pengendaliak blok
  • Mengatur hubungan yang tepat
Process Creation menggunakan system call :
- System() : mengeksekusi program didalam system/terminal
- Fork() : ketika program memanggil fork(), duplikat proses, yang disebut proses anak, dibuat.
- Exec() : Memanggil proses lain

Kejadian-kejadian yang menyebabkan proses termination :
- Normal exit (voluntary)
- Error exit (voluntary)
- Fatal Error (involuntary)
- Dimatikan oleh proses lain (involuntary)




Thread

- Sebuah state eksekusi (running, ready, terminated)
- Bisa akses memori dan resource
Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama
~ Lightweight process : ambil properti/atribut dari proses
~ Multithreading : mengijinkan multiple threads pada proses yang sama

Thread Model
(a) 1:1 relationship artinya 1 thread, 1 proses
(b) M:1 relationship artinya banyak thread, 1 proses

Macam-macam realationship :
- 1:1 = 1 thread, 1 proses
- M:1 = banyak thread, 1 proses
- 1:M = 1 thread, banyak proses
- M:M = kombinasi M:1 dengan 1:M atau many to many

setiap thread bisa memiliki satu stack. Stack nya menampung langkah-langkah nya mengikuti aturan FILO/LIFO.

Keuntungan dari thread :
  • Memerlukan waktu lebih sedikit untuk membuat thread baru daripada suatu proses
  • Waktunya sedikit untuk memutuskan suatu thread daripada proses
  • Waktunya lebih sedikit untuk switch antara 2 thread dalam proses yang sama
  • Bisa berkomunikasi


Process Scheduling

CPU Scheduler : memastikan bahwa tidak ada aplikasi yang menyalagunakan hak/aturan nya. Scheduler ada dua, short term scheduler dan long term scheduler.

Dispatcher : punya kontrol pada CPU ke proses yang dipilih oleh short term. Dispatcher latency adalah waktu yang dibutuhkan dispatcher untuk memberhentikan suatu proses dan memulai proses lain yang sedang berjalan.

Scheduling Criteria :

  • CPU utilization : CPU harus selalu bekerja
  • Throughput : jumlah proses yang selesai dalam satuan waktu
  • Turnaround time : total waktu untuk eksekusi proses tertentu
  • Waiting time : lama waktu menunggu
  • Response time : waktu merespon untuk pertamakalinya
Goals of Scheduling :

1.) All Systems
      - Fairness : punya bagian yang adil/sama
      - Policy enforcement : ada kebijakan
      - Balance : dalam suatu system semua bagian harus sibuk
2.) Batch system 
      - Throughput : bisa menghasilkan berapa job
      - Turnaround time : bagaimana agar waktunya tidak terlalu banyak
      - CPU utilization : CPU harus selalu sibuk
3.) Interactive system 
      - Response time : langsung respon secara cepat
      - Proportionality : sesuai dengan ekspektasi user
4.) Real-time system
      - Meeting deadlines : tidak boleh ada data yang hilang
      - Predictability : harus bisa ditebak

Batch Scheduling Algorithm
First-Come First-Serve (seperti queue). Keuntungannya mudah untuk dibuat. Kelemahannya job yang pendek akan menunggu lama jika ada proses/job yang lama sebelumnya.



www.binus.ac.id
www.skyconnectiva.com

Tidak ada komentar:

Posting Komentar