Pengertian proses pada sistem operasi
Proses dalam sistem operasi berisi instruksi, data, program
counter, register pemroses, stack data, alamat pengiriman dan variabel
pendukung lainnya.
Sistem Operasi - Proses
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 :Pada 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.
Dua state baru dimasukkan sehingga membentuk diagram 5
state, yaitu :
Suspended ready
Suspended blocked
Penundaan dapat diinisialisasi oleh proses itu sendiri atau
proses lain.
Pada sistem
monoprocessor, proses running dapat mensuspend dirinya sendiri karena tak ada
proses lain yang juga running yang dapat memerintahkan suspend.
Pada sistem
multiprocessor, proses running dapat disuspend proses running lain pada
pemroses berbeda. Proses ready hanya dapat di suspend oleh proses lain.
Pada proses blocked terdapat transisi menjadi suspended
blocked. Pilihan ini dirasa aneh. Apakah tidak cukup menunggu selesainya
operasi masukan/keluaran atau kejadian yang membuat proses ready atau suspended
ready?. Bukankah state blocked, ready blocked, suspended blocked sama-sama
tidak mendapat jatah waktu pemroses ?. Kenapa dibedakan ?.
Alasannya, karena penyelesaian operasi masukan/keluaran bagi
proses blocked mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan
sehingga lebih baik disuspend agar sumber daya-sumber daya yang dialokasikan
untuk proses tersebut dapat digunakan proses-proses lain. Untuk kondisi ini,
lebih baik sumber daya-sumber daya yang dipegang proses yang berkondisi seperti
ini dipakai proses-proses lain. Proses blocked disuspend sistem atau secara
manual menjadi suspended blocked.
Bila akhirnya operasi masukan/keluaran berakhir maka segera
proses suspended blocked mengalami transisi. Karena resume dan suspend mempunyai
prioritas tinggi maka transisi segera dilakukan. Suspend dan resume dapat
digunakan untuk menyeimbangkan beban sistem saat mengalami lonjakan di atas
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
Penciptaan proses
Melibatkan banyak aktivitas, yaitu :
Memberi identitas
proses
Menyisipkan proses
pada senarai atau tabel proses
Menentukan
prioritas awal proses
Menciptakan PCB
Mengalokasikan
sumber daya awal bagi proses
Ketika proses baru ditambahkan, sistem operasi membangun
struktur data untuk mengelola dan mengalokasikan ruang alamat proses.
Kejadian yang dapat menyebabkan penciptaan proses :
Tahap-tahap penciptaan proses
Penciptaan proses dapat disebabkan beragam sebab. Penciptaan
proses meliputi beberapa tahap :
Beri satu
identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama
yang berisi satu isian perproses.
Alokasikan ruang
untuk proses.
PCB harus
diinisialisasi.
Kaitan-kaitan
antar tabel dan senarai yang cocok dibuat.
Bila diperlukan
struktur data lain maka segera dibuat struktur data itu.
Penghancuran proses
Penghancuran proses melibatkan pembebasan proses dari
sistem, yaitu :
Sumber daya-sumber
daya yang dipakai dikembalikan.
Proses dihancurkan
dari senarai atau tabel sistem.
PCB dihapus (ruang
memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan
proses-proses lain. Terdapat dua pendekatan, yaitu :
Pada beberapa
sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara
otomatis.
Beberapa sistem
lain menganggap proses anak independen terhadap proses induk, sehingga proses
anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
Alasan-alasan penghancuran proses, sebagai berikut.
Pengalihan proses
Kelihatannya pengalihan proses (process switching) adalah
sepele. Pada suatu saat, proses running diinterupsi dan sistem operasi memberi
proses lain state running dan menggilir kendali ke proses itu.
Dalam hal ini muncul beberapa masalah, yaitu :
Kejadian-kejadian
apa yang memicu alih proses ?
Masalah lain
adalah terdapatnya perbedaan
antara alih proses
(process switching) dan alih konteks (context switching).
Apa yang harus
dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya
dalam alih proses ?
Kejadian-kejadian penyebab pengalihan proses
Kejadian-kejadian yang menyebabkan terjadinya alih proses
adalah :
Interupsi sistem,
disebabkan kejadian eksternal dan tak bergantung proses yang saat itu sedang
running. Contoh : selesainya operasi masukan/keluaran. Pada kejadian interupsi,
kendali lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan
data-data dan kemudian beralih ke rutin sistem operasi yang berkaitan dengan
tipe interupsi itu. Tipe-tipeinterupsi antara lain :
Trap, Adalah
interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception
conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam
mengakses file. Dengan trap, sistem operasi menentukan apakah kesalahan yang
dibuat merupakan kesalahan fatal ?
Kemungkinan yang dilakukan adalah menjalankan prosedur
pemulihan atau memperingkatkan ke pemakai. Saat terjadi trap, mungkin terjadi
pengalihan proses mungkin pula resume proses.
Supervisor call,
yaitu panggilan meminta atau mengaktifkan bagian sistem operasi. Contoh: Proses
pemakai running meminta layanan masukan/keluaran seperti membuka file. Panggilan
ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya, penggunaan
system call membuat proses pemakai blocked karena diaktifkan proses kernel
(sistem operasi).
Pengalihan konteks
Pengalihan konteks dapat terjadi tanpa pengalihan state process
yang sedang running, sedang pengalihan proses pasti melibatkan juga pengalihan
konteks.
Siklus penanganan interupsi adalah :
Pemroses menyimpan
konteks program saat itu yang sedang dieksekusi ke stack.
Pemroses menset
register PC dengan alamat awal program untuk interuppet handler.
Setelah kedua
aktivitas itu, pemroses melanjutkan menjalankan instruksi-instruksi berikutnya
di interuppt handler yang melayani interrupt.
Pelaksanaan
interupsi ini belum tentu mengakibatkan pengalihan ke proses lain (yaitu
pengalihan PCB proses dari senarai running ke senarai lain (blocked, ready),
dan sebaliknya. Kita menyebut pengalihan konteks adalah untuk pengalihan
sementara yang singkat, misalnya untuk mengeksekusi program interrupt handler.
Setelah penanganan
interupsi selesa maka konteks yang terdapat pada stack dikembalikan sehingga
kembali ke konteks proses semula tanpa terjadi pengalihan ke proses lain.
Pengalihan proses terjadi jika proses yang running beralih menjadi state lain
(ready, blocked), kemudian sistem operasi harus membuat perubahan-perubahan
berarti terhadap lingkungannya. Rincian-rincian dalam pelaksanaan pengalihan
proses dibahas setelah ini.
Pengalihan proses
Pengalihan proses terjadi jika proses yang running beralih
menjadi state lain (ready, blocked) kemudian sistem operasi membuat
perubahan-perubahan berarti terhadap lingkungan.
Langkah-langkah yang terlibat dalam pengalihan proses
sebagai berikut :
Simpan konteks
pemroses, termasuk register PC dan register-register lain.
Perbarui PCB
proses yang running. Pelaksanaan termasuk mengubah state proses menjadi salah
satu state (ready, blocked, suspendedready).
Field-field yang
relevan juga diperbarui misalnya alasan meninggalkan state running dan
informasi akunting.
Pindahkan PCB
proses ke senarai yang cocok (ready, blocked).
Pilih satu proses
lain untuk dieksekusi sesuai dengan teknik penjadwalan.
Perbarui PCB
proses yang dipilih termasuk perubahan state menjadi running.
Perbarui
struktur-struktur data manajemen memori. Pekerjaan ini sesuai dengan
pengelolaan translasi alamat.
Kembalikan konteks
pemroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat
dialihkan dari state running. Pengembalian konteks ini dilakukan dengan
memuatkan nilai-nilai register PC dan register-register lain dengan nilai
konteks yang tersimpan.
Pengalihan proses
melibatkan pengalihan konteks dan perubahan state, memerlukan usaha lebih besar
daripada pengalihan konteks.
Tabel-tabel proses
Tiap proses mempunyai state yang perlu diperhatikan sistem
operasi yang dicatat dalam beragam tabel atau senarai yang saling berhubungan,
yaitu :
Tabel informasi
manajemen memori, Untuk menjaga keutuhan memori utama dan memori sekunder yang
menyimpan informasi tentang :
Tabel informasi
manajemen masukan/keluaran, Untuk mengelola perangkat masukan/keluaran, dimana
perangkat tersebut digunakan proses tertenty, sehingga perlu dijaga agar proses
lain tidak memakainya. Sistem operasi perlu mengetahui status operasi
masukan/keluaran dan lokasi memori utama yang digunakan untuk transfer data.
Tabel informasi
sistem file, Berisi informasi mengenai ekstensi file, lokasi pada memori
sekunder, status saat itu dan menyimpan atribut-atribut file lainnya.
Tabel proses,
Untuk mengelola informasi proses di sistem operasi, lokasinya di memori, status
dan atribut proses lainnya.
Proses ditempatkan di memori utama di lokasi tertentu,
proses mempunyai satu ruang alamat tersendiri. Ruang alamat yang digunakan
proses disebut citra proses (process image), karena selain seluruh kode biner
program, proses ditambahi atribut-atribut lain yang berkaitan penempatannya
pada suatu lokasi memori dan status eksekusi pada saat itu.
Elemen-elemen citra proses, sebagai berikut
ELEMEN CITRAPROSES KETERANGAN
Data pemakai Bagian
yang dapat memodifikasi berupa data program, daerah stack pemakai.
Program pemakai Program
biner yang dieksekusi.
Stack sistem Digunakan
untuk menyimpan parameter dan alamat pemanggilan untuk prosedur dan system
calls
PCB (Program Control Block) Berisi
informasi yang diperlukan olehsistem operasi dalam mengendalikan proses
Struktur umum tabel-tabel kendali ditunjukkan pada gambar
berikut :
Gambar 5 : Struktur tabel-tabel kendali pada sistem operasi
PCB dan senarai proses
PCB berisi informasi mengenai proses yang diperlukan sistem
operasi. PCB dibaca dan /atau dimodifikasi rutin sistem operasi seperti
penjadwalan, alokasi sumber daya,
pemrosesan interupsi, monitoring
dan analisis kinerja.
Kumpulan PCB mendefinisikan state
sistem operasi. Untuk menyatakan senarai proses di sistem operasi dibuat
senarai PCB.
Diagram memperlihatkan hanya satu PCB berada di senarai running.
PCB ini menyatakan proses yang saat itu sedang dieksekusi pemroses sehingga
hanya satu proses yang running. Tentu saja ini tidak berlaku untuk
multiprocessing yang dapat mengeksekusi lebih dari satu proses sekaligus.
Prose-proses ready digambarkan dengan PCB proses-proses di
senarai ready. Proses-proses menunggu dijadwalkan untuk dieksekusi pemroses.
Proses yang dijadwalkan dieksekusi (yaitu mengalami transisi dari state ready
menjadi running) maka PCBnya dipindah dari senarai ready ke senarai running.
Proses running (PCB-nya berada di senarai running) dipindah
sesuai state yang dialami proses itu, sebagai berikut :
Bila proses
berakhir (selesai) maka dijalankan operasi terminasi sehingga PCB-nya tak ada
lagi.
Bila proses
diblocked karena menunggu alokasi sumber daya maka PCBnyadipindah ke senarai
blocked.
Bila proses
dijadwalkan habis jatah waktu eksekusinya maka PCBnya dipindahkan ke senarai
ready.
Proses yang sedang
blocked berpindah menjadi ready bila sumber daya yang ditunggu telah teralokasi
untuknya. Untuk itu PCBnya dipindahkan ke senarai ready.
Pengaksesan informasi di PCB
Rutin-rutin sistem operasi perlu mengakses informasi di PCB.
Tiap proses dilengkapi ID unik yang digunakan sebagai indeks (penunjuk) ke
tabel untuk mengambil PCB.
Kesulitan bukan pada mekanisme pengaksesan, tetapi masalah
proteksi terhadap PCB. Dua masalah utama proteksi terhadap PCB, yaitu :
Bug (kesalahan pemrograman) pada rutin tunggal, misalnya
interrupt handler dapat merusak PCB sehingga dapat berakibat menghancurkan
kemampuan sistem mengelola
proses-proses yang diasosiasikan dengan PCB.
Perubahan rancangan struktur dan semantiks PCB dapat
berdampak ke sejumlah modul sistem
operasi yang memakai PCB.
Kedua masalah tersebut memberi gagasan agar semua rutin
sistem operasi melewati satu rutin khusus, yaitu rutin penanganan PCB dalam
mengakses PCB. Tugas rutin adalah memproteksi PCB dan menjadi perantara
pembacaan dan penulisan PCB. Masalah pertama dapat dicegah karena rutin
penanganan PCB akan selalumenjaga agar PCB tidak rusak. Masalah kedua jelas
langusng teratasi karena antarmuka terhadap rutin-rutin lain masih tetap
dipertahankan walau rincian-rincian PCB diubah.
Rutin-rutin sistem operasi yang memakai antarmuka tidak
perlu diubah. Teknik ini menghendaki didefinisikan antarmuka rutin penanganan
PCB dan rutin-rutin lain dengan baik. Kelemahan teknik ini adalah adanya
overhead kinerja karena harus memanggil rutin penanganan PCB. Pengaksesan
langsung terhadap PCB tentu lebih cepat daripada harus memanggil rutin
penanganan PCB.
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. Terdapat juga ruang alamat yang dipakai bersama
semua proses. Ketika diinterupsi, trap atau supervisor call terjadi,pemroses
ditempatkan ke mode kernel dan kendali dilewatkan ke sistem operasi. Konteks
pemroses disimpan dan alih konteks ke rutin sistem operasi.
Eksekusi dilanjutkan dalam proses pemakai saat itu, tidak
dilakukan alih proses, hanya alih konteks di proses yang sama. Jika sistem
operasi telah menyelesaikan tugas, menentukan apakah proses berlanjut, maka
alih konteks meresume program yang diinterupsi dalam proses itu juga. 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. Terdapat ciri yang sama yaitu
banyak lauanan yang secara tradisional merupakan bagian sistem operasi menjadi
subsistem eksternal. Subsistem in berinteraksi dengan kernel dan
subsistem-subsistem lain.
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