Proses merupakan semua aktifitas CPU. Proses didefinisikan sebagai program yang sedang dieksekusi. Proses bukan hanya merupakan 'kode program' melainkan meliputi beberapa aktivitas yg bersangkutan seperti isi dari register processor, data section, menyimpan suatu proses, program counter dan stack.
Program sendiri bukanlah sebuah proses, program merupakan suatu entitas pasif sebagai contoh isi dari sebuah berkas dalam disket. Sedangkan sebuah proses adalah suatu entitas aktif,dengan sebuah counter yang menyimpan alamat instruksi selanjutnya akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.
Status Proses
Gambar 1. diagram status proses
Sebuah proses memiliki tiga status utama :
1. Running , status yang dimiliki saat instruksi dari sebuah proses dieksekusi
2. Waiting , status yang dimiliki saat proses menunggu suatu event, seperti penyelesaian I/O
3. Ready , status yang dimiliki saat proses siap untuk dieksekusi oleh prosesor
2. Waiting , status yang dimiliki saat proses menunggu suatu event, seperti penyelesaian I/O
3. Ready , status yang dimiliki saat proses siap untuk dieksekusi oleh prosesor
Juga terdapat dua status tambahan, yaitu saat pembentukan dan terminasi :
1. New , status yang dimiliki pada saat proses baru saja dibuat.
2. Terminated , status yang dimiliki pada saat proses telah selesai dieksekusi.
2. Terminated , status yang dimiliki pada saat proses telah selesai dieksekusi.
Ada 3 kemungkinan bila sebuah proses memiliki status running :
1. Jika program telah selesai dieksekusi suatu proses berubah menjadi TERMINATED.
2. Jika waktu yang disediakan oleh OS untuk proses tersebut telah habis maka akan terjadi interrupt dan proses berstatus READY.
3. Jika suatu event terjadi saat proses dieksekusi (seperti ada request I/O), maka proses tersebut akan menunggu event tersebut dan proses berstatus WAITING.
Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
2. Menunda atau melanjutkan proses.
Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
3.Menyediakan mekanisme untuk proses sinkronisasi.
Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
4. Menyediakan mekanisme untuk proses komunikasi.
Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
5. Menyediakan mekanisme untuk penanganan deadlock.
Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti :
1. Membuat dan menghapus proses pengguna dan sistem proses.Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
2. Menunda atau melanjutkan proses.
Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
3.Menyediakan mekanisme untuk proses sinkronisasi.
Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
4. Menyediakan mekanisme untuk proses komunikasi.
Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
5. Menyediakan mekanisme untuk penanganan deadlock.
Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.
Process Control Block
Gambar 2. Process Control Block
Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB), juga disebut sebuah control block ditunjukkan dalam Gambar 2, Process Control Block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
1. Status Proses. Status new, ready, running, waiting, halted, dan juga banyak lagi.
2. Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi oleh proses ini.
2. Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi oleh proses ini.
3. CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya. Bila terjadi interrupt status memori disimpan dan proses dilanjutkan.
4. Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
5. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
4. Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
5. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
6. Informasi status I/O. Informasi ini berisikan daftar dari perangkat I/O yang digunakan untuk proses ini, dan daftar file-file yang diakses.
Konsep dari Multiprogramming :
- Suatu proses akan menggunakan CPU sampai proses tersebut dalam status “wait” (misal : meminta I/O) selesai
- Pada saat “wait” maka CPU akan menganggur, untuk mengatasi hal ini maka CPU dialihkan ke proses lain yang berstatus “ready”
Tujuan dari Multiprogramming adalah :
- Untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU untuk memperkecil waktu idle
Untuk Sistem yang bersifat Uniprogramming:
- Hanya ada 1 proses yang dapat berjalan setiap waktunya, jika ada proses yang lebih dari satu, maka proses yang lain harus menunggu sampai CPU bebas dan siap untuk dijadwalkan kembali
QUEUE SCHEDULING
Queue Scheduling dapat diklasifikasikan dalam 3 kategori :
SCHEDULER (PENJADWAL)Sistem operasi harus memilih dan memproses antrian-antrian berdasarkan kategorinya, dimana proses seleksinya dilakukan oleh scheduler yang tepat
Ada 3 tipe Scheduler :
1. Long Term Scheduler (Job Scheduler)
• Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi
• Long Term Scheduler mengeksekusi lebih jarang, dibutuhkan beberapa menit untuk pembuatan proses baru dalam sistem
• Long Term Scheduler maka mengontrol jumlah proses dalam memori (degree of multiprogramming)
• Jika degree of multiprogramming stabil maka tingkat rata-rata penciptaan proses harus sama dengan tingkat rata-rata proses meninggalkan sistem
2. Short Term Scheduler (CPU Scheduler)
• Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin
• Sort Term Scheduler maka lebih sering dipanggil (hanya dalam waktu milisecond)
• Karena durasi yang pendek antara eksekusi, short Term Scheduler harus sangat cepat
3. Medium Term Scheduler
Sumber :
1. Job Queue : Antrian berisi semua proses yang masuk dalam sistem
2. Ready Queue: Proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi
3. Device Queue: Deretan proses yang sedang menunggu peralatan I/O , tiap peralatan I/O memiliki device queue
• Setiap antrian disimpan sebagai linked list dan berisi pointer awal dan akhir PCB.
• Tiap PCB memiliki suatu pointer menunjuk ke proses selanjutnya pada antrian
• Proses baru mula-mula diletakkan di ready queue dan menunggu sampai dipilih untuk dieksekusi (dispatched) CPU
• Ketika proses dialokasikan CPU dan dieksekusi, terjadi satu dari event berikut : Proses meminta I/O dan kemudian ditempatkan pada I/O queue, Proses membuat sub proses baru dan menunggu diterminasi, Proses dihapus dari CPU karena diinterrupt dan dikembalikan ke ready queue.
SCHEDULER (PENJADWAL)
Ada 3 tipe Scheduler :
1. Long Term Scheduler (Job Scheduler)
• Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi
• Long Term Scheduler mengeksekusi lebih jarang, dibutuhkan beberapa menit untuk pembuatan proses baru dalam sistem
• Long Term Scheduler maka mengontrol jumlah proses dalam memori (degree of multiprogramming)
• Jika degree of multiprogramming stabil maka tingkat rata-rata penciptaan proses harus sama dengan tingkat rata-rata proses meninggalkan sistem
2. Short Term Scheduler (CPU Scheduler)
• Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin
• Sort Term Scheduler maka lebih sering dipanggil (hanya dalam waktu milisecond)
• Karena durasi yang pendek antara eksekusi, short Term Scheduler harus sangat cepat
3. Medium Term Scheduler
Sumber :