PROCESS
Proses adalah keadaan ketika sebuah program sedang di
eksekusi. Saat komputer berjalan, terdapat banyak proses yang berjalan secara
bersamaan. Sebuah proses dibuat melalui system call create-process yang
membentuk proses turunan ( child process) yang dilakukan oleh proses induk (
parent process). Proses turunan tersebut juga mampu membuat proses baru
sehingga semua proses ini pada akhirnya membentuk pohon proses.
KARAKTERISTIK
PROSES
•
Identifier: identifier
unik yang berguna untuk membedakan proses satu dan yang lainnya.
•
State: proses yang
sedang mengeksekusi berada di state yang berjalan.
•
Priority: tingkat
prioritas relative terhadap proses lainya.
•
Program counter: alamat dari instruksi berikutnya ada di program yang dieksekusi.
•
Memory pointers: termasuk pointer ke program code dan data yang berhubungan dengan
proses ini dan semua blok memoriyang dibagi dengan proses lain
•
Context data: data yang
ada di registry di dalam proses saat eksekusi.
•
I/O status information: outstanding I/O
requests, I/O devices (e.g., disk drives) ditugaskan untuk
proses ini, listdari file yang digunakan oleh proses.
•
Accounting information: jumlah processor time dan clock time yang digunakan, time limits,
account numbers, dan lainya.
TERBENTUKNYA PROSES
·
Menentukan
identifier yang unik
·
Mengalokasikan
space untuk proses
·
Inisialisasi
proses control block
·
Mengatur
link yang tepat
·
Membuat
perluasan strktur data lainya
YANG DAPAT MENGHENTIKAN PROSES
·
Penghentian
yang normal
·
Melampau
batas waktu
·
Memori
tidak tersedia
·
Bounds
violation
·
Protection
error (ex: write pada file read only)
·
Arithmetic
error
·
Time
overrun (proses menunggu terlalu lama)
·
I/O
failure
·
Instruksi
yang salah (terjadi ketika mengeksekusi data)
·
Privileged
instruction
·
Penyalahgunaan
data
·
Intervensi
os (seperti ketika terjadi deadlock)
·
Parent
terhenti sehingga child juga
·
Permintaan
parent
PROCESS TABLE
·
Diimana
lokasi sebuah proses
·
Atribut
yang penting untuk managemenproses:
o
Proses
ID
o
Proses
State
o
Lokasi
di memori
PROCESS LOCATION
·
Proses
termasuk program yang akan dieksekusi
o
Lokasi
data untuk local dan global variable
o
Konstanta
didefinisikan
o
Stack
·
Process
control block
o
Kumpulan
atribut
·
Process
image
o
Kumpulan
program, data, stack dan atribut
FIVE STATE PROCESS MODEL
ALASAN PROSES SWITCH
·
Clock
interrupt
o
Proses
yang dieksekusi mencapai batas maksimum pada suatu waktu
·
I/O
interrupt
·
Kesalahan
memori
o
Alamat
memori ada di virtual memori jadi harus dibawa ke main memori
·
Trap
o
Terdapat
error
o
Menyebabkan
proses memasuki state “exit”
·
Supervisor
call
o
Seperti
file yang terbuka
SUSPENDED PROOCESS
·
Proses
lebih cepat daripada I/) sehingga semua proses harus menunggu I/O.
·
Menukar
proses ke disk untuk membebaskan memori
·
Blocked
state menjadi suspend state ketika swap ke disk
·
Dua
state baru
o
Blocked,
suspend
o
Ready,
suspend
PENYEBAB PROCESS
SUSPENSION
MODE EKSEKUSI
·
User
mode
o
Less
privileged mode
o
User
program biasanya di eksekusi di mode ini
·
System
mode, control mode, atau kernel mode
o
More
privileged mode
o
Kernel
of the operating system
SYSTEM CALL
Layanan langsung sistem operasi ke pemrograman, disebut
dengan system call. System call adalah tata cara pemanggilan di program
aplikasi untuk memperoleh layanan yang disediakan oleh sistem operasi. Contoh yang paling baik untuk melihat bagaimana
system call bekerja untuk manajemen proses adalah Fork.
FORK
Fork
adalah satu satunya cara untuk membuat sebuah proses baru pada sistem Unix.
Fork membuat duplikasi yang mirip dengan proses aslinya. Setelah perintah Fork,
child akan mengeksekusi kode yang berbeda dengan parentnya.
• Ketika fork()di eksekusi ,ia membuat Salinan
identic dari alamat
• Kedua proses mulai dieksekusi
• Parent dan child berjalan secara independent
SYSTEM
·
Mengeksekusi
perintah dari dalam program
·
Sebanyak
jika perintah itu telah diketik ke shell
·
Membuat
subproses menjalankan standard bourne shell
·
(/
bin / sh) dan tangan perintah ke shell bahwa untuk
·
eksekusi;
tunduk pada fitur, keterbatasan dan keamanan
·
shell;
pada kebanyakan sistem GNU / Linux, menunjuk untuk bash
EXEC
·
Memanggil
salah satu exec() akan menghentikan program yang sedang berlangsung dan mulai
mengeksekusi yang baru:
o
int
execl( const char *path, const char *arg, ...);
o
int
execv( const char *path, char *const argv[]);
o
int execle( const char *path, const
char *arg , ..., char * const envp[]);
o
int
execlp( const char *file, const char *arg, ...);
o
int
execvp( const char *file, char *const argv[]);
·
Proses
ID tidak berubah
OTHER SYSTEM CALL
·
Exit()
o
Menghntikan
proses secara normal
o
Unblock
waiting parent
·
Wait()
o
Digunakan
oleh parent
o
Ditunggu
oleh child untuk menyelesaikan eksekusi
·
Getpid()
o
Mengembalikan
identifier calling process
·
Getppid()
o
Mengembalikan
identifier parent
Tidak ada komentar:
Posting Komentar