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