Anda di halaman 1dari 9

Proses Penghentian Proses

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

kerjasama antar proses


• Proses independent tidak mempengaruhi eksekusi proses yang lain
• Kerjasama proses dapat mempengaruhi atau dipengaruhi oleh eksekusi proses yang lain
• Keuntungan kerjasama proses :
o Sharing informasi
o Meningkatkan kecepatan komputasi
o Modularitas
o Kemudahan
Contoh: deadlock adalah dua proses menjadi bloked dalam hal ini masing-masing proses
menjadi blocked karena menunggu komunikasii dari proses lain. kedua proses saling menunggu
komunikasi lainnya dan tidak dapat beranjak dari kondisi ini.

komunikasi antar proses


• Komunikasi langsung.
Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui secara
jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah terkirim ke
proses yang lain. Karakteristiknya antara lain:

o Link dapat otomatis dibuat


o Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
o Diantara pasangan itu terdapat tepat satu link
o Link tersebut biasanya merupakan link komunikasi dua arah
• Komunikasi tidak langsung.
Berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis kotak surat
atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu
sama lain jika mereka membagi port mereka. Karakteristik komunikasi ini antara lain:
o Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
o Sebuah link dapat terhubung dengan banyak proses
o Setiap pasang proses dapat membagi beberapa link komunikasi
o Link yang ada dapat merupakan link terarah ataupun link yang tidak terarah

Contoh komunikasi antar proses adalah pada system client server. Komunikasi client server
menggunakan berbagai bentuk antara lain socket, remote procedure call (RPC) dan remote method
invocation (RMI).
Thread

• Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
• Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
• Kadang disebut sebagai proses ringan (lightweight).
• Unit dasar dari dari sistem utilisasi pada processor (CPU).
• Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
• Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread
yang lain yang memiliki proses yang sama.

Threading adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang
berfungsi sebagai pengendali/ controller. Multi-Threading adalah proses dengan thread yang banyak
dan mengerjakan lebih dari satu tugas dalam satu waktu.

Multithreading

Multi-Threading adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas
dalam satu waktu.

Keuntungan Multi-Threading
1. Responsive; tanggap: Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada
bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang
lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari
proses.Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
3. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal.
Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat
threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat
ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada
prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara
setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya
satu thread yang berjalan di setiap waktu.

Kerugian Multi-Threading

1) Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource,
misalnya chace memory.
2) Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove
(ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang
dibutuhkan ketika terjadi pergantian thread yang berjalan.
3) Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.

Thread dalam Sistem Operasi

• Sistem operasi telah mendukung proses multithreading.


• Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
• Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.

Model Multi-Threading

1) Many-to-One

• Memetakan beberapa thread tingkatan pengguna


• ke sebuah thread tingkatan kernel.
• Pengaturan thread dilakukan dalam ruang
• pengguna, sehingga efisien.
• Hanya satu thread pengguna yang dapat
• mengakses thread kernel pada satu saat.

2) One-to-One

• Memetakan setiap thread tingkatan pengguna ke thread kernel.


• Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
• D3 KomSI UGM Sistem Operasi

3) Many-to-Many

• Mengelompokkan banyak thread pengguna untuk dipetakan ke thread kernel yang


• jumlahnya lebih sedikit atau sama dengan tingkatan pengguna.
• Mengijinkan sistem operasi untuk membuat sejumlah thread kernel.

Contoh solusi thread

Jikalau ad msalah pd web server multi threading seperti pembuatan thread yg tanpa henti dn
dpt menurunkn performa mka solusinya mnggunkan thread pools.
Keuntunganny yaitu lebih cepat melayani permintaan dengan thread yg ad dibanding dgn
menunggu thread baru dibuat.

Anda mungkin juga menyukai