IV. Proses-proses Terdapat beberapa definisi proses, diantaranya proses sebagai program yang sedang dalam keadaan eksekusi Proses membutuhkan sumber daya seperti CPU time, memori, file dan I/O. Proses yang khusus berhubungan dengan kegiatan penjadwalan sering disebut thread. Dalam perkembangannya proses dan thread dibedakan Relasi Thread terhadap proses (1:1, M:1, 1:M, M:M) Jika ditinjau dari sudut pandang proses, sistem operasi harus mampu: Melanjutkan tanpa henti (interleave) beberapa proses Mengalokasikan sumber daya untuk proses Mendukung komunikasi antar proses dan penciptaan proses
Keadaan Proses (Process State) Ditinjau dari sudut pandang processor proses-proses dieksekusi dengan mengubah-ubah nilai pada register PC. Misal pada main memory terdapat program yang terload seperti pada gambar berikut. Tanpa virtual memory. Dispatcher adalah program kecil yang memindahkan processor dari suatu proses ke proses lain dengan mengubah-ubah nilai Program Counter
Sekarang marilah kita trace proses-proses ini Proses B setelah berakhir memanggil operasi I/O Prosesor maksimal mengeksekusi 6 siklus instruksi Setelah itu prosesor di interrupt diikuti dengan time out dan eksekusi kode dispatcher
Model proses dua keadaan Dari contoh di atas terdapat dua keadaan proses yaitu di eksekusi oleh prosesor atau tidak. Jadi dapat dikatakan terdapat dua keadaan (state) yaitu Running dan Not-running Proses yang diinterrupt akan masuk ke antrian (queueing)
Alasan penciptaan proses (Process Creation)
Alasan penghentian proses (Process Termination)
Model proses lima keadaan New : Proses baru saja dibuat Ready : Proses yang siap dieksekusi menunggu kesempatan Blocked : Proses tidak dapat dieksekusi karena menunggu suatu kejadian terjadi misal menunggu I/O selesai Running : Proses sedang dieksekusi Exit : Proses sudah selesai
Multiple Blocked Queues
Proses Swapping Jika main memory sudah penuh dan banyak proses yang berada pada keadaan block atau ready. Maka proses tersebut dapat disimpan ke dalam virtual memory yaitu disk atau hard disk Keadaan ini dinamai suspend. Terdapat block suspend dan ready suspend
Struktur pengontrolan proses Untuk mengontrol proses dan sumber daya, sistem operasi menyusun suatu tabel pengontrolan yang berisi status/keadaan dari proses dan sumber daya. Tabel untuk proses disebut process image yang berisi : - User data - User program - System stack - Process Control Block: berisi attribut dari proses
Process Control Block (PCB) berisi : - Process identification - Processor state information - Process control information
Peranan Process Control Block PCB berperan penting di sistem operasi. Tiap PCB berisi informasi mengenai proses yang diperlukan sistem operasi. PCB dibaca dan/atau dimodifikasi oleh hampir semua modul sistem operasi, seperti modul-modul yang terlibat pada penjadwalan, alokasi sumber daya, pemrosesan interrupt, monitoring dan analisis kinerja. Kumpulan PCB mendefinisikan status / keadaan dari sistem operasi. Sejumlah rutin di Sistem operasi perlu mengakses informasi di PCB. Ijin mengakses tabel informasi tidak sulit, karena tiap proses dilengkapi dengan ID unik yang digunakan sebagai index table pointer untuk PCB. Tapi masalahnya bukan pengaksesan tapi proteksinya
Dua masalah utama proteksi terhadap PCB - Bug (kesalahan pemrograman) pada rutin tunggal, misalnya interrupt handler dapat merusak PCB sehingga dapat mengakibatkan hancurnya kemampuan sistem mengelola proses - Perubahan rancangan struktur dan semantik dari PCB dapat berdampak ke sejumlah modul sistem operasi yang memakai PCB Cara mengatasinya dengan membuat semua routine yang berhubungan dengan proses harus melewati routine handler khusus untuk PCB Routine Handler PCB ini melindungi PCB dari pembacaaan dan penulisan.
Process Switching Pengalihan dari suatu proses ke proses lain dengan membuat proses yang running menjadi state ready atau block Kejadian yang menyebabkan Process Switching : - Interrupt * Clock interrupt : Proses yang running akan dibuat menjadi ready bila telah melampaui waktu tertentu * I/O Interrupt : alat I/O meminta layanan * Memory fault: Prosesor menemui alamat virtual memory yang dibutuhkan tidak ada di main memory - Trap : interrupt akibat kesalahan atau kondisi pengecualian Jika kesalahan fatal, proses akan dikeluarkan - Supervisor call
Context Switching Pada saat tidak terjadi interrupt (ingat kembali siklus interrupt) processor akan mengerjakan siklus fetch instruksi di dalam proses yang lagi running dengan melakukan context switching : - Processor menyimpan konteks program yang sedang diekseskusi ke stack - Processor menset register PC ke alamat awal dari program interrupt handler