Jumat, 15 Maret 2019

3.3 Silkus-Hidup Proses (Task)

Pada sistem sekuensial, saat sebuah proses mulai dijalankan maka proses tersebut akan menguasai seluruh sumberdaya komputer dan berjalan sampai selesai. Tidak demikian halnya pada sistem multitasking, di mana proses akan mengalami sejumlah kondisi atau status selama siklus hidupnya. Kondisi ini terjadi karena secara berkala suatu proses harus menghentikan eksekusinya dan membiarkan sistem operasi menjadwal proses lainnya untuk menggunakan prosesor.

Terjadinya switching dari suatu proses ke proses lainnya berlangsung secara terus menerus selama komputer hidup. Secara umum siklus-hidup suatu proses serta status yang dialaminya diperlihatkan pada Gambar 3.3.

(new, ready, running, waiting, terminated, admitted interrupt,  exit, I/O or event completion, Scheduler dispatch, I/O or event wait, )

Gambar 3.3 Siklus-hidup Proses dan Statusnya

3.3.1 NEW


Proses yang berstatus new, masih dalam tahap inisiasi oleh prosedur atau rutin sistem operasi. Tahap inisiasi ini meliputi alokasi memori utama untuk proses, pengisian tabel proses, pembuatan struktur data kendali untuk menyimpan informasi, dan status proses. Proses dalam status ini belum siap untuk dieksekusi.

Sistem operasi menciptakan proses atas permintaan dari program aplikasi ataupun pengguna. Sejumlah kondisi yang memicu penciptaan proses baru, antara lain:

  1. Pengguna melakukan logon ke sistem operasi sehingga sistem operasi akan menciptakan proses antarmuka pengguna (shell).
  2. Permintaan eksekusi program oleh pengguna lewat aplikasi antar muka (shell).
  3. Suatu aplikasi menciptakan proses anak.
  4. Penciptaan proses baru sebagai bagian dari eksekusi batch.


3.3.2 READY


Proses yang telah berhasil diinisiasi akan ditempatkan (admit) ke dalam antrian penjadwalan prosesor dengan cara menyisipkan rekaman baru ke dalam antrian, yang berisi referensi atau pointer ke struktur data kendali proses. Antrian penjadwalan prosesor ini disebut juga antrian ready. Proses yang telah berhasil disisipkan ke dalam antrian penjadwalan akan diubah statusnya menjadi ready. Status ready menandakan suatu proses siap berkompetisi untuk mendapatkan alokasi waktu prosesor. Jadi proses-proses yang baru tercipta, tidak dapat langsung dieksekusi tetapi harus menunggu gilirannya.


Secara berkala atau dalam kondisi tertentu, sistem operasi akan melaku- kan penjadwalan prosesor, yaitu menghentikan eksekusi proses yang lagi berjalan, memilih salah satu dari proses-proses yang berada dalam antrian ready, dan mengeksekusinya. Rutin sistem operasi yang bertugas untuk melakukan pemilihan ini disebut scheduler.


3.3.3 RUNNING


Jika kemudian sebuah proses dalam antrian ready terpilih oleh scheduler untuk dijalankan maka proses yang terpilih akan mulai dieksekusi dan berubah statusnya menjadi running. Proses yang berstatus running me- nguasai prosesor sepenuhnya.


Proses yang berstatus running memiliki tiga kemungkinan peralihan ke status lainnya. Pertama jika proses sudah menyelesaikan aktivitasnya ma- ka proses akan berubah statusnya menjadi terminated. Peralihan ke status terminated dapat pula disebabkan terjadinya kesalahan yang tidak dapat dipulihkan, seperti kesalahan memori.


Kedua, jika jatah waktu (time-slice) yang dialokasikan untuk eksekusi proses sudah habis maka proses akan dialihkan statusnya menjadi ready. Pada sistem operasi multitasking umumnya setiap proses diberi jatah waktu eksekusi yang terbatas agar proses yang berdurasi panjang tidak menghambat eksekusi proses-proses lainnya. Pada saat jatah waktunya habis, pewaktu (timer) akan memberikan sinyal interupsi kepada pro- sesor. Akibatnya eksekusi proses akan terhenti dan dialihkan ke rutin sistem operasi yang selanjutnya akan menjalankan scheduler. Proses yang dihentikan akan diubah statusnya menjadi ready dan proses yang terseleksi oleh scheduler akan menjadi running.


Ketiga, proses running dapat beralih ke status blocked. Hal yang memicu peralihan ke blocked akan dijelaskan pada bagian berikut.


3.3.4 BLOCKED (WAITING)


