(*) Jelaskan alasan pembuatan & penghentian suatu proses!
a. Pembuatan Proses (Create Process)
Create Process yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses akan ditambahkan ke proses yang sedang dikelola, sistem operasi membuat struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu.
Alur Pembuatan Proses adalah sebagai berikut:
- Memberi identitas (nama) pada proses yang dibuat
- Menyisipkan proses pada list proses atau tabel proses
- Menentukan prioritas awal proses
- Membuat PCB
- Mengalokasikan resource awal bagi proses tersebut.
Create process atau pembuatan proses dilakukan karena alasan-alasan sebagai berikut :
- Batch Job Baru. Sistem Operasi diberikan dengan suatu aliran batch job control, biasanya pada pita atau disk. Pada saat disiapkan untuk mengambil job yang baru, sisitem operasi akan membaca rangkain job control command berikutnya.
- Logon interaktif. Seorang pengguna di sebuah terminal masuk kesistem
- Dibuat oleh OS untuk menyediakan layanan. Sistem operasi dapat membuat suatu proses untuk melakukan fungsi atas naa program pengguna, tanpa mengharuskan pengguna menunggu (misalnya, pencetakan)
- Dibiakan (spawned) oleh proses yang telah ada.Untuk memenuhi tujuan modularitas atau untuk memanfaatkan paralelisme, sebuah program pengguna dapat mengatur pembiakan sejumlah proses
- Proses yang menciptakan child process disebut proses induk (parent process)
- Child process dapat menciptakan proses baru.
- Proses-proses dapat membentuk pohon hirarki proses
Pada UNIX, parent akan membentuk child dengan menggunakan system call fork. Setelah pemanggilan fork, parent kembali berjalan secara pararel dengan child. Demikian pula, child dapat memanggil fork untuk membentuk child lainnya. Sistem call exec digunakan setelah system call fork mengganti alamat memori proses dengan program baru. Lain halnya dengan DOS, pada MS-DOS, system call akan memanggil binary file tertentu yang ada pada memori dan mengeksekusinya sebagai child. Parent akan running kembali setelah child selesai eksekusi. Dengan demikian parent dan tidak dapat berjalan secara pararel.
b. Penghentian proses (Destroyed Process)
Yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses telah selesai dilakukan atau dihentikan, sistem operasi menghapus struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu.
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir atau diterminasi dengan sengaja oleh proses lain, biasanya proses induk yang melakukan hal ini. Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses yang diterminasi karena selesai melakukan tugasnya, sistem operasi akan memanggil system call exit() sedangkan proses yang diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan terminasi yang dilakukan proses induk tersebut seperti:
- Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
- Task yang ditugaskan kepada turunan tidak lagi diperlukan.
- · Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.
Alur Penghentian Proses adalah sebagai berikut:
- Suatu proses berhenti jika telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi untuk menghapusnya dengan menggunakan system call exit.
- Proses mengembalikan semua data (output) ke parent proses melalui system call wait.
- Kemudian proses dihapus dari list atau tabel sistem, dilanjutkan dengan menghapus PCB.
Secara umum, Destroyed Process dilakukan karena alasan-alasan sebagai berikut.
- Selesai secara normal. Proses mengeksekusi suatu panggilan layanan OS untuk mengindikasikan bahwa proses tersebut telah selesai beroperasi
- Batas waktu telah dilampaui. Proses telah berjalan lebih lama dari jumlah batas waktu yang telah ditentukan. Terdapat beberapa kemungkinan jenis waktu yang diukur. Jenis-jenis tersebut meliputi jumlah waktu yang berjalan (waktu jam dinding), jumlah waktu yang dibutuhkan untuk melakukan eksekusi, dan pada proses yang interaktif, jumlah waktu sejak pengguna terakhir diberi input
- Memori tidak tersedia. Proses memerlukan memori lebih banyak dari yang dapat disediakan oleh sistem
- Pelanggaran batas. Proses mencoba menakses lokasi memori yang tidak diijinkan untuk diases
- Error proteksi. Proses mencoba menggunakan sumber daya atau file yang tidak diizinkan untuk digunakan, atau mencoba menggunakannya dengan cara yang salah, seperti melakukan penulisan ke file yang hanya dapat dibaca (read-only file)
- Error aritmetik. Proses mencoba untuk melakukan komputasi yang tidak diizinkan, seperti pembagian dengan nol, atau mencoba menyimpan bilangan yang besarnya diluar kemampuan perangkat keras. Kelebihan waktu proses telah menunggu event tertentu lebih lama dari waktu maksimum
- Kegagalan I/O. Error yang terjadi pada saat input atau output, seperti ketidakmampuan untuk menemukan file, kegagalan membaca atau menulis setelah beberapa kali mencoba (pada saat misalnya menemukan daerah yang telah rusak pada pita magnetik) atau operasi yang invalid (misalnya melakukan pembacaan dari printer)
- Intruksi yang invalid. Proses mencoba mengeksekusi intruksi yang tidak ada (seringkali akan mengakibatkan pencabangan ke suatu daerah data dan berusaha mengeksekusi data)
- Intruksi ber-privilage. Proses berusaha untuk menggunakan suatu intruksi yang dicadangkan bagi sistem operasi
- Pemakaian data yang salah. Potongan datanya memiliki jenis yang salah, atau tidak diinisilaisasi terlebih dahulu
- Intervensi Operator atau OS. Dengan sesuatu alasan, operator atau sistem operasi telah menghentikan proses (misalnya, telah terjadi deadlock)
- Penghentian Induk. Apabila induk berhenti, sistem operasi secara otomatis dapat menghentikan seluruh turunan proses induk itu
- Permintaan induk. Proses induk umumnya memiliki otoritas untuk menghentikan semua turunannya
Alasan lain Penyebab terjadinya penghentian suatu proses:
- Apabila Proses selesai mengerjakan tugasnya(selesai normal)
- Apabila Proses berjalan melebihi batas waktu
- Jika memory tidak tersedia
- Pelanggaran terhdap batas memori
- Terjadi kesalahan karena pelanggaran proteksi
- Terjadi kesalahan perhitungan
- Jika terjadi proses menunggu terlalu lama
- Terjadi kegagalan I/O
- Jika proses mengeksekusi instruksi yang tidak ada
- Proses menggunakan instruksi yang disimpan untuk SO
- Terjadi kesalahan penggunaan data
- Terjadi intervensi dari operator atau SO (contoh : deadlock)
- Jika proses induk berahir
- Yang terakhir atas permintaan proses induk
Sumber :taufikramadhani.files.wordpress.com