SISTEM OPERASI
Konsep Proses • Proses adalah suatu program yang sedang diesekusi (running) • Pada saat proses berlangsung : – Program counter • Tempat untuk menyimpan alamat suatu proses yang akan diesekusi selanjutnya
– Stact / Heap • Tempat penyimpanan temporary data yang dibutuhkan selama program diesekusi
– Data section • Berisi variable global dari suatu proses
– Text • Berisi kode programnya
Diagram Status Proses Baru (New)
admitted
interrupt
Siap (Ready)
I/O or event completion
exit
Selesai (Terminated)
Jalan (Run)
Scheduler dispatch Tunggu (Wait)
I/O or event wait
Proses Control Block (PCB) • Sebuah PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini: ‐ Status/Keadaan proses ‐ waiting, halted, dan juga banyak lagi ‐ Program counter ‐ CPU register ‐ Informasi managemen memori ‐ Informasi pencatatan ‐ Informasi status I/O
Tiga kelompok Informasi di PCB 1. Informasi identifikasi Proses Berisikan informasi‐informasi yang berkaitan dengan identitas proses yang unik.
2. Informasi status pemroses Berisikan informasi‐informasi yang esensinya merupakan nilai/isi dari register‐register pemroses.
3. Informasi kendali proses Berisikan informasi‐informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.
Operasi‐operasi Proses (1) A. Pembuatan Proses (1) • Ada beberapa aktifitas berkenaan dengan pembuatan proses, antara lain : – – – – –
Memberi identitas (nama) pada proses yang dibuat. Menyisipkan proses pada list proses atau tabel proses Menentukan prioritas awal proses Membuat PCB Mengalokasikan Resource awal bagi proses tersebut.
Operasi‐operasi Proses (2) A. Pembuatan Proses (2) • Ada beberapa kejadian yang menyebabkan pembuatan proses baru, antara lain: – Pada lingkungan batch sebagai tambahan atas pemberian job – Pada lingkungan interaktif, pada saat user baru saja logon – Pemberian layanan oleh sistem operasi – Proses menciptakan proses lain (child)
Operasi‐operasi Proses (3) B. Penghentian Proses • Ada beberapa alasan yang menyebabkan suatu proses harus dihentikan, antara lain : – Proses memang sudah selesai mengerjakan tugasnya (selesai secara normal). – Prose berjalan melebihi batas waktu yang telah diberikan kepadanya. – Memori tidak tersedia – Proses mencoba untuk mengakses kawasan memori yang tidak diijinkan untuk diakses. – Terjadi kesalahan karena pelanggaran proteksi. – Terjadi kesalahan penghitungan. – Proses menunggu terlalu lama.
Operasi‐operasi Proses (4) C. Proses‐Proses yang saling bekerjasama • Ada empat alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif: 1. 2. 3. 4.
Pembagian informasi Kecepatan penghitungan/ komputasi Modularitas kenyamanan
Komunikasi antar Proses (1) 1. Komunikasi Langsung • Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu: – Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan. – Sebuah jaringan adalah terdiri dari penggabungan dua proses. – Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
Komunikasi antar Proses (2) 2. Komunikasi Tidak Langsung • Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut: – Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox. – Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses. – Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda‐beda, dimana setiap link berhubungan pada satu mailbox.
Komunikasi antar Proses (3) • Misalkan terdapat proses P1, P2 dan P3 yang semuanya share mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing‐masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan yang dikirim P1? Jawabannya tergantung dari jalur yang kita pilih: – Mengizinkan sebuah link berasosiasi dengan paling banyak 2 proses. – Mengizinkan paling banyak satu proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation). – Mengizinkan sistem untuk memilih secara mutlak proses mana yang akan menerima pesan (apakah itu P2 atau P3). Sistem mungkin mengidentifikasi penerima kepada pengirim.
Komunikasi antar Proses (4) • Sistem operasi harus memiliki mekanisme yang mengizinkan proses untuk melakukan hal‐hal dibawah ini: – Membuat mailbox baru. – Mengirim dan menerima pesan melalui mailbox. – Menghapus mailbox.
Implementasi Proses • Tabel‐tabel proses 1. Tabel informasi manajemen memori 2. Tabel informasi manajemen masukan/keluaran 3. Tabel informasi sistem file 4. Tabel proses
Implementasi Proses 1. Tabel informasi manajemen memori Untuk menjaga keutuhan memori utama dan memori sekunder. ‐ Alokasi memori utama yang dipakai proses ‐ Alokasi memori sekunder yang dipakai proses (bila manajemen memori dengan swapping) ‐ Atribut segmen memori utama dan sekunder ‐ Informas‐informasi lain yang digunakan untuk pengelolaan memori
Implementasi Proses 2. Tabel informasi manajemen Masukan/Keluaran Tabel ini untuk mengelola perangkat masukan/keluaran. Pada satu saat, perangkat masukan/keluaran digunakan proses tertentu. Dengan demikian perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi masukan/keluaran dan alokasi memori utama yang digunakan untuk tranfer data.
Implementasi Proses 3. Tabel informasi Sistem File Tabel ini berisi informasi mengenai ekstensi file, lokasi pada memori sekunder, statu saat itu dan menyimpan atribut‐atribut file lainnya.
4. Tabel informasi Sistem File Tabel proses mengelola informasi proses di sistem operasi, lokasinya di memori.
Pengalihan Proses • Pada suatu saat, proses running diinterupsi dan sistem operasi memberi proses lain state running dan menggilir kendali ke proses itu. • Dalam hal ini muncul beberapa masalah, yaitu: 1. Kejadian‐kejadian apa yang memicu alih proses? 2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process ‐switching) dan alih konteks (context‐ switching). 3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya dalam alih proses?
Kejadian‐kejadian Penyebab Pengalihan Proses • Pengalihan proses terjadi jika proses yang running beralih menjadi state lain (ready, blocked, dan sebagainya) kemudian sistem. operasi membuat perubahan‐perubahan berarti terhadap lingkungan. • Kejadian‐kejadian yang menyebabkan terjadinya alih proses adalah: 1. Interupsi sistem. 2. Trap. 3. Supervisor call.
Interupsi Sistem • Interupsi sistem disebabkan oleh kejadian external dan tak bergantung proses yang saat itu sedang running • Tipenya 1. Interupsi clock 2. Interupsi I/O 3. Page/memory fault
Interupsi Clock (Clock Interrupt) • Sistem operasi (penjadwal) menentukan apakah proses yang sedang running telah mengeksekusi selamajatah waktunya. • Jika telah mencapai jatahnya maka proses dialihkan ke state ready dan proses lain dijadwalkan running.
Interupsi Masukan/Keluaran (I/0 Interrupt) • Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta layanan sistem operasi. • Sistem operasi segera menentukan aksi‐aksi masukan/keluaran yang harus dilakukan.
Page/memory fault • Pemroses menemui pengacuan alamat memori maya yang tidak terdapat di memori utama (fisik). • Sistem operasi segera memerintahkan untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.
TRAP • Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam mengakses file.
Supervisor call • Supervisor call yaitu panggilan meminta atau mengaktifkan bagian sistem operasi
Langkah‐langkah yang terlibat dalam Pengalihan Proses 1. Simpan konteks pemroses, termasuk register PC dan register‐ register lain. 2. Perbarui PCB proses yang running. 3. Pindahkan PCB proses ke senarai yang cocok (ready, blocked, dan sebagainya). 4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan. 5. Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running. 6. Perbarui struktur‐struktur data manaJemen memori. 7. Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat dialihkan dari state running.