Implementasi Proses

advertisement
4
Implementasi Proses
Implementasi Proses
• Tiap proses -> state proses -> dicatat SO ->
beragam tabel/senarai
– Tabel memori
– Tabel I/O
– Tabel berkas
– Tabel proses
Tabel Memori
• Menjaga keutuhan antara memori utama &
memori sekunder
• Informasi:
– Alokasi memori utama yang dipakai proses
– Alokasi memori sekunder yang dipakai
proses
– Atribut segmen memori utama dan
sekunder
– Informasi2 lain yang digunakan utk
pengelolaan memori
Tabel I/O
• Pada waktu digunakan proses tertentu ->
dijaga agar tidak digunakan proses lain
• Informasi:
– Status operasi I/O
– Lokasi memori utama
– Transfer data dengan perangkat I/O
Tabel Berkas
• Berisi informasi mengenai ekstensi berkas,
lokasi pada memori sekunder, status saat itu
& atribut berkas lainnya
Tabel Proses
• Mengelola informasi proses pada SO
• Proses -> memori utama -> lokasi ruang
alamat tertentu/tersendiri ->
• Ruang alamat = process image (citra
proses)
– Data pemakai
– Program pemakai
– Stack sistem
– PCB (Program Control Block)
Struktur Umum Tabel Kendali
Memori
Peralatan
Tabel-Tabel Memori
Citra Proses
Tabel-Tabel Peralatan
Proses 0
Berkas
Tabel-Tabel Berkas
Proses
Tabel Proses
Proses 0
Proses 1
Citra Proses
Proses 2
Proses 3
Proses n
Proses n
Process Control Block (PCB)
• SO -> banyak informasi -> masing-masing
proses -> berada di PCB
• Tiga kelompok elemen informasi pada PCB:
– Identifikasi proses
– Informasi status pemroses
– Informasi kendali proses
• Identifier numerik meliputi:
– Identifier proses
– Identifier proses yang menciptakan
– Identifier pemakai
Informasi Kendali Proses
• Informasi penjadwalan dan status
– Status proses
– Prioritas
– Informasi berkaitan dengan penjadwalan
– Kejadian
• Penstrukturan data
• Komunikasi antarproses
• Kewenangan proses
• Manajemen memori
• Kepemilikan dan utilisasi resource
– Berkas yang dibuka
– Pemakaian pemroses
– Pemakaian sumber daya lainnya
Informasi Status Pemroses
• Terdiri dari register-register pemroses
• Ketika running -> berada di register-register
• Ketika proses diinterupsi -> semua informasi
disimpan -> dikembalikan ketika proses
dieksekusi kembali
Isi Struktur Citra Proses
•
•
•
•
•
PCB
Stack pemakai (user stack)
Ruang alamat proses eksklusif
Ruang alamat -> dipakai bersama proses lain
Lihat gambar.
Process Control Block (PCB)
PCB
• Status proses: new, ready, running, waiting, dll
• Program Counter: stack yg berisi alamat dari
instruksi selanjutnya untuk dieksekusi
• CPU register
• Informasi manajemen memori
• Informasi pencatatan
• Informasi status I/O
CPU Berpidah-Pindah dari Satu Proses
ke Proses yang Lain
PCB & Senarai Proses
• Tiap PCB berisi semua informasi mengenai
proses
• Lihat gambar
• Hanya ada satu PCB berada pada senarai
running (sistem multiprogramming)
– Proses selesai -> dijalankan operasi terminasi
sehingga PCB tak ada lagi
– Proses blocked -> PCB dipindah ke senarai blocked
– Proses timeout -> PCB dipindah ke senarai ready
PCB
Running
Ready
Blocked
Pengaksesan Informasi di PCB
• Tiap proses dilengkapi ID unik
• Dua masalah utama proteksi PCB:
– Bug pada interrupt handler -> merusak PCB -> menghancurkan
kemampuan sistem mengelola proses2 yang diasosiasikan dg
PCB itu.
– Perubahan rancangan struktur PCB berdampak pada sejumlah
modul sistem operasi yg memakai PCB
• Solusi : semua rutin SO melewati satu rutin khusus yaitu
rutin penanganan PCB dlm mengakses PCB.
• Tugas rutin ini memproteksi PCB & menjadi perantara
pembacaan & penulisan PCB.
• Solusi I: Rutin penanganan PCB akan selalu
menjaga agar interface tidak perlu harus diubah
• Solusi II: Interface terhadap rutin2 lain masih
tetap dipertahankan walau rincian2 PCB telah
diubah
Pengendalian Proses
• Beberapa Masalah Pengalihan Proses:
– Kejadian2 apa saja pemicu pengalihan proses?
– Terdapatnya perbedaan antara pengalihan proses
(process-switching) dan pengalihan konteks
(context-switching).
Kejadian-Kejadian Penyebab
Pengalihan Proses
• Interupsi Sistem
• Trap
• Supervisor Call
Interupsi Sistem
• Disebabkan oleh kejadian eksternal dan tak bergantung
proses yang saat itu sedang running
• Contoh: selesainya operasi I/O.
• Tipe-tipe interupsi
– Interupsi Clock (clock interrupt)
• SO (penjadwal) menentukan apakah proses yg sedang running
telah mengeksekusi selama jatah waktunya. Jika YA -> proses
dialihkan ke status ready -> proses lain dijadwalkan running
– Interupsi I/O (I/O interrupt)
• Peralatan I/O melakukan interupsi meminta layanan SO
– Page/Memory Fault
• Pemroses menemukan pengacuan alamat memori maya yg
tdk terdapat di memori utama (fisik). SO segera
memerintahkan utk mengambil page yg terdapat alamat yg
dimaksud untuk dipindah ke memori utama
Trap
• Interupsi karena terjadinya kesalahan/kondisi2
pengecualian (exception conditions) yg
dihasilkan proses yg running, seperti usaha2
ilegal dalam mengakses berkas
• SO menentukan apakah kesalahan yg dibuat
fatal? Jika YA, proses disingkirkan dan terjadilah
pengalihan proses. Jika TIDAK, maka tergantung
sifat kesalahan dan rancangan SO. Kemungkinan
yg dilakukan adalah menjalankan prosedur
pemulihan/memperingatkan pemakai
• Saat terjadi trap, mungkin terjadi pengalihan
proses, mungkin pula me-resume proses itu.
Supervisor Call
• Panggilan meminta/mengaktifkan bagian2 SO
• Contoh: proses pemakai running meminta
layanan I/O seperti membuka berkas
Tahap-Tahap Pengalihan Proses
• Terjadi jika proses yg running beralih menjadi status lain
(ready, blocked)
• Langkah-langkah yg terlibat dlm pengalihan proses:
– Simpan konteks pemroses, termasuk register PC, dan register2
lain
– Perbarui PCB proses yg running.
– Pindahkan PCB proses ke senarai yg cocok
– Pilih satu proses lain utk dieksekusi sesuai jadwalnya
– Perbarui PCB proses yg dipilih
– Perbarui struktur2 data manajemen memori
– Kembalikan konteks pemroses dg konteks simpanan yg
memberitahu konteks proses terakhir saat dialihkan tadi.
Pelaksanaan Eksekusi
Sistem Operasi
• SO juga perangkat lunak, yaitu program yg perlu
dieksekusi pemroses.
• Jika SO hanya kumpulan program dan dieksekusi
pemroses spt program lainnya, apakah SO juga
merupakan proses?
• Jawabannya bergantung pada struktur SO yang dipilih.
Antara lain:
– SO sbg kernel tersendiri berbeda dg proses2 lain (kernel sebagai
non-proses)
– Fungsi2 SO dieksekusi dalam proses pemakai
– SO juga sebagai kumpulan proses (process-based operating
system)
Kernel Sebagai Non-Proses
P0
P1
Pn
Kernel
Dieksekusi dalam
Proses Pemakai
P0
Fungsifungsi
Sistem
Operasi
P1
Pn
Fungsifungsi
Sistem
Operasi
Fungsifungsi
Sistem
Operasi
Fungsi-fungsi pengalihan proses
(process switching functions)
Sistem Operasi Sebagai
Kumpulan Proses
U0
U1
Un
OS0
OS1
Fungsi-Fungsi Pengalihan Proses
(Process Switching Functions)
Uk
Download