Proses dalam sistem operasi berisi instruksi, data, program counter, register pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
Sistem Operasi – Proses
Terdapat beberapa definisi mengenai proses, antara lain :
- Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi.
- Proses adalah program yang sedang dieksekusi.
- Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses tersebut. Banyak proses yang dijalankan bersamaan, dimana setiap proses mendapat bagian memori dan kendali sendiri-sendiri (peran SO).
Sehingga setiap proses (program) memiliki prinsip :
- Independent, artinya program-program tersebut berdiri sendiri, terpisah dan saling tidak bergantung.
- One program at any instant, artinya hanya terdapat satu proses yang dilayani pemroses pada satu saat.
Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu proses dan secara cepat beralih ke proses lainnya (bergiliran), sehingga menimbulkan efek paralel semu (pseudoparallelism).
Pengendalian proses
Dalam pengendalian antar proses, sistem operasi menggunakan metode :
- Saling melanjutkan (interleave), Sistem operasi harus dapat kembali melanjutkan proses setelah melayani proses lain.
- Kebijaksaan tertentu, Sistem operasi harus mengalokasikan sumber daya ke proses berdasar prioritasnya.
- Komunikasi antar proses dan penciptaan proses, Sistem operasi harus mendukung komunikasi dan penciptaan antar proses (menstrukturkan aplikasi).
Pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada dalam beragam tahap eksekusinya. Proses mengalami beragam state (ready, running, blocked) selama siklus hidupnya sebelum berakhir dan keluar dari sistem. Sistem operasi harus dapat mengetahui state masing-masing proses dan merekam semua perubahan yang terjadi secara dinamis. Informasi tersebut digunakan untuk kegiatan penjadwalan dan memutuskan alokasi sumber daya.
Status (state) proses
Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai berikut :
- Running, Proses sedang mengeksekusi instruksi proses
- Ready, Proses siap dieksekusi, tetapi proses tidak tersedia untuk eksekusi proses ini.
- Blocked, Proses menunggu kejadian untuk melengkapi tugasnya
- Proses yang baru diciptakan akan mempunyai state ready.
- Proses berstate running menjadi blocked, karena sumbar daya yang diminta belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event wait).
- Proses berstate running menjadi ready, karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (time out).
- Proses berstate blocked menjadi ready saat sumber daya yang diminta/ diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai (event occurs).
- Proses berstate ready menjadi running, karena penjadwal memutuskan penggunaan pemroses utnuk proses itu karena proses yang saat itu running berubah statenya (menjadi ready atau blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.
Diagram state lanjut
Penundaan (suspend) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
Proses yang ditunda (suspended blocked) tidak berlanjut sampai proses lain meresume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan (dilucuti). Keputusan membebaskan sumber daya-sumber daya bergantung sifat masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan kembali) proses, yaitu menjalankan proses dari titik (instruksi) dimana proses ditunda.
Operasi suspend dan resume penting, sebab :
- Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses
- dapat disuspend agar diresume setelah masalah diselesaikan. Contoh ada proses pencetakan, bila tiba-tiba kerta habis maka proses disuspend. Setelah kertas dimasukkan kembali, proses pun dapat diresume.
- Pemakai yang ragu/khawatir mengenai hasil prose dapat mensuspend proses (bukan membuang (abort) proses). Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat disuspend) proses yang disuspend.
- Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat disuspend dan diresume saat beban kembali ke tingkat normal.
Program Control Block (PCB)
Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB. Sistem berbeda akan mengorganisasikan secara berbeda.
Informasi dalam PCB :
Informasi identifikasi proses
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya. Informasi tersebut meliputi :
- Identifier proses
- Identifier proses yang menciptakan
- Identifier pemakai
Informasi status pemroses
Informasi tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses
dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer. Informasi status terdiri dari:
- Register-register yang terlihat pemakai, adalah register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses.
- Register-register kendali dan status, Adalah register-register yang digunakan untuk mengendalikan operasi pemroses.
- Pointer stack, tiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.
Informasi kendali proses
Informasi kendali proses adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif. Informasi kendali terdiri dari :
- Informasi penjadwalan dan status, Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan, antara lain :
- Status proses, Mendefinisikan keadaan/status proses (running, ready, blocked)
- Prioritas, Menjelaskan prioritas proses.
- Informasi berkaitan dengan penjadwalan, Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.
- Kejadian, Identitas kejadian yang ditunggu proses.
- Penstrukturan data, satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.
- Komuikasi antar proses, beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.
- Manajemen memori Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memory) proses.
- Kepemilikan dan utilisasi sumber daya, sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
- Informasi ini diperlukan oleh penjadwal.
- Struktur citra proses digambarkan berurutan di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.
Operasi-operasi pada proses
Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi tersebut adalah :
- Penciptaan proses
- Penghancuran/terminasi proses
- Penundaan proses
- Pelanjutan kembali proses
- Pengubahan prioritas proses
- Memblok proses
- Membangunkan proses
- Menjadwalkan proses
- Memungkinkan proses berkomunikasi dengan proses lain
Kedudukan sistem operasi
Sistem operasi pada dasarnya adalah sepert perangkat lunak lain, yaitu program yang perlu dieksekusi pemroses.
Kedudukan sistem operasi dibanding proses-proses lain, adalah :
- Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses lain (kernel sebagai non-proses).
- Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.
- Sistem operasi juga sebagai kumpulan proses (process based operating systems).
Kernel sebagai non proses
Ketika proses running diinterupsi atau memanggil system call, maka konteks pemroses proses ini disimpan dan kendali dilewatkan ke kernel. Sistem operasi mempunyai daerah memori dan stack sendiri untuk pemanggilan prosedur.
Sistem operasi melakukan fungsi yang diinginkan dan mengembalikan konteks proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi dilanjutkan. Alternatif lain, sistem operasi menyimpan lingkungan proses, melakukan penjadwalan dan menjadwalkan proses lain.
Konsep proses hanya diterapkan untuk program-program pemakai. Kode sistem operasi dieksekusi sebagai satu entitas terpisah, beroperasi pada mode kernel. Proses adalah non-kernel, sedang sistem operasi adala kernel yang bukan proses.
Dieksekusi dalam proses pemakai
Alternatif lain dieksekusi sistem operasi adalah mengeksekusi sistem operasi di konteks proses pemakai. Pendekatan ini didasarkan terutama pada pandangan bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk melakukan beragam fungsi dan dieksekusi dalam lingkungan proses pemakai.
Pada seluruh waktu, sistem operasi mengelola N citra proses. Tiap citra tidak hanya mempunyai daerah untuk proses tapi juga daerah program, data dan stack untuk kernel.
Keunggulan pendekatan ini adalah program pemakai yang diinterupsi untuk memperoleh rutin sistem operasi dan diresume tidak mengalami overhead peralihan dua proses.
Jika sistem operasi menentukan bahwa alih proses terjadi bukan kembali ke proses semula yang dieksekusi, maka kendali dilewatkan ke rutin alih proses. Rutin ini boleh dijalankan pada proses boleh juga tidak, bergantung rancangan sistem. Pada keadaan ini, proses saat itu menjadi state non-running dan proses lain menjadi running.
Sistem operasi sebagai kumpulan proses
Pendekatan ini mengimplementasikan sistem operasi sebagai kumpulan proses.
Pendekatan ini digambarkan pada gambar berikut :
Variannya adalah perangkat lunak bagian kernel dieksekusi dalam mode kernel. Fungsi-fungsi kernel utama diorganisasi sebagai proses-proses terpisah. Terdapat kode kecil pengalihan proses yang dieksekusi di luar proses.
Pendekatan ini mempunyai beberapa keunggulan, yaitu :
Mikrokernel
Saat ini, mikrokernel mendapat banyak perhatian. Mikrokernel adalah inti sistem operasi yang menyebabkan landasan perluasan sistem operasi. Pendekatan mikrokernel dipopularkan sistem operasi MACH. Secara teoritis, pendekatan mikrokernel menyediakan derajat fleksibilitas dan modularitas tinggi. Sistem operasi yang memakai pendekatan mikrokernel adalah MS Windows NT.
Landasan pendekatan mikrokernel adalah hanya fungsi-fungsi sistem operasi inti yang secara mutlak esensi yang harus berada di kernel. Layanan-layanan dan aplikasi-aplikasi yang kurang esensi dibangin diatas mikrokernel itu. Meskipun pembagian antara yang perlu dan tidak perlu ada di mikrokernel beragam.
Layanan-layanan itu antara lain sistem file, sistem windowing dan layanan-layanan keamanan. Komponen-komponen sistem operasi di luar mikrokernel saling berinteraksi melalui pesan yang dilewatkan melalui mikrokernel. Fungsi mikrokernel adalh sebagai mediator pertukaran pesan.
Mikrokernel memvalidasi pesan, melewatkan pesan antara komponen-komponen dan memberi hak pengaksesan perangkat keras. Struktur ini ideal untuk lingkungan pemrosesan terdistribusi karena mikrokernel dapat melewatkan pesan baik secara lokal atau jarak jauh tanpa perubahan komponen-komponen sistem operasi yang lain.
Tidak ada komentar:
Posting Komentar