Process

Process VS Program
  1. Program adalah instruksi yang berisikan berbagai hal yang harus dilakukan.
  2. Process adalah eksekusi dari program dalam menjalankan tugas – tugasnya.

Karakteristik Process
  1. Identifier, nerupakan suatu Id yang unik untuk membedakan suatu proses dengan proses lainnya. Identifier juga digunakan untuk dapat memanggil program atau mendestroy suatu proses.
  2. State, merupakan status dari suatu proses apakah sedang running, done atau pun sudah destroy.
  3. Priority, tingkat kepentingan antara proses adalah relative dan dapat kita setting.
  4. Program Counter, menyimpan alamat dari instruksi yang akan dijalankan beriutnya.
  5. Memory Pointers, sebagai penunjuk dimana proses suatu program bekerja karena pada memory data akan disimpan scara acak.
  6. Context data, adalah data yang ada pada IR dan sedang dalam proses eksekusi.
  7. I/O informasi status,adalah berbagai macam proses input output dari device.
  8. Accounting information, berhubungan dengan cost dimana OS harus bisa menampilkan waktu penggunaan, jumlah akun yang menggunakan computer, serta tegangan listrik untuk dapat memperkirakan biaya.

Proses Pembuatan
  1. Menggunakan Id yang unik untuk setiap proses
  2. Menyediakan ruang memory untuk proses
  3. Melakukan insialisasi terhadap control block
  4. Menyiapkan link list yang digunakan sebagai cara proses kerja baik secara queue atau stack
  5. Memperluas struktur data yang sudah ada.

Penghentian Proses
  1. Penyelesaian proses secara normal dan berhenti
  2. Proses berjalan melewati waktu yang telah ditetapkan oleh OS
  3. Tidak tersedianya memory untuk menjalankan proses lagi
  4. Proses yang berkerja bisa saja terlalu besar sehingga kekurangan memory dan terhenti
  5. Protection error, akan menghentikan proses jika OS mendeteksi adanya ketidakwajaran untuk menghidari adanya masalah lain.
  6. Arithmetic error, proses akan dihentikan jika ada input perhitungan yang tidak seharusnya.
  7. Time oberrun, saat suatu proses menunggu proses lain selesai tetapi batas waktu tunggu sudah diatur dan jika melewati batas akan dihentikan.
  8. Kegagalan proses input dan output juga dapat berakibat pada terhentinya process
  9. Invalid instruction, biasa terjadi pada saat akan mengeksekusi data.
  10. Penyalahgunaan data yang tidak tepat pada suatu proses juga dapat berakibat pada terhentinya proses.
  11. Deadlock, terjadi akibat adanya suatu program yang digunakan atau diakses secara bersamaan sehingga OS harus mematikan program yang prioritasnya lebih kecil.
  12. Proses parent berhenti maka proses child juga akan berhenti
  13. Permintaan dari proses parent untuk berhenti tanpa mematikan child proses.

Proses Table
Tempat dimana proses berada, yang dibutuhkan adalah ID dari proses, status proses dan terletak di memori.

Proses Location
  1. Tempat dimana semua proses yang ada pada program akan dieksekusi. Berisikan data dimana letak dari global dan local variable, constants yang kita define sendiri dan proses stack.
  2. Proses control block, berisi kumpulan atribut.
  3. Proses image, berisi kumpulan program, data, stack dan atribut.

Proses Control Block
  1. Proses identification menggunakan ID. Proses yang bekerja masing – masing mempunyai ID. Menggunakan ID kita dapat memanggil suatu proses atau pun mematikannya.
  2. Proses state information adalah status dari proses apakah sedang running, stopped atau sudah di close. Pada state information juga terdapat proses stack pointer.
  3. Proses control information berisikan proses state, priority dari suatu proses, scheduling informasi dari proses yang bekerja dan event yang berisikan proses yang akan segera dieksekusi.
2015-10-01_201146

Lima Tahapan dalam model proses.
  1. Proses yang sudah ready akan dikirim untuk dieksekusi jika telah selesai maka proses selesai.
  2. Dalam proses running jika waktu proses melebihi batas waktu (time out) maka proses akan diulang kembali.
  3. Pada proses running juga dapat terjadi kegagalan yang harus di block, dan jika sudah di block proses akan dimulai ulang kembali.
Proses suspend
Dikarenakan
  1. Clock interrupt
    1. Proses telah bekerja dari waktu yang tersedia sehingga harus di tunda
  2. I/O interrupt
  3. Memory fault
  4. Trap
    1. error occurred
    2. bias juga dikarenakan proses masuk dalam status exit
  5. Supervisor call
    1. Pemanggilan yang lebih penting oleh system.

Proses melakukan suspend
  1. Memindahkan proses ke disk yang memory nya sedang free dengan kapasitas yang lebih
  2. Pada status block akan menjadi suspend jika sudah di swap ke disk.
  3. Blocked menjadi suspend dan Ready menjadi suspend

Mode eksekusi
  1. User Mode, memiliki kebebasan yang sedikit dan hanya bisa mengeksekusi program secara normal.
  2. System mode, control mode, atau kernel mode, memiliki akses yang lebih banyak dan merupakan kernel dari suatu OS.

Process Management System Call – fork()
  1. Membuat proses baru (child)
  2. Parent dan child dapat dieksekusi secara bersamaan
  3. Karena itu akan menciptakan proses hierarchy
  4. Proses dapat memilih untuk menunggu anaknya yang akan di hentikan.
  5. Jika fork me- return < 0 maka proses gagal, jika = 0 maka fork menghasilkan child, jika > 0 maka menghasilkan parent.
  6. Parent dan child dapat dieksekusi secara bersamaan walaupun ada pada area yang berbeda.
  7. Fork() jika dipanggil satu kali dapat me – return dua kali, yaitu return value 0 yang berarti child dan return value parent yang ada pada PID child.
  8. Fork() biasanya diikuti dengan exec().

System()
  1. Dapat Memanggil program yang sudah dipanggil.
  2. Membuat subproses yang running pada bourne shell
  3. Shell biasanya terdapat pada GNU/ Linus system




Contoh dari system()
#include <stdlib.h>
int main ( )
{
                int return_value ;
                return_value = system ( "ls -l /" );
                 return_value;                     
}

Exec()
  1. Dapat memanggil suatu proses yang masih dalam satu family dan sedang berjalan dimana yang baru dipanggil akan menggantikan yang sebelumnya sedang dieksekusi. Proses ID juga tidak berubah.

Fork() dan exec()
2015-10-01_201205
Contoh dari system call yang lain:
  1. exit()
    1. Mematikan secara normal
    2. Tidak mem – block parent yang sedang waiting
  2. wait()
    1. Digunakan oleh parent
    2. Untuk menunggu proses child selesai di eksekusi
  3. getpid()
    1. Returns identifier dari proses yang dipanggil
  4. getppid()
    1. Returns identifier dari parent
Previous
Next Post »