Proses berstatus running beralih ke status blocked (waiting) karena membutuhkan pembacaan data dari peranti I/O. Sebagai contoh, suatu proses membutuhkan data berkas dari disk untuk melanjutkan pengolah- an datanya. Untuk memaksimalkan penggunaan prosesor maka proses yang sedang menunggu ini akan dialihkan statusnya menjadi blocked dan sistem operasi akan menjalankan scheduler untuk memilih proses lain untuk dieksekusi. Contoh lainnya adalah proses yang sedang menunggu event tertentu seperti penekanan keyboard ataupun pergerakan mouse sebagai data input untuk melanjutkan eksekusi. Kenyataannya keba-


nyakan aplikasi yang diakses langsung oleh pengguna menghabiskan sebagian besar siklus hidupnya dalam status blocked karena menunggu event atau aksi dari pengguna yang relatif lambat dibandingkan dengan kecepatan komputer. Proses-proses yang beralih ke status blocked akan disisipkan pada antrian penjadwalan peranti I/O atau event.


Jika event yang ditunggu sudah terjadi atau operasi I/O yang ditunggu sudah selesai, yang ditandai dengan terjadinya interupsi I/O sehingga eksekusi beralih ke rutin sistem operasi, maka rutin sistem operasi akan memindahkan proses yang berstatus blocked tersebut kembali ke antrian ready. Perhatikan, proses yang berstatus blocked tidak dapat langsung dieksekusi atau beralih ke running, tetapi harus dialihkan ke status ready terlebih dulu dan menunggu dipilih oleh scheduler agar dapat beralih ke running.


3.3.5 EXIT ATAU TERMINATED


Proses yang berubah statusnya menjadi exit atau terminated berarti proses tersebut telah dihentikan eksekusinya, baik secara normal (proses telah selesai) maupun tidak (misalnya terjadi kesalahan sistem yang tidak tertangani). Jika suatu proses telah selesai maka ruang memori yang ditempatinya akan dibersihkan (dealokasi) oleh rutin sistem operasi. Sejumlah hal yang dapat menyebabkan suatu proses selesai eksekusinya antara lain:

  1. Proses telah selesai secara normal
  2. Batas waktu total telah terlewati
  3. Kekurangan ruang memori
  4. Pelanggaran batas memori
  5. Pelanggaran proteksi berkas atau sumber daya lainnya
  6. Kesalahan aritmatika
  7. Waktu tunggu (operasi I/O) melebih batas yang ditetapkan
  8. Terjadi kegagalan I/O
  9. Instruksi yang tidak benar ataupun tidak valid.
  10. Terjadi usaha pemakaian instruksi yang tidak diijinkan
  11. Salah memakai data, seperti tipe data salah
  12. Campur tangan sistem operasi atau operator
  13. Penghentian proses induk
  14. Atas permintaan proses induk ataupun proses lainnya.

Model siklus hidup proses di atas sering disebut dengan model proses 3 status, karena umumnya status new dan exit tidak dianggap sebagai suatu status permanen karena bersifat sementara. Beberapa sistem operasi memperluas model 3 status menjadi model proses 5 status seperti pada Gambar 3.4.


Pada modus proses 3 status, proses yang sedang berada dalam status blocked mungkin tidak memiliki kejelasan mengenai kapan sumber daya atau event yang ditunggunya menjadi tersedia. Proses tersebut mungkin saja akan terus berstatus blocked untuk jangka waktu yang cukup lama. Hal ini sangat tidak menguntungkan dari segi penggunaan ruang memori utama, karena ruang memori utama yang ditempati oleh proses yang blocked tidak dapat dialokasi ke proses lainnya.


Itu sebabnya pada model proses 5 status, ketika suatu proses memasuki kondisi yang demikian, proses tersebut akan dialihkan statusnya menjadi Suspended Blocked agar sumber daya yang ada, misalkan memori utama, dapat dialokasikan untuk proses yang lain. Penundaan proses secara demikian dapat dilakukan oleh proses itu sendiri atau oleh proses lain. Pada sistem uniprosesor, proses yang running dapat menunda (suspend) eksekusi prosesnya sendiri. Sementara pada sistem multiprosesor, proses yang running dapat ditunda oleh proses yang berjalan pada prosesor lainnya.


Penundaan eksekusi proses yang berstatus blocked yang dilakukan oleh sistem ataupun proses lain akan menyebabkan status proses beralih menjadi Suspended Blocked. Proses yang berada dalam status Suspended- Blocked akan bertransisi menjadi SuspendedReady ketika event yang ditunggu terjadi atau operasi I/O yang ditunggu telah selesai. Proses- proses yang sedang berada dalam status Suspended Blocked dan SuspendedReady dapat dilanjutkan kembali (resume) setelah permasalah- an selesai sehingga kondisinya menjadi normal kembali.


(Submit, Timeout, State-state aksit, Ready, Dispatch, Running, Completion, Event occur, Event wait, Blocked, Resume, Suspend, Resume, VO completion, atau event completion, Suspend, Scate-etnie disuspend, SuspendedReady, SuspendedBlocked)

Gambar 3.4 Model Proses 5 status


1 komentar: