MANAJEMEN PROSES 1. Konsep Proses a. Definisi Proses Aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. b. Status Proses • New: Proses sedang dikerjakan/ dibuat. • Running: Instruksi sedang dikerjakan. • Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal). • Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor. • Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi. c. Proses Control Block Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) - juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik (Gambar 1), termasuk ini: • Pointer Keadaan proses: Keadaan mungkin, Nomor proses new, ready, running, waiting, halted, dan Program counter juga banyak lagi. • State proses Program Register Counter Batas memori mengindikasikan address dari perintah Daftar berkas selanjutnya proses ini. counter: untuk dijalankan untuk Yang telah dibuka ….. Gambar 1. PCB Pertemuan 4 1 • CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. • Register tersebut termasuk accumulator, index register, stack pointer, generalpuposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2). • Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada system memori yang digunakan oleh sistem operasi. • Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi. • Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang digunakan pada proses ini, suatu daftar open berkas dan banyak lagi. • PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apapun yang dapat bervariasi dari prose ke proses. Gambar 2. CPU Register Pertemuan 4 2 2. Konsep Penjadwalan Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Kriteria untuk mengukur dan optimasi kinerje penjadwalan : a. Adil (fairness) Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu. b. Efisiensi (eficiency) Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. c. Waktu tanggap (response time) Waktu tanggap berbeda untuk : • Sistem interaktif Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time. • Sistem waktu nyata Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time. d. Turn Around Time Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu. e. Throughput Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu. Pertemuan 4 3 Tujuan dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil CPU bekerja. a. Scheduling Queue Ketika proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini terdiri dari seluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap dan menunggu/ wait untuk mengeksekusi disimpan pada sebuah daftar bernama ready queue. Antrian ini biasanya disimpan sebagai daftar penghubung. Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir. Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam ready queue. Juga ada antrian lain dalam sistem. Ketika sebuah proses mengalokasikan CPU, proses tersebut berjalan/bekerja sebentar lalu berhenti, di interupsi, atau menunggu suatu kejadian tertentu, seperti penyelesaian suatu permintaan I/O. Pada kasus ini sebuah permintaan I/O, permintaan seperti itu mungkin untuk sebuah tape drive yang telah diperuntukkan, atau alat yang berbagi, seperti disket. Karena ada banyak proses dalam sistem, disket bisa jadi sibuk dengan permintaan I/O untuk proses lainnya. Maka proses tersebut mungkin harus menunggu untuk disket tersebut. Daftar dari proses yang menunggu untuk peralatan I/O tertentu disebut sebuah device queue. Tiap peralatan memiliki device queuenya sendiri. Jenis-jenis antrian penjadwalan adalah sebagai berikut : • Job Queue Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue. • Ready Queue Proses-proses yang ada di memori utama dan menunggu untuk dieksekusi diletakkan pada suatu list yang disebut dengan ready queu. • Device queue Deretan proses yang sedang menunggu peralatan I/O tertentu. Pertemuan 4 4 b. Schedulers Terdapat dua bentuk penjadwalan : • Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue. Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah. • Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut. Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori utama. Penjadwalan dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan. c. Context Switch Ketika CPU berpindah dari proses satu ke proses lainnya, sistem harus menyimpan status dari proses yang lama dan membuka state proses baru yang sudah disimpan. Contex switch adalah proses penyimpanan status proses dan mengambil status proses yang baru pada saat terjadi switching. Pada saat terjadi perpindahan proses, sistem tidak bekerja. Waktu context switch tergantung pada perangkat keras yang digunakan. 3. Operasi pada Proses a. Penciptaan proses Melibatkan banyak aktivitas, yaitu : • Memberi identitas proses • Menyisipkan proses pada senarai atau tabel proses • Menentukan prioritas awal proses • Menciptakan PCB • Mengalokasikan sumber daya awal bagi proses Pertemuan 4 5 Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan mengalokasikan ruang alamat proses. Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap : • Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses • utama yang berisi satu isian perproses. • Alokasikan ruang untuk proses. • PCB harus diinisialisasi. • Kaitan-kaitan antar tabel dan senarai yang cocok dibuat. • Bila diperlukan struktur data lain maka segera dibuat struktur data itu. b. Penghancuran proses Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu : • Sumber daya-sumber daya yang dipakai dikembalikan. • Proses dihancurkan dari senarai atau tabel sistem. • PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas). Pertemuan 4 6 Tabel 1. Alasan Penghancuran Proses Pertemuan 4 7 Tabel 1. Alasan Penghancuran Proses 4. Threads Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari Pertemuan 4 8 arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread. • Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread. • Model one to one: memetakan setiap user thread ke dalam satu kernel thread. berakhir. • Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin Pertemuan 4 9 5. Komunikasi Antar Proses Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori interaksi, yaitu : a. Proses-proses saling tidak peduli (independen) Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuan keduanya. Meski proses-proses tidak bekerja bersama, sistem operasi perlu mengatur persaingan diantara prosesproses itu dalam memperoleh sumber daya yang terbatas. Contoh : Terdapat dua aplikasi yang berusaha mengakses printer yang sama, bila kedua aplikasi benar-benar mengakses printer yang sama secara bersamaan, maka kedua proses akan memperoleh hasil yang tak dikehendaki. Sistem operasi harus mengatur pengaksesan-pengaksesan sumber daya agar tidak menyebabkan hasil yang tidak dikehendaki. b. Proses-proses saling mempedulikan secara tidak langsung Dimana proses-proses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu. c. Proses-proses saling mempedulikan secara langsung. Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas. 6. Buffering Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan: • Kapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan. • Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan Pertemuan 4 10 dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian. • Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok. Pertemuan 4 11