Sabtu, 09 Mei 2015

PROCESS AND THREADS

PROCESS vs. PROGRAM

Program adalah instruksi-instruksi untuk mengerjakan suatu task
Proses adalah eksekusi dari sebuah program

Proses model memiliki 3 kategori :
  1. Multiprogramming of four program
  2. Conceptual model of four independent, sequential processes
  3. Only one program is active at once

PROCESS CREATION

Penyebab adanya pembuatan suatu proses :
  • Inisialisasi sistem
  • Eksekusi dari sebuah pemanggilan pembuatan proses oleh sebuah proses yg sedang berjalan (fork())
  • User meminta untuk membuat proses yg baru
  • Inisialisasi batch job

PROCESS

Proses disebut juga task, merupakan eksekusi dari sebuah program , dapat dilacak karena ada daftar urutan instruksi yg sudah dieksekusi.


SUSPENDED PROCESSES

Prosesor lebih cepat dibanding dengan I/O jadi semua proses mungkin menunggu untuk masuk ke I/O, memindahkan proses ke disk untuk membebaskan memori. Dalam suspended processes ada 2 jenis state :
  1. Blocked, Suspend
  2. Ready, Suspend

PROCESS TABLE

Tabel proses ini adalah tempat proses itu diletakka. Atribut yg penting yg digunakan saat tahun lalu :
  • Process ID
  • Process state
  • Location in memory

PROCESS LOCATION

Proses berisi kumpulan program yg akan dieksekusi, dapat berupa :
  1. Control and status register
  2. Processor state information
  3. Process control information

MODES of EXECUTION

Mode-mode untuk eksekusi dibagai menjadi 2 :
  1. User mode
  2. System node, control mode, atau kernel mode

PROCESS TERMINATION

Penyebab-penyebab terjadinya process termination :

  • Normal exit (voluntary)
  • Error exit (voluntary)
  • Fatal error (involuntary)
  • Killed by another process (involuntary)

SYSTEM()

System digunakan untuk mengeksekusi perintah dalam sebuah program


FORK()

Ketika suatu program memanggil fungsi fork() maka program tersebut akan menjalan proses duplikasi yg disebut pembuata proses child.


THREAD

Thread memiliki state dalam eksekusi (contoh : running,ready,dll ), mempunyai sebuah stack/tempat penyimpanan, bisa mengakses memori (primary dan secondary) dan sumber data untuk proses tersebut. Thread juga mengijinkan banyak eksekusi yg dilakukan secara sekaligus dalam suatu proses yg sama. Lightweight process adalah thread yg mempunyai beberapa properti dalam suatu proses. Sedangkan multithreading adalah melakukan banyak eksekusi pada thread dalam proses tersebut.


Kelebihan thread :
  • membutuhkan waktu yg relatif cepat untuk membuat suatu thread
  • mengurangi waktu untuk mengakhiri thread 
  • mengurangi waktu untuk bertukar informasi 
  • antar thread bisa langsung komunikasi dan tidak akan mengganggu kinerja dari kernel

USER SPACE

Kelebihan : 
  1. mengijinkan setiap proses untuk melakukan penjadwalannya diri sendiri
  2. performa
Kekurangan :
  1. thread dapat terblock ketika proses yg lain juga terblock
  2. thread yg satu saling meggantung proses

KERNEL SPACE

Kelebihan : tidak membutuhkan sebuah pemanggilan nonblocking system
Kekurangan  : biaya untuk membuat dan mengakhiri thread akan semakin meningkat


POP-UP THREAD

Pop-up thread adalah thread yg tiba-tiba muncul. Pembuatan suatu dengan logo ketika suatu pesan telah diterima : antara sebelum makan nanti ganti


BEHAVIOUR of PROCESS

Ada 2 kebiasaan dari proses :

  1. Process-bounded
  2. I/O bound


CPU SCHEDULER()

CPU Scheduler berfungsi untuk menampilkan proses-proses didalam sebuah memori yg sudah siap untuk dieksekusi, dan dialokasikan ke dalam CPU. CPU scheduling mempunyai 4 keputusan :

  1. berubah dari running ke waiting state
  2. berubah dari running ke ready state
  3. berubah dari waiting ke ready state
  4. terminate/mengakhiri

DISPATCHER

Dispatcher memberikan pengaturan tentang CPU untuk memproses yg terpilih oleh scheduler jangka pendek. Dispatcher melibatkan :
  • perubahan konteks
  • perubahan ke mode user
  • melompat ke lokasi yg salah dalam program user
Dispatcher latency adalah waktu yg dibutuhkan oleh dispatcher untuk menyelesaikan 1 proses dan memulai proses yg lainnya.

Kriteria scheduling :
  • CPU utilization, untuk menjaga agar CPU tetap dalam keadaan sibuk/bekerja
  • Throughput, jumlah dari proses yg eksekusinya telah selesai per satuan waktu
  • Turnaround time, jumlah waktu untuk mengeksekusi proses tertentu
  • Waiting time, jumlah waktu tunggu yg digunakan oleh proses untuk berada dalam antrian ready
  • Response time, jumlah waktu ketika suatu pekerjaan direquest
Optimization criteria :
  1. Max CPU utilization
  2. Max throughput
  3. Min turnaround time
  4. Min waiting time
  5. Min response time

GOAL OF SCHEDULING
  1. All system
    - fairness
    - policy enforcement
    - balance
  2. Batch system
    - throughput
    - turn around time
    - CPU utilization
  3. Interactive system
    - Response time
    - Proportionallity
  4. Real time system
    - meeting deadlines
    - predictability


BATCH SCHEDULING ALGORITHM

Ada beberapa metode dalam scheduling :
  1. First-Come First-Serve
    Proses diassign ke dalam CPU secara urut. Kemudahan menggunakan algoritma ini adalah mudah dimengerti dan mudah untuk di buat programnya. Sedangkan kesulitannya adalah tugas yg kecil/sedikit akan menunggu telalu lama jika mengantri dibelakang tugas yg besar.
  2. Shortest Job First - Non Preemptive
    Ketika CPU diberikan suatu proses yg tidak bisa di interupsi sampai CPU burst-nya selesai.
  3. Shortest Job First - Preemptive
    Ketika CPU diberikan suatu proses yg bisa di interupsi sebelum CPU burst-nya selesai.
  4. Interactive Scheduling Algorithm
    - Round-robin scheduling
    - Priority scheduling
    - Multiple queues
    - Shortest process next
    - Guaranteed scheduling
    - Lottery scheduling
    - Fair-share scheduling

Semoga bermanfaat ! ^^

1 komentar: