Thursday, May 7, 2015

Session 4 - 6 | Process and Threads

Proses vs Program 

  1. Program
    • Berisi petunjuk untuk melakukan tugas
  2. Proses
    • Eksekusi dari program
The Process Model 

a) Multiprogramming dari 4 program
b) Model konseptual dari 4 independen, proses berurutan
c) Hanya 1 program aktif sekaligus

Process Creation
  • Inisialisasi sistem
  • Eksekusi dari proses kreasi sistem pemanggil oleh proses yang berjalan. (fork())
  • Permintaan user membuat proses baru
  • Inisiasi dari batch job
Process
  • Disebut juga sebagai tugas
  • Ekseskusi dari program individual
  • Dapat ditelusuri
    • Daftar berurutan dari instruksi yang dieksekusi
Suspended Processes
  • Processor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O 
  • Tukar proses ini kedisk untuk membebaskan lebih banyak memori
  • Block state menjadi suspend state ketika bertukar ke disk
  • 2 state baru:
    • Blocked, suspend
    • Ready, Suspend
Process Control Block
  • Process Identification
    • Identifier
      • Pengidentifikasi numerik yang dapat disimpan dengan proses kontrol blok
      • Identifikasi dari proses
      • Idenfier dari proses yang dibuat di proses ini (Parent proses)
      • User identfier
    • Processor State Information
      • User-visible register
      • Kontrol dan status register
        • Program Counter: berisi alamat dari instruksi berikutnya yang akan diambil 
        • Code Kondisi: Hasil hitung atau operasi logical
        • Information Status: Termasuk interrupt diaktifkan atau dinonaktifkan flag, mode eksekusi
      • Stack Pointer: setiap proses memiliki satu atau lebih last-in-first-out (LIFO) sistem stack yang berhubungan dengan itu
    • Process Control Information
      • Penjadwalan dan informasi state
Process Creation
  • Using system call
    • System()
    • Fork()
    • Exec()
Thread
  • Sebuah eksekusi state (running, ready, dll)
  • Konteks thread disimpan ketika tidak running
  • Mempunyai eksekusi stack
  • Beberapa penyimpanan statis per-thread umtuk variable lokal
  • Akses ke memori dan resource dari proses tersebut
  • Memungkinkan beberapa thread dieksekusi secara langsung dalam lingkungan proses yang sama
    • Lightweight Process
    • Multithreading
Model Thread

Benefit of Threads

  • Mengambil waktu yang lebih sedikit untuk membuat thread baru daripada proses
  • Waktunya lebih sedikit untuk terminate thread daripada proses
  • Waktunya lebih sedikit untuk beralih antara 2 thread dalam proses yang sama
Implementasi Thread
  • User Space
    • Keuntungan :
      • Memungkinkan setiap proses untuk memiliki algoritma penjadwalan sendiri
      • performa
    • Kekurangan:
      • Implementasi dari memblokir system call
      • Tidak ada thread lain dapat berjalan kecuali thread pertama secara sukarela menyerahkan CPU

  • Kernel Space
    • Keuntungan:
      • Tidak membutuhkan system call non-blocking baru 
    • Kekurangan:
      • Biaya yang lebih besar untuk menciptakan dan destroying thread
  • Multpiplexing user-level threads into kernel-level threads

Pop-up Thread
a) Sebelum pesan tiba
b) Setelah pesan tiba

POSIX(Portable Operating System Interface) Threads

Behavior of Process

a) Process-bound
b) I/O bound


CPU Scheduler

  • Pilih dari antar proses dalam memori yang siap untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses
  • Penjadwalan CPU dapat terjadi ketika proses:
    • Saklar dari running ke waiting state
    • Switch dari running ke ready state
    • Switch dari wating ke ready
    • Terminate
  • Penjadwalan 1 dan 4 adalah nonpreemptive
  • Semua penjadwalan lainnya adalah preemptive
Dispatcher
  • Modul dispatcher memberikan kontrol CPU ke proses yang dipilih oleh scheduler jangka pendek; ini melibatkan:
    • Switching konteks
    • Switching ke mode user
    • Menuju ke lokasi yang tepat dalam program user untuk merestart program
  • Dispatch latency: waktu yang diperlukan untuk dispatcher untuk menghentikan 1 proses dan mulai berjalan lagi
Scheduling Criteria
  • CPU utilization: menjaga CPU sesibuk mungkin
  • Throughtput: jumlah dari proses yang menyelesaikan eksekusi per-satuan waktu 
  • Waktu turnaround: jumlah waktu untuk mengeksekusi proses tertentu
  • Waktu tunggu: jumlah waktu proses untuk menunggu dalam antrian
  • Response time: jumlah waktu yang dibutuhkan dari saat permintaan direquest sampai respon pertama diproduksi, tidak ada keluaran (untuk lingkungan time-sharing)
Optimization Criteria
  • Max CPU utilization: Penggunaan CPUnya digunakan semaksimal mungkin
  • Max throughtpu: jumlah proses yang selesai maksimum
  • Min turnaround time: semakin cepat semakin bagus
  • Min waiting timeL waktu tunggu real
  • Min response time: waktu response time cepat
Batch Scheduling Algorithm
  • First-Come-First-Serve(FCFS)
    • Keuntungan: mudah dipahami dan mudah diprogram
    • kerugian: Pekerjaan singkat mungkin menunggu terlalu lama jika perkejaan lama berada didepan pekerjaan singkat
  • Shortest Job First
    • ada 2 skema:
      • Nonpreemptive: sekali CPU diberikan keproses, yang lain tidak dapat preempted sampai CPU burst selesai
      • Preemptive: jika proses baru datang dengan panjang CPU burst lebih kecil dibandingkan dengan yang tersisa saat proses eksekusi, maka boleh mendahului. Skema ini dikenal sebagai Shortest - Remaining - Time - Firsr (SRTF)


Types Scheduler
  • Round-robin scheduling
  • Priorty scheduling
  • Multiple scheduling
  • Shortest process text
  • Guaranteed scheduling
  • Lottery scheduling
  • Fair-share scheduling

No comments:

Post a Comment