ShoutBox


ShoutMix chat widget

7.07.2008

BAB 3
Proses



3.1. Pengertian proses (task/job)


Proses berisi instruksi, data, program counter, register pemroses, stack
data, alamat pengiriman dan variabel pendukung lainnya.
Terdapat beberapa definisi mengenai proses, antara lain :
a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi.
b. Proses adalah program yang sedang dieksekusi.
c. 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 :
a. Independent, artinya program-program tersebut berdiri sendiri, terpisah
dan saling tidak bergantung.
b. 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).

Gambar (a) : Multiprogramming dengan 4 proses (program/job)
(b) : Model konseptual dari 4 proses independent, sequential proses
(c) : Hanya 1 proses yang aktif pada suatu saat


3.2. Pengendalian proses


Dalam pengendalian antar proses, sistem operasi menggunakan metode :
a. Saling melanjutkan (interleave)
Sistem operasi harus dapat kembali melanjutkan proses setelah melayani
proses lain.
b. Kebijaksaan tertentu
Sistem operasi harus mengalokasikan sumber daya ke proses berdasar
prioritasnya.
c. 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.

3.3 Status (state) proses


Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian
dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai
berikut :
Tabel 3.1 : Tiga state dasar proses

Hubungan ketiga state dasar digambarkan dalam diagram berikut :

Gambar 3.1 Diagram tiga state dasar proses

Penjelasan diagram :
1. Proses yang baru diciptakan akan mempunyai state ready.
2. 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).
3. Proses berstate running menjadi ready, karena penjadwal memutuskan
eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis
(time out).
4. Proses berstate blocked menjadi ready saat sumber daya yang diminta/
diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai
(event occurs).
5. Proses berstate ready menjadi running, karena penjadwal memutuskan
penggunaan pemroses utnuk proses itu karena proses yang saat itu running
berubah statenya (menjadi ready ata blocked) atau telah menyelesaikan
sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah
pemroses.

3.4 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 meredukdi
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 :
a. 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.
b. 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.
c. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa
proses dapat disuspend dan diresume saat beban kembali ke tingkat normal.

Gambar berikut menunjukkan modifikasi diagram state dengan memasukkan
kejadian suspend dan resume.

Gambar 3.2 : Diagram lima state proses

Dua state baru dimasukkan sehingga membentuk diagram 5 state, yaitu :
1. Suspended ready
2. Suspended blocked
Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain.
a. Pada sistem monoprocessor, proses running dapat mensuspend dirinya
sendiri karena tak ada proses lain yang juga running yang dapat
memerintahkan suspend.
b. 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 in
dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran
atau kejadian yang membuat proses ready atau suspended ready ?. Bukankah
state blockedm readyblockedm 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.

3.5. 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 :
1. Informasi identifikasi proses
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan
tabel lainnya.
Informasi tersebut meliputi :
a. Identifier proses
b. Identifier proses yang menciptakan
c. Identifier pemakai
2. 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 :
a. Register-register yang terlihat pemakai
Adalah register-register yang dapat ditunjuk instruksi bahasa assembly
untuk diproses pemroses.
b. Register-register kendali dan status
Adalah register-register yang digunakan untuk mengendalikan operasi
pemroses.
c. 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.
3. Informasi kendali proses
Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan
dan koordinasi beragam proses aktif.
Informasi kendali terdiri dari :
a. Informasi penjadwalan dan status
Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan,
antara lain :
a.1 Status proses
Mendefinisikan keadaan/status proses (running, ready, blocked)
a.2 Prioritas
Menjelaskan prioritas proses.
a.3 Informasi berkaitan dengan penjadwalan
Berkaitan dengan informasi penjadwalan, seperti lama menunggu,
lama proses terakhir dieksekusi.
a.4 Kejadian
Identitas kejadian yang ditunggu proses.
b. 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.
c. Komuikasi antar proses
Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi
antara dua proses yang terpisah.
d. Manajemen memori
Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan
memori maya (virtual memori) proses.
e. Kepemilikan dan utilisasi sumber daya
Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
e.1 Berkas yang dibuka
e.2 Pemakain pemroses
e.3 Pemakaian sumber daya lainnya
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.

Gambar 3.3 : Proses pemakai

3.6. Operasi-operasi pada proses


Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi
terhadap proses.
Operasi tersebut adalah :
a. Penciptaan proses
b. Penghancuran/terminasi proses
c. Penundaan proses
d. Pelanjutan kembali proses
e. Pengubahan prioritas proses
f. Memblok proses
g. Membangunkan proses
h. Menjadwalkan proses
i. Memungkinkan proses berkomunikasi dengan proses lain

3.7 Penciptaan proses


Melibatkan banyak aktivitas, yaitu :
a. Memberi identitas proses
b. Menyisipkan proses pada senarai atau tabel proses
c. Menentukan prioritas awal proses
d. Menciptakan PCB
e. 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 :
a. Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
Sistem operasi dengan kendali batch job, setelah menciptakan proses baru,
kemudian melanjutkan membaca job berikutnya.
b. Pada lingkungan interaktif, ketika pemakai baru berusaha logon.
c. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file,
sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu.
Sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program
pemakai, tanpa mengharuskan pemakai menunggu.
d. Proses penciptaan proses lain (proses anak).
Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program
pemakai memerintahkan pembuatan sejumlah proses.
Proses dapat menciptakan proses baru yaitu anak proses (child process),
sedangkan proses yang menciptakannya disebut proses induk (parent process).
Proses anakpun kembali dapat menciptakan proses-proses anak lainnya.
Proses-proses dapat membentuk pohon hirarki proses.

