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