PROCESS
Process Vs Program
- Program : mengandung instruksi untuk melakukan suatu tugas.
- Process : merupakan eksekusi dari suatu program.
The Process Model
Process Creation
Event yang menyebabkan proses creation :
- Inisialisasi sistem.
- Pelaksanaan pemanggilan sistem proses creation dengan proses yang berjalan. (fork ())
- Sebuah permintaan pengguna untuk membuat proses baru.
- Inisiasi pekerjaan batch.
Process
- Disebut juga dengan sebuah tugas atau pelaksanaan program secara individu, dan dapat ditelusiri daftar urutan instruksi yang mengeksekusinya.
5 States Process Model
Suspended Process
- Prosesor lebih cepat daripada I / O sehingga semua proses dapat menunggu I / O
- Swap proses ke disk untuk membebaskan lebih banyak memory
- State yang diblokir menjadi suspend state ketika bertukar ke disk
- Dua state baru : Blocked-suspend, Ready-suspend
Akibat dari Suspended Process
- Swapping
- Other OS reason
- Interactive user request
- Timing
- Parent Process Request
Process Table
Merupakan lokasi dari suatu proses, atribut yang dibutuhkan untuk managementnya adalah :
- Process ID
- Process state
- Location in memory
Process Location
- Proses mencakup sekumpulan program yang akan dieksekusi :
- Lokasi data untuk variabel lokal dan global
- Setiap konstanta yang didefinisikan
- Stack
- Process Control Block
- Merupakan sekumpulan atribut yang ada pada table process.
- Process Image
- Sekumpulan program, data, stack dan atribut.
Process Control Block
- Mengidentifikasikan proses
- Informasi state processor
- Informasi proses control
Process Termination
Event yang dapat menyebabkan proses termination :
- Normal Exit (voluntary)
- Error Exit (voluntary)
- Fatal Error (involuntary)
- Di kill oleh process lain (invouluntary)
Alasan untuk Process Termination
- Normal completion
- Batas waktu terlampaui
- Memori tidak tersedia
- Pelanggaran Bounds
- Kesalahan perlindunga : misalnya menulis untuk read-only file
- Kesalahan aritmatika
- Waktu overrun : proses menunggu lebih lama dari maksimum yang ditentukan untuk sebuah event.
- I/O failure
- Instruksi tidak valid
- Terjadi ketika mencoba untuk mengeksekusi data
- Privileged instruction
- Penyalahgunaan Data
- Intervensi sistem operasi
- Seperti ketika deadlock terjadi
- Parent di terminate sehingga proses child mengakhiri permintaan parentnya.
Alasan Untuk Process Switch
- Clock interupt
- I/O interrupt
- Memory fault
- Trap
- Supervisor Call
Modeling Multiprogramming
Utility CPU sebagai fungsi dari jumlah proses dalam memori.
Process Creation
- System()
- Fork()
- Exit()
System()
•Example
#include <stdlib.h>
int main ( )
{
int return_value ;
return_value = system ( "ls -l /" );
return return_value;
}
#include <stdlib.h>
int main ( )
{
int return_value ;
return_value = system ( "ls -l /" );
return return_value;
}
Fork()
- Ketika program memanggil fork(), proses akan diduplikat yang disebut proses child.
- Proses parent terus melaksanakan program dari titik yang disebut fork.
- Proses child juga, mengeksekusi program yang sama dari tempat yang sama pid_t frok (void)
Exit()
- execvp dan execlp (dengan p)
menerima nama program dan mencari program dengan nama di jalur eksekusi saat ini; fungsiyang tidak mengandung p harus diberi path lengkap dari program yang akan dieksekusi
- execv, execvp, dan execve (dengan v)
menerima daftar argumen untuk program baru sebagai array NULL-dihentikan pointer mengerjakan sesuatu • execl, execlp, dan execle (dengan l)
menerima daftar argumen menggunakan mekanisme varargs bahasa C
- execve dan execle (dengan e)
menerima argumen tambahan, dan beberapa array environtment variable. Argumen harus array NULL-diterminate dari pointer ke string karakter. Setiap karakter string harus dari bentuk "VARIABLE = nilai".
THREADS
Threads
- Merupakan state eksekusi yang berjalan(running, ready, dll)
- Thread kontext tersimpan ketika tidak berjalan
- Per-thread memiliki beberapa penyimpanan statis untuk variable lokal
- Akses ke memory dan resources dari proses tersebut
Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama :
- Proses Lightweight : karena thread memiliki beberapa properti dari proses
- Multithreading : memungkinkan beberapa thread dalam proses yang sama
Property Proses :
- LWP identifier
- Priority LWP
- Signal mask
- Register
- Stack
Thread Model

Kolom pertama berisi beberapa item yang dishare oleh semua thread dalam proses. Yang kedua berisi beberapa item pribadi untuk setiap thread.

Kolom pertama berisi beberapa item yang dishare oleh semua thread dalam proses. Yang kedua berisi beberapa item pribadi untuk setiap thread.
Setiap thread masing-masing memiliki stack
Single thread : terdiri dari satu thread
Multiple thread : terdiri dari banyak thread
Keuntungan menggunakan thread
- Waktu yang lebih efisien untuk membuat thread baru daripada membeuat suatu proses
- Waktu yang dibutuhkan untuk terminate thread lebih sedikit daripada proses
- Waktu yang dibutuhkan lebih sedikit untuk beralih antara dua thread dalam proses yang sama
- Sejak thread dalam memori yang sama berbagi proses dan file, mereka dapat berkomunikasi satu sama lain tanpa melibatkan kernel
Hubungan antara Thread dan Proses
Tidak ada komentar:
Posting Komentar