3.8 Tahap-tahap penciptaan proses


Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi
beberapa tahap :
1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel
proses utama yang berisi satu isian perproses.
2. Alokasikan ruang untuk proses.
3. PCB harus diinisialisasi.
4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
5. Bila diperlukan struktur data lain maka segera dibuat struktur data itu.

3.9. Penghancuran proses


Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
a. Sumber daya-sumber daya yang dipakai dikembalikan.
b. Proses dihancurkan dari senarai atau tabel sistem.
c. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain.
Terdapat dua pendekatan, yaitu :
a. Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk
dihancurkan secara otomatis.
b. Beberapa sistem lain menganggap proses anak independen terhadap proses
induk, sehingga proses anak tidak secara otomatis dihancurkan saat proses
induk dihancurkan.

Tabel 3.2 : Alasan-alasan penghancuran proses

3.10. 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 :
1. Kejadian-kejadian apa yang memicu alih proses ?
2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process
switching) dan alih konteks (context switching).
3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data
yang dibawah kendalinya dalam alih proses ?

3.11. Kejadian-kejadian penyebab pengalihan proses


Kejadian-kejadian yang menyebabkan terjadinya alih proses adalah :
1. 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 :
a. Interupsi clock (clock interrupt)
Sistem operasi (penjadwal) menentukan apakah proses yang sedang running
telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya
maka proses dialihkan ke state ready dan proses lain dijadwalkan
running.
b. Interupsi masukan/keluaran
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta
layanan sistem operasi. Sistem operasi segera menentukan aksi-aksi
masukan/keluaran yang harus dilakukan.
c. Page/memory fault
Pemroses menemui pengacuan alamat memori maya yang tidak terdapat di
memori utama (fisik). Sistem operasi segera memerintahkan untuk
mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke
memori utama.
2. 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 ?
a. Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih
proses.
b. Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan
rancangan sistem operasi.
Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau
memperingkatkan ke pemakai. Saat terjadi trap, mungkin terjadi pengalihan
proses mungkin pula resume proses.
3. 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).

3.12. 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 :
1. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke
stack.
2. 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.

3.13. 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 :
1. Simpan konteks pemroses, termasuk register PC dan register-register lain.
2. 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.
3. Pindahkan PCB proses ke senarai yang cocok (ready, blocked).
4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan.
5. Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running.
6. Perbarui struktur-struktur data manajemen memori. Pekerjaan ini sesuai
dengan pengelolaan translasi alamat.
7. 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.

3.14. Tabel-tabel proses


Tiap proses mempunyai state yang perlu diperhatikan sistem operasi yang
dicatat dalam beragam tabel atau senarai yang saling berhubungan, yaitu :
a. Tabel informasi manajemen memori
Untuk menjaga keutuhan memori utama dan memori sekunder yang menyimpan
informasi tentang :
a.1 Alokasi memori utama yang dipakai proses.
a.2 Alokasi memori sekunder yang dipakai proses (menggunakan manajemen
memori dengan swapping).
a.3 Atribut segmen memori utama dan sekunder.
a.4 Informasi-informasi lain yang digunakan untuk pengelolaan memori.
b. 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.
c. Tabel informasi sistem file
Berisi informasi mengenai ekstensi file, lokasi pada memori sekunder,
status saat itu dan menyimpan atribut-atribut file lainnya.
d. 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.

Tabel 3.3 : Elemen-elemen citra proses

Struktur umum tabel-tabel kendali ditunjukkan pada gambar berikut :

Gambar 3.4 : Struktur tabel-tabel kendali pada sistem operasi

3.15. 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.

Gambar 3.5: 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 :
a. Bila proses berakhir (selesai) maka dijalankan operasi terminasi sehingga
PCB-nya tak ada lagi.
b. Bila proses diblocked karena menunggu alokasi sumber daya maka PCBnya
dipindah ke senarai blocked.
c. 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.

3.16. 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 :
1. 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.
2. 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.
a. Masalah pertama dapat dicegah karena rutin penanganan PCB akan selalu
menjaga agar PCB tidak rusak.
b. 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.

3.17. 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 :
a. Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses
lain (kernel sebagai non-proses).
b. Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.
c. Sistem operasi juga sebagai kumpulan proses (process based operating
systems).

3.18. Kernel sebagai non proses


Kernel sistem operasi adalah di luar proses, digambarkan pada gambar berikut :

Gambar 3.6 : Eksekusi kernel sebagai non-proses

Ketika proses running diinterupsi atau memanggila 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.

3.19. 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.
Pendekatan in idigambarkan pada gambar berikut :

Gambar 3.7 : Eksekusi dalam 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.

3.20. Sistem operasi sebagai kumpulan proses


Pendekatan ini mengimplementasikan sistem operasi sebagai kumpulan proses.
Pendekatan ini digambarkan pada gambar berikut :

Gambar 3.8: Eksekusi sistem operasi sebagai proses

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 :
a. Perancangan modular dapat diterapkan ke perancangan sistem operasi. Sistem operasi menjadi modul-modul dengan interface yang bersih dan minimal antar modul-modul itu.
b. Fungsi-fungsi sistem operasi tak kritis secara bagus dapat diimplementasikan sebagai proses-proses terpisah.
c. Mudah diterapkan pada lingkungan multiprocessor atau multicomputer dimana beberapa layanan sistem operasi ditaruh di pemroses-pemroses tertentu. Teknik ini akan meningkatkan kinerja.

3.21. 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.

0 comments:

Posting Komentar

 
Powered by Blogger