4 implementasi proses - · pdf file• manajemen memori • kepemilikan dan utilisasi...
TRANSCRIPT
4Implementasi 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
Berkas
Proses
Tabel-Tabel Memori
Tabel-Tabel Peralatan
Tabel-Tabel Berkas
Proses 0Proses 1Proses 2Proses 3
Tabel Proses
Proses n
Proses 0
Proses n
Citra Proses
Citra Proses
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 prosesdieksekusi 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 Proseske Proses yang Lain
PCB & Senarai Proses
• Tiap PCB berisi semua informasi mengenaiproses
• 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
Running
Ready
Blocked
PCB
Pengaksesan Informasi di PCB
• Tiap proses dilengkapi ID unik• Dua masalah utama proteksi PCB:
– Bug pada interrupt handler -> merusak PCB -> menghancurkankemampuan sistem mengelola proses2 yang diasosiasikan dg PCB itu.
– Perubahan rancangan struktur PCB berdampak pada sejumlahmodul sistem operasi yg memakai PCB
• Solusi : semua rutin SO melewati satu rutin khusus yaiturutin penanganan PCB dlm mengakses PCB.
• Tugas rutin ini memproteksi PCB & menjadi perantarapembacaan & penulisan PCB.
• Solusi I: Rutin penanganan PCB akan selalumenjaga agar interface tidak perlu harus diubah
• Solusi II: Interface terhadap rutin2 lain masihtetap dipertahankan walau rincian2 PCB telahdiubah
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 PenyebabPengalihan 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 -> prosesdialihkan 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 segeramemerintahkan utk mengambil page yg terdapat alamat ygdimaksud untuk dipindah ke memori utama
Trap• Interupsi karena terjadinya kesalahan/kondisi2
pengecualian (exception conditions) ygdihasilkan proses yg running, seperti usaha2 ilegal dalam mengakses berkas
• SO menentukan apakah kesalahan yg dibuatfatal? Jika YA, proses disingkirkan dan terjadilahpengalihan proses. Jika TIDAK, maka tergantungsifat kesalahan dan rancangan SO. Kemungkinanyg dilakukan adalah menjalankan prosedurpemulihan/memperingatkan pemakai
• Saat terjadi trap, mungkin terjadi pengalihanproses, 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 EksekusiSistem Operasi
• SO juga perangkat lunak, yaitu program yg perludieksekusi pemroses.
• Jika SO hanya kumpulan program dan dieksekusipemroses spt program lainnya, apakah SO jugamerupakan 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
Kernel
P0 P1 Pn
Dieksekusi dalamProses Pemakai
Fungsi-fungsi pengalihan proses(process switching functions)
Fungsi-fungsiSistemOperasi
Fungsi-fungsiSistemOperasi
Fungsi-fungsiSistemOperasi
P0 P1 Pn
Sistem Operasi SebagaiKumpulan Proses
Fungsi-Fungsi Pengalihan Proses(Process Switching Functions)
U0 U1 Un OS0 OS1 Uk