Proses vs Program
- Program
- Berisi petunjuk untuk melakukan tugas
- Proses
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
- 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