Proses Sistem Operasi
Proses dalam sistem operasi berisi instruksi, data,
program counter, register pemroses, stack data, alamat pengiriman dan variabel
pendukung lainnya.
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 proses 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 memerintahkansuspend.
§
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 blockedkarena 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
|
|
|
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 senaraiready.
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.