Jumat, 15 Maret 2019

4.1 Pengelolaan Siklus Hidup Proses (Task)

    Proses (Task) merupakan konsep inti dalam sistem operasi. Sistem operasi bertanggung jawab atas pengelolaan siklus hidup proses-proses yang berjalan di atasnya. Pengelolaan siklus hidup proses meliputi penciptaan proses, penghentian proses, serta pengalihan eksekusi proses.


4.1.1 PENCIPTAAN PROSES

    Terdapat sejumlah kondisi dan penyebab yang memicu penciptaan proses. Penciptaan proses dapat dipicu oleh permintaan pengguna untuk menjalankan suatu aplikasi melalui aplikasi shell, baik yang berbasis antarmuka teks maupun antarmuka grafis. Proses dapat juga diciptakan oleh suatu proses lain yang sedang berjalan, seperti aplikasi shell yang menciptakan proses aplikasi lain yang diminta pengguna. Selain itu, proses dapat pula diciptakan dalam suatu eksekusi batch seperti eksekusi shell script, misalnya eksekusi berkas autoexec.bat di sistem operasi keluarga Windows ataupun eksekusi berkas script berekstensi bash di sistem operasi Linux.

    Selama penciptaan, ada sejumlah tahap yang dilalui, yaitu:

1. Sistem operasi akan membangkitkan suatu nomor identitas atau ID unik untuk proses yang diciptakan.

2. Setelah itu sistem operasi akan membuat suatu rekaman data dengan nomor ID tersebut dan menyisipkan rekaman tersebut pada suatu struktur data di memori utama yang disebut dengan tabel proses (process table).

3. Setelah itu, sisem operasi mengalokasi ruang memori utama untuk menyimpan image proses yang terdiri atas bagian kode program, stack, dan PCB (Process Control Block).

4. Pada tahap berikutnya, sistem operasi akan melakukan inisialiasi PCB proses yang diikuti dengan proses no 5 berikut.

5. Penyisipan PCB proses ke antrian ready dan mengubah status proses menjadi ready.


4.1.2 PENGHENTIAN PROSES

    Pada bab sebelumnya mengenai siklus hidup proses, telah dijelaskan alasan-alasan suatu proses dihentikan. Penghentian proses yang normal terjadi karena aplikasi telah selesai. Adanya kondisi kesalahan serta hal- hal yang tidak dikehendaki dapat menyebabkan proses dihentikan secara paksa.

    Dalam penghentian proses secara normal, langkah-langkah yang di- lakukan oleh sistem operasi antara lain:

1. Mengembalikan hasil keluaran ke proses induk (parent process), yaitu proses yang menciptakan proses bersangkutan.

2. Menghapus rekaman proses di semua antrian dan di tabel proses.

3. Setelah itu, sistem operasi akan menghapus PCB serta image proses tersebut. Dalam penghentian proses, semua sumber daya yangdigunakan, seperti berkas maupun peranti I/O dibebaskan ataupun dikembalikan ke sistem operasi.

Setelah penghentian proses selesai, sistem operasi akan melakukan operasi penjadwalan (scheduling) untuk memilih proses lain untuk dieksekusi.


4.1.3 PENGALIHAN EKSEKUSI PROSES (PROCESS SWITCHING)

    Sistem operasi juga bertanggung jawab untuk pengalihan eksekusi proses. Ketika suatu proses yang sedang running sudah habis jatah waktu eksekusinya maka sistem operasi bertanggungjawab untuk mengalihkan eksekusi ke proses lainnya. Proses pengganti akan diseleksi menggunakan rutin scheduler, sedangkan pengalihan eksekusinya dilakukan mengguna- kan rutin yang disebut dengan dispatcher. Algoritma scheduler akan di- bahas pada bagian penjadwalan proses di subbab berikutnya. Subbagian ini akan menjelaskan tentang pengalihan eksekusi proses (process switching)

    Pengalihan eksekusi suatu proses ke proses lainnya dapat disebabkan karena suatu proses meminta operasi I/O (misalnya membaca berkas), me- nunggu suatu event (misalnya menggunakan inputan keyboard ataupun pergerakan mouse dari pengguna komputer), terjadi kesalahan eksekusi proses ataupun jatah waktu eksekusinya sudah habis.

Berbagai Penyebab Pengalihan Eksekusi Proses

    Secara teknis, kondisi di atas dapat disebabkan aksi dari proses itu sendiri ataupun dari luar. Contoh aksi dari luar adalah terjadinya interupsi. Se- mentara aksi dari dalam seperti pemanggilan layanan sistem opeasi (supervisor call atau system call) ataupun terjadinya trap, yaitu eksekusi proses yang menghasilkan kondisi kesalahan. Masing-masing penyebab di atas akan dijelaskan di bawah ini:

1. Interupsi

    Interupsi disebabkan oleh aksi eksternal, misalnya oleh peranti I/O. pewaktu (timer), ataupun kesalahan akses memori utama. Munculnya interupsi tidak bergantung pada proses yang pada saat itu sedang running. Pada saat muncul, kendali lebih dahulu diserahkan ke interrupt handler atau rutin penanganan interupsi. Secara umum, rutin tersebut akan terlebih dahulu melakukan penyimpanan konteks prosesor (processor context), yaitu isi seluruh register prosesor pada saat tersebut, ke PCB proses. Beberapa contoh interupsi dijelaskan berikut:

a. Interupsi waktu (Clock Interrupt)
    Interupsi ini digunakan untuk memeriksa pemakaian jatah waktu penggunaan prosesor. Jika jatah waktu telah habis (time-out) maka prosesor akan dialokasikan ke proses lain.

b. Interupsi I/O (I/O Interrupt)
    Interupsi ini dilakukan oleh peranti I/O untuk menginformasikan selesainya operasi I/O ataupun adanya data baru dari peranti I/O.

c. Interupsi Kesalahan Memori (Memory Fauk Interrupt)
    Interupsi ini umumnya terjadi jika prosesor mencoba mengakses alamat logika yang datanya belum disalinkan ke memori utama. Ketika interupsi ini terjadi, rutin penanganannya akan menyalin page/segment yang hendak diakses tersebut ke memori utama. Dengan kata lain, sistem operasi menggunakan interupsi seperti ini untuk mengelola penyalinan page/segment proses dari memori maya pada media sekunder ke memori utama.

2. Trap

    Trap adalah interupsi yang dipicu oleh terjadinya kesalahan eksekusi ataupun kondisi-kondisi khusus (exception condition) dari proses yang sedang running. Jika kesalahannya fatal maka dilakukan peng- alihan eksekusi ke proses lain atau yang disebut dengan process switching. Jika tidak fatal, sistem operasi dapat memberi peringatan ke pemakai atau menjalankan prosedur pemulihan dan kemudian melanjutkan eksekusi proses tersebut.

3. Supervisor Call atau System Call

    Supervisor call atau System Call merupakan pemanggilan layanan sistem operasi oleh proses yang sedang running. Penggunaan system call menyebabkan aliran eksekusi berpindah ke kode instruksi kernel sistem operasi. Eksekusi kode instruksi kernel ini dapat menyebabkan terjadinya pengalihan proses.

Tahapan Pengalihan Eksekusi Proses (Process Switching)

Gambar 4.1 menunjukkan contoh tahapan pengalihan proses Po ke Pi dan kembali ke Po. Tahapan pengalihan proses meliputi langkah-langkah berikut:

1. Sistem operasi menyimpan (backup) konteks prosesor, yaitu isi seluruh register prosesor, proses yang sedang running (Po) ke PCB proses tersebut (PCB)

2. Sistem operasi kemudian memperbarui isi PCB proses tersebut (PCB), termasuk mengubah status eksekusinya ke status blocked ataupun ready.

3. Selanjutnya, PCB (PCB) dipindahkan ke antrian yang sesuai, yaitu antrian ready jika status proses beralih ke status ready ataupun ke salah satu antrian I/O jika proses beralih ke status blocked.

4. Setelah itu, sistem operasi melakukan dispatch ke proses lainnya Pı, dengan memperbarui PCB proses baru (P1), termasuk mengubah status eksekusinya menjadi running.

5. Kemudian sistem operasi memperbarui isi struktur data manajemen memori yang berkaitan dengan proses baru (Pi).

6. Terakhir, sistem operasi akan menyalin (restore) konteks prosesor yang tersimpan di PCB proses baru (PCB) ke prosesor dan mulai mengeksekusi kode instruksi proses P1

    Jika jatah eksekusi proses Pı telah habis dan tidak ada proses lain dalam sistem selain Po maka prosesor akan dialihkan kembali ke Po mengikuti langkah-langkah di atas. Langkah yang paling penting adalah menyimpan konteks prosesor Pi ke PCB dan menyalinkan kembali (restore) konteks prosesor Po, yang tersimpan di PCBa, ke prosesor. Mekanisme backup dan restore konteks prosesor memungkinkan suatu proses dapat melanjutkan eksekusinya dari titik terakhir sebelum terjadi interupsi ataupun blocking.

Gambar 4.1 Proses pengalihan Sistem Operasi


4.1.4 PENGALIHAN KONTEKS EKSEKUSI (CONTEXT SWICTHING)

    Terjadinya interupsi tidak selalu memicu terjadinya pengalihan eksekusi proses (proses switching). Sebagai contoh adalah ketika suatu proses sedang berjalan dan menunggu inputan dari keyboard. Ketika pengguna memasukkan data lewat keyboard maka akan terjadi interupsi yang mengakibatkan pengalihan konteks eksekusi, yaitu dari proses ke rutin penanganan interupsi (interrupt handler) keyboard. Setelah rutin interupsi selesai dijalankan maka eksekusi dialihkan kembali ke proses bersangkutan. Selama terjadinya pengalihan konteks eksekusi ini, status eksekusi proses tidak berubah.

    Pengalihan konteks eksekusi (bukan pengalihan eksekusi proses) melaku- kan penyimpanan konteks prosesor proses ke stack, bukan ke PCB. Setelah itu eksekusi berpindah ke rutin interupsi dan setelah selesai, register prosesor diperbaharui kembali dengan konteks prosesor yang dibaca dari stack, dan eksekusi proses yang terhenti dilanjutkan kembali.

   Pengalihan konteks eksekusi (context switching) melibatkan tahapan yang lebih pendek dibandingkan pengalihan eksekusi proses (process switching). Itu sebabnya pengalihan eksekusi antar rutin sistem operasi umumnya memakai mekanisme context swicthing, bukan process switching.

Tidak ada komentar:

Posting Komentar