Processes SISTIM OPERASI (Operating System) IKI-20230
Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001
Processes n n n n
Konsep Proses Penjadwalan Eksekusi Proses Operasi terhadap Proses Lightweight process: Threads
OS Processes JM -2000/v1.1/2
1
Process Concept n
OS menjalankan banyak dan beragam program n n n
n
Process – a program in execution; n n
n
Batch system – jobs Time-shared systems – user programs or tasks Istilah pada buku teks: job, task dan process (dapat diartikan sama) Aktif (proses=>memori) vs pasif (program => file) Instruksi pada program (code) akan dieksekusi secara berurut (sekwensial) sesuai dengan “line code” (stored program concept).
Proses lebih dari “program code yang aktif”: n n n n
Melacak posisi instruksi (sequential execution): program counter Menyimpan data sementara var., parameter, return value: stack Menyimpan data (initial, global variable dll): data section Menyimpan status proses (contoh, aktif, wait I/O request dll.) OS Processes JM -2000/v1.1/3
Process Information n
Dimanakah informasi proses disimpan? n
Data struktur dari OS dalam bentuk table • Satu entry table/linked list => struktur data untuk menampung informasi satu proses (array of structure). • Setiap entry pada tabel proses menyimpan satu proses Contoh: MINIX (src/kernel/proc.h) => struct proc { … };
n
Informasi yang disimpan: • Informasi internal CPU: isi register-register, program counter, status CPU dll (umumnya dalam bentuk stack frame). • Identifikasi proses: nama proses, proses number/index, proses id. • Status (flags): runnable, blocked (wait: message atau I/O request) dll. • Accounting dan timer: user time, system time, alarm etc. • Resources: memory & file management. OS Processes JM -2000/v1.1/4
2
Process Control Block (PCB)
OS Processes JM -2000/v1.1/5
Process State n
Saat-saat proses dijalankan (executed) maka status dari proses akan berubah n n
n
n
Status proses tidak selamanya aktif (menggunakan CPU). Sering proses menunggu I/O complete => status wait, sebaiknya CPU diberikan kepada proses yang lain. Mendukung multi-tasking – utilisasi CPU dan I/O
Status proses (antara lain): n
new: The process is being created.
n
running: Instructions are being executed. waiting: The process is waiting for some event to occur. ready: The process is waiting to be assigned to a process. terminated: The process has finished execution.
n n n
OS Processes JM -2000/v1.1/6
3
Diagram of Process State
Perhatikan: Tidak semua state mempunyai transisi. Q: manakah transisi yang disebabkan oleh event eksternal? OS Processes JM -2000/v1.1/7
Process Scheduling n
Apakah objektif dari multiprogramming? n
n
Apakah objektif dari “time-sharing”? n
n
“Maximize” pemakaian CPU secara efisien (jadwal dan giliran pemakaian CPU). => CPU digunakan oleh proses-proses terus menerus Pemakaian CPU dapat di switch dari satu proses ke proses lain (concurrent process execution) => sesering mungkin, user dapat berinteraksi dengan sistim
Bagaimana jika sistim prosesor tunggal? n n
“Hanya ada satu proses yang dapat dijalankan” Proses lain menunggu sampai CPU dapat dijadwalkan (schedule) ke proses tsb OS Processes JM -2000/v1.1/8
4
Queue & I/O Device
OS Processes JM -2000/v1.1/9
Process Scheduling n
Proses dapat berubah status dan berpindah dari satu antrian ke antrian yang lain n
Proses dengan status “ready” berada di ReadyQueue • Menunggu giliran/dipilih oleh scheduler => menggunakan CPU
n
Selama eksekusi (status “run”) events yang dapat terjadi: • I/O request => I/O wait berada pada DeviceQueue • Create “child” proses => Jalankan proses “child”, tunggu sampai proses selesai (wait) • Time slice expired => Waktu pemakaian CPU habis, interrupt oleh scheduler, proses akan berpindah ke ReadyQueue
OS Processes JM -2000/v1.1/10
5
Process Scheduling
OS Processes JM -2000/v1.1/11
Schedulers n
Q: Bagaimana schedulers memilih proses atau program (decision)? n
n
n
Lebih dari satu proses atau program yang akan dijalankan?
Long-term scheduler (or job scheduler) – memilih proses/program yang mana yang akan di load dan berada di ready queue. n
Kemungkinan terdapat proses atau job baru.
n
Kemungkinan proses dipindahkan dari memori ke disk (swap out).
Short-term scheduler (or CPU scheduler) – memilih proses yang mana yang berada di ready queue akan “run” (mendapatkan jatah CPU). OS Processes JM -2000/v1.1/12
6
Schedulers (Cont.) n
Long-term scheduler tidak sering (proses baru) (seconds, minutes) ⇒ (may be slow). n
n
The long-term scheduler controls the degree of multiprogramming => berapa banyak proses yang dapat aktif (berada di memori)
Short-term scheduler dijalankan sangat sering (milliseconds) => giliran pemakaian CPU dari prosesproses yang siap n
Pada saat terjadi penggantian alokasi CPU dari satu proses ke proses lain: • Menyimpan informasi internal CPU dari proses yang akan digantikan (SAVE). • Meload kembali informasi internal CPU dari proses yang akan menggantikan.
n
Dikenal dengan istilah: context switch proses. OS Processes JM -2000/v1.1/13
Context Switch n
n n
Jika Scheduler switch ke proses lain, maka sistim harus menyimpan “informasi” proses sekarang (supaya dapat dijalankan kembali) Load “informasi” dari proses baru yang berada di PCB Context-switch time is overhead; the system does no useful work while switching. n n
Time dependent on hardware support. OS modern mencari solusi untuk mengurangi overhead waktu switch proses OS Processes JM -2000/v1.1/14
7
CPU Context Switch
OS Processes JM -2000/v1.1/15
Process Creation n
Umumnya proses dapat membuat proses baru (child process). n n
n
Child process dapat membuat proses baru. Terbentuk “tree” dari proses.
Pilihan hubungan antara parent dan child proses: n
Resource sharing • Parent and children share all resources. • Children share subset of parent’s resources. • Parent and child share no resources.
n
Execution • Parent and children execute concurrently. • Parent waits until children terminate. OS Processes JM -2000/v1.1/16
8
Process Creation (Cont.) n
UNIX dan MINIX: n n
fork system call creates new process, execve (EXEC) : • menjalankan program spesifik yang lain • nama program tersebut menjadi parameter dari system call EXEC (sering di load sesudah menjalankan fork).
n
Tahapan pembuatan proses baru: • Periksa apakah masih terdapat ruang pada PCB. • Mencoba mengalokasikan memori untuk proses baru. • Mengisi informasi untuk proses baru: nama proses, id, copy data dari parent dll. • Mencantumkan informasi proses ke kernel OS. OS Processes JM -2000/v1.1/17
UNIX: tree process
OS Processes JM -2000/v1.1/18
9
Process Termination n
Proses dapat berakhir: n n n
Eksekusi instruksi terakhir (atau keluar: exit system call). OS yang akan melakukan dealokasi (memory, file resources). UNIX (MINIX): • Output signal dari child ke parent • Jika parent tidak menunggu (via wait system call), proses akan terminate tapi belum di release dari PCB (status: ZOMBIE). • Proses dengan status ZOMBIE (parent telah terminate), akan menjadi child dari proses “init”.
n
Parent dapat menghentikan eksekusi proses child secara paksa. n
Parent dapat mengirim signal (abort, kill system call).
OS Processes JM -2000/v1.1/19
Threads n
Suatu thread (or lightweight process) adalah unit dasar untuk menggunakan resources CPU: n n n
n
Umumnya thread dapat melakukan sharing dengan thread lain informasi/data lain yang diperlukan: n n n
n
program counter register set stack space
code section data section operating-system resources: memory dan file
Kumpulan thread-thread membentuk satu task. n
A traditional or heavyweight process is equal to a task with one thread OS Processes JM -2000/v1.1/20
10
Thread (2) n
Multiple processes n
n n
n
Proses beroperasi secara independent satu sama lain => melindungi proses Setiap proses mempunyai sendiri “address space” Berguna jika “job” dari proses tsb tidak saling berhubungan
Multiple threads n n
n n
n
Berada pada lingkup dari satu task (misalkan satu program). Beroperasi seperti proses (status, antrian untuk mendapatkan jatah CPU). Hanya ada satu thread yang dapat aktif pada satu saat. Setiap thread mempunyai sendiri informasi internal CPU untuk thread tersebut. Memori dan file dari task dapat diakses (share) oleh sekumpulan thread. OS Processes JM -2000/v1.1/21
Threads (3) n
Multi-threading: n n n
n
Jika satu thread sedang “block/wait”, thread lain dari task tsb dapat dijalankan, Overhead sangat kecil: tidak ada perubahan context memory management (shared address space) Representasi aplikasi => kerja sama thread untuk meningkatkan kinerja dan response sistim.
Fasilitas: n n n
Pengolahan sekwensial => blok pada system call Pengolahan dapat dialihkan ke alur yang lain (parallel) Contoh: Server dapat menjalankan beberapa thread sekaligus supaya dapat melayani lebih dari satu client. OS Processes JM -2000/v1.1/22
11
Multiple Threads within a Task
OS Processes JM -2000/v1.1/23
Solaris 2: example n
Solaris 2 : versi UNIX mendukung threads di kernel, user levels dan LWP (light weight process). n n
n
LWP – light weight process: interface antara user-level threads and kernel-level threads. LWP melakukan penggabungan user level-thread menjadi kernel level threads
Resource needs of thread types: n
Kernel thread: • Thread sebenarnya yang mendapat jatah CPU, jika kernel thread block, maka LWP dan user level thread akan block juga – relatively fast.
n
User-level thread: hanya memerlukan stack & program counter; no kernel involvement means fast switching.
n
LWP: PCB with register data, accounting dan informasi alokasi memory; switching between LWPs is relatively slow.
• User level akan didukung oleh LWP untuk menggunakan kernel
• Kernel hanya melihat LWPs OS Processes JM -2000/v1.1/24
12
Solaris 2: Threads
OS Processes JM -2000/v1.1/25
13