Session 1 : Process (PartI)
Program = merupakan sekumpulan instruksi untuk melakukan pekerjaan
Process = merupakan tahapan eksekusi dari program
Process Characteristic
-Identifier
Memberikan label untuk tiap-tiap proses agar dapat membedakannya dari proses yang lain
-State
Keadaan dari suatu proses
-Priority
Tingkat prioritas suatu proses
-Program Counter
Alamat dari instruksi selanjutnya pada suatu program untuk dieksekusi
-Memory Pointers
Merupakan pointer yang menunjuk ke source code suatu program serta data yang berkaitan dengan proses program tersebut
-Context Data
Data yang tersedia pada registers di processor ketika proses dijalankan
-I/O status information
Informasi yang berisi tentang status dari I/O itu sendiri yang berkaitan dengan proses
-Accounting Information
Informasi yang berisi tentang processor time, clock time, dll
Process Creation
-Memberikan label yang unik untuk proses yang dituju
-Mengalokasikan memory/space untuk proses
-Melakukan inisialisasi PCB(Process Control Block)
-Mempersiapkan linkages/link yang cocok
-Membuat dari perluasan struktur data yang lain
Process Termination
-Normal completion
Proses berakhir dengan normal
-Time limit exceeded
Proses melewati batas waktu yang telah ditentukan
-Memory unavailable
Memory tidak tersedia/tidak cukup untuk proses
-Bounds violation
Melewati batas yang telah ditentukan
-Protection error
Error yang terjadi karena Hak akses proses yang dibatasi
-Arithmetic error
Error dalam kalkulasi/perhitungan
-Time overrun
-I/O failure
Error yang terjadi pada I/O components
-Invalid Instruction
Melakukan instruksi yang tidak sesuai
-Privileged Instruction
Instruksi yang memerlukan hak istimewa seperti admin
-Data misuse
Data yang disalahgunakan
-Operating System intervention
Terjadi ketika deadlock
-Parent terminates so child processes terminate
Ketika parent dihentikan,maka proses child juga akan berhenti
-Parent request
Permintaan dari parent
Process Table
-Merupakan letak dimana suatu proses disimpan
-Terdiri dari Process ID,Process State serta lokasi pada memory
Process Location
-Merupakan proses yang terdiri dari sekumpulan program yang akan dijalankan
-Terdiri dari PCB(Process Control Block) yang berisi kumpulan-kumpulan atribut dan Process Image yang berisi kumpulan-kumpulan dari program,data,stack dan atribut
PCB(Process Control Block)
Berikut ini merupakan tahapan-tahapan proses dalam PCB :
1.Process Identification
-Merupakan tahapan memberikan label/identitas untuk suatu proses
-Terdiri dari Identifiers
2.Processor State Information
-Terdiri dari User-visible registers, Control and Status registers dan Stack Pointers
3.Process Control Information
-Terdiri dari Scheduling and state information
Five State Process Model
Process Switch
Berikut ini merupakan beberapa penyebab utama terjadinya Process Switch/Pengalihan Proses :
-Clock interrupt
-I/O interrupt
-Memory Fault
-Trap
-Supervisor Call
Process Suspension
Berikut ini merupakan beberapa penyebab utama terjadinya Process Suspension/Penundaan Proses :
-Swapping
-Other OS reason
-Interactive user request
-Timing
-Parent process request
Execution Mode
1.User Mode
-Terdapat sedikit hak istimewa/privileged
-Sebagian besar program dijalankan melalui mode ini
2.System Mode, control mode or kernel mode
-Terdapat banyak hak istimewa/privileged
-Merupakan kernel dari OS
Session 2 : Process (PartII)
Process Management System Call – fork()
Cara memanggil fork() :
1.Membuat proses baru(didefinisikan sebagai child)
2.Parent dan child dijalankan secara bersamaan
3.Setiap proses dapat men-fork() proses lain hingga membuat suatu hirarki proses
4.Proses dapat memilih untuk menunggu child untuk dihentikan
Beberapa hal yang harus diperhatikan dalam fork() :
1.returns -1 jika gagal
2.returns 0 untuk child
3.mengembalikan bilangan positif, child identifier(child PID) yang berada di parent
4.Ketika fork() dijalankan,fork akan membuat copy yang identik dari address space
5.Kedua proses dapat berjalan setelah itu
6.Oleh karena itu parent dan child dapat berjalan secara terpisah/bebas
fork() parent dan child process
system()
-Menjalankan perintah dari dalam sebuah program
-perintah biasanya direprensentasikan dalam bentuk shell
-Membuat subproses untuk menjalankan standard Bourne shell
-Menggunakan /bin/sh
-Pada GNU/LINUX system, shell menunjuk pada bash
system() process
#include
int main ( )
{
int return_value ;
return_value = system ( “ls -l /” );
return return_value;
}
exec()
-Memanggil salah satu kelompok/family exec() akan langsung menghentikan program yang sedang berjalan dan memulai eksekusi program baru yang telah diidentifikasi di parameter exec dalam konteks dari existing process
-Process ID tidak berubah
exec() family system calls
-int execl( const char *path, const char *arg, …);
-int execv( const char *path, char *const argv[]);
-int execle( const char *path, const char *arg , …, char * const envp[]);
-int execlp( const char *file, const char *arg, …);
-int execvp( const char *file, char *const argv[]);
fork() dan exec() process
Other System Calls
1.exit()
-Menghentikan proses secara normal
-melakukan unblock parents yang telah menunggu
2.wait()
-digunakan oleh parent
-parent menunggu child untuk membereskan eksekusi
3.getpid()
-Mengembalikan identifier dari proses pemanggilan
4.getppid()
-Mengembalikan identifier dari parent