290 likes | 494 Views
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
E N D
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 Tabel-Tabel Memori Citra Proses Proses 0 Tabel-Tabel Peralatan Tabel-Tabel Berkas Tabel Proses Citra Proses 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.
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
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
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 P1 Pn Fungsi- fungsi Sistem Operasi Fungsi- fungsi Sistem Operasi Fungsi- fungsi Sistem Operasi Fungsi-fungsi pengalihan proses (process switching functions)
Sistem Operasi Sebagai Kumpulan Proses U0 U1 Un OS0 OS1 Uk Fungsi-Fungsi Pengalihan Proses (Process Switching Functions)