Process Control Block
PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
1. Pointer. merupakan peubah dinamis dimana suatu peubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program di eksekusi.
2. Status Proses. Status new, ready, running, waiting, terminated, dan juga banyak lagi.
3. Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
4. 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 .
5. 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.
6. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
7. Informasi status M/K. Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
A. Penjadwalan proses
Dalam pemroses tunggal, hanya satu proses yang dapat dijalankan pada saat tertentu, sedangkan yang lain harus menunggu CPU bebas dan dijadwal ulang. Multiprogramming merupakan cara untuk menjalankan proses setiap waktu sehingga memaksimalkan penggunaan CPU.
Penjadwalan merupakan salah satu fungsi dasar dari sistem operasi. Hampir semua sumber daya komputer dijadwalkan sebelum digunakan.
* Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU time untuk tasks yang berbeda-beda dalam sistem operasi.
* Untuk linux ada aspek lain yang penting dalam penjadwalan: seperti menjalankan dengan berbagai kernel tasks.
* Linux mempunyai dua algoritma penjadwalan yaitu
a. algoritma time-sharing untuk penjadwalan preemptive yang adil diantara sekian banyak proses.
b. algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.
3 Konsep Penjadwalan
* Decision Mode
*Priority Function
*Arbitration Rule
Algoritma Penjadwalan
1. First In First Out
Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap proses yang berada pada status ready dimasukkan ke dalam antrian
FIFO sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi terlebih dahulu.
Kelemahan dari algoritma ini:
a. Waiting time rata-ratanya cukup lama.
b. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu satu proses besar yang sedang dieksekusi oleh CPU.
Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.
2. Priority Scheduling
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses dengan nilai prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:
a. Batas waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses
Kelemahan pada penjadwalan prioritas adalah dapat terjadinya indefinite blocking (starvation) yaitu suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapatpros es lain yang memiliki prioritas lebih tinggi darinya. Solusi dari permasalahan ini adalah aging,
yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam antrian secara bertahap.
3. Last In First Out
4. Shortest Job Next Algoritma ini mendahulukan proses dengan CPU burst terkecil sehingga akan mengurangi waiting time rata-rata.
5. Shortest Remaining Time
6. Round Robin
Algoritma ini didesin untuk sistem time-sharing. Proses akan mendapat jatah sebesar time quantum dengan nilai quantum umumnya sebesar 10-100 ms. Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU (1/n), dan tak akan menunggu lebih lama dari (n-1)/q.
Permasalahan utama pada Round Robin adalah menentukan besarnya time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 time quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma First Come First Served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum.
7. Multilevel Feedback
Algoritma ini mirip sekali dengan algoritma Multilevel Queue. Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya.
Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.
Minggu, 20 Maret 2011
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar