Deskripsi dan Kontrol Proses (Pertemuan ke-3) Agustus 2010
Pokok Bahasan Pokok Bahasan: Deskripsi dan Kontrol Proses Sub Pokok Bahasan: Konsep proses Elemen-elemen proses Model proses 2 status, 5 status, dan 6 status TIU: Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses TIK: Mahasiswa dapat menjelaskan konsep proses Mahasiswa dapat menjelaskan elemen-elemen proses Mahasiswa dapat menjelaskan setiap status pada model proses 2 status, 5 status, dan 6 status
Sub Pokok Bahasan: Konsep proses: Definisi proses Status proses
Tugas OS Terhadap Proses Mengeksekusi banyak proses secara interleave (selang-seling) agar utilisasi prosesor maksimal dan response time setiap proses masih bisa diterima Menyediakan resource bagi setiap proses Mendukung komunikasi antar proses dan penciptaan proses baru oleh user
Konsep-Konsep Sebelumnya Platform komputer terdiri dari sekumpulan resource hardware Program aplikasi komputer dibuat untuk melakukan beberapa task (pekerjaan) Sangatlah tidak efisien jika program aplikasi dibuat hanya khusus bagi platform hardware tertentu Sistem operasi harus nyaman dan aman digunakan serta mempunyai banyak fitur dan interface yang konsisten Sistem operasi dapat memberikan gambaran resource secara uniform (seragam) sehingga dapat diminta dan diakses oleh program aplikasi
Mengapa Eksekusi Proses Harus Diatur ? Agar resource selalu tersedia bagi banyak aplikasi Agar prosesor dapat digunakan oleh banyak aplikasi secara bergantian Agar prosesor dan I/O device dapat digunakan secara efisien
Apakah Proses itu ? Program yang dieksekusi Program yang sedang berjalan di komputer Entitas yang dapat diberikan kepada prosesor untuk dieksekusi Sebuah aktifitas yang sangat dipengaruhi oleh hasil eksekusi sebelumnya, status saat ini, dan sejumlah resource sistem yang tersedia
Apa Saja Elemen Proses yang Sedang Running ? (1) Identifier Identitas unik untuk membedakan suatu proses dengan proses lainnya State Status (kondisi) suatu proses (sedang dieksekusi, sedang diblok, dll) Priority Prioritas suatu proses terhadap proses yang lain Program counter Alamat instruksi berikutnya yang akan dieksekusi Memory pointers Pointer yang menunjuk pada alamat memori kode program dan data yang berhubungan dengan proses dan blok memori yang di-shared dengan proses lain (jika ada)
Apa Saja Elemen Proses yang Sedang Running ? (2) Context data Data yang terdapat pada register prosesor ketika suatu proses sedang dieksekusi I/O status information Informasi tentang permintaan terhadap I/O device yang belum terpenuhi (misal akses ke harddisk), daftar file yang sedang digunakan oleh proses, dll Accounting information Informasi tentang jumlah waktu prosesor yang telah digunakan, jumlah waktu proses, batas waktu proses, nomor account, dsb.
Process Control Block (PCB) (1) Struktur data yang menyimpan elemen-elemen proses Dibuat dan diatur oleh sistem operasi Mendukung adanya multi proses Bersama-sama dengan kode program dan data yang diperlukan membentuk sebuah proses Proses = PCB + kode program + data yang diperlukan
Process Control Block (PCB) (2) Sebagian isi PCB:
Agenda: Konsep proses: Definisi proses Status proses
Status Proses Status proses merupakan kondisi suatu proses (setiap saat setiap proses mempunyai sebuah kondisi) Sebuah kondisi bisa dimiliki oleh banyak proses Trace proses: Adalah daftar urut-urutan alamat memori suatu proses yang telah dieksekusi Program dispatcher: Bagian dari sistem operasi yang mengatur giliran pemanfaatan prosesor kepada suatu proses ke proses yang lain
Contoh Trace Proses Sedang mengakses I/O wait
Contoh Eksekusi Proses (1) Asumsi: tidak ada memori virtual semua proses ditaruh di memori
Contoh Eksekusi Proses (2) Proses A Dispatcher Proses B Proses C Gabungan trace 3 buah proses: Dilihat dari sisi prosesor
Contoh Eksekusi 3 buah Proses
Pembentukan Proses Siapa yang membentuk proses ? Sistem operasi Setiap proses dilengkapi dengan PCB Apa yang dapat menyebabkan terbentuknya proses baru ? Masuknya job baru (program aplikasi) Pada model batch system: proses terbentuk akibat job baru (berupa baris-baris program) yang ditulis pada tape magnetic atau harddisk yang sedang dieksekusi Log on dari user Pada sistem interaktif: proses terbentuk ketika user melakukan log on pada sistem Sebagai bentuk layanan OS kepada program aplikasi Misal: Ada program aplikasi yang perlu mencetak ke printer OS membentuk proses yang mengatur printer Dibentuk oleh proses lain (process spawning) Parent process = proses induk = proses yang membentuk proses lain Child process = proses anak = proses yang dibentuk oleh proses induk Misal: Print server atau file server akan selalu membentuk proses baru setiap ada permintaan dari client
Apa Penyebab Terminasi Proses ? (1) Proses telah selesai secara normal: Model batch job: terdapat instruksi halt yang menandakan proses telah selesai Sistem interaktif: proses di-close oleh user (close, log off, turn off, dsb) Jatah waktu telah habis: Total waktu sejak proses dibentuk Total waktu proses aktif Total waktu sejak user memberikan input Dsb Memori tidak tersedia: Proses membutuhkan memori lebih besar tetapi tidak terpenuhi Bounds violation: Proses mencoba mengakses lokasi memori proses lain
Apa Penyebab Terminasi Proses ? (2) Protection error: Proses mencoba menggunakan resource (file) yang tidak boleh diakses Misal: mencoba menulis pada file dengan atribut read only Arithmatic error: Kesalahan komputasi, misal division by zero Time overrun: Proses telah menunggu melebihi batas waktu yang telah ditentukan I/O failure: Terjadi kesalahan pada saat mengakses I/O Misal: Tidak dapat menemukan file yang dicari Gagal membaca/menulis file sesudah mencoba beberapa kali (akibat adanya bad sector atau membaca data dari printer)
Apa Penyebab Terminasi Proses ? (3) Instruksi invalid: Proses mencoba mengeksekusi instruksi yang tidak ada (akibat pencabangan mengarah pada area data) Privileged instruction: Proses mencoba menggunakan instruksi yang disediakan khusus bagi sistem operasi (misal perintah ke I/O) Kesalahan data Tipe data salah atau data tidak diinisialisasi Ada intervensi dari operator atau OS Dilakukan pada saat terjadi deadlock (hang) Proses induk (parent) diterminasi Jika proses induk diterminasi proses semua proses anaknya ikut terterminasi Diterminasi proses induk Proses induk berhak untuk melakukan terminasi terhadap proses anaknya
Model Proses Proses dengan 2 status: Proses dengan 5 status: Running Not running Proses dengan 5 status: New Ready Exit Blocked Proses dengan 6 status: Proses dengan 5 status + Suspend Proses dengan 7 status: Proses dengan 5 status + Ready/Suspend + Blocked/Suspend
Model Proses Dengan 2-Status (1) Merupakan model proses paling sederhana Setiap proses akan selalu berada pada salah satu dari 2 status berikut: Running Not-running
Model Proses Dengan 2-Status (2) Apa yang dilakukan OS ? OS membentuk proses baru dilengkapi dengan PCB untuk proses tersebut Masukkan proses baru ke sistem: Jika tidak ada proses yang sedang Running Proses langsung diberi status Running langsung dieksekusi Jika ada proses yang sedang Running masukkan proses dengan status Not-running Jika proses yang running ter-interrupt, maka: OS menjalankan program dispatcher untuk memilih proses berikutnya yang akan dieksekusi Masukkan proses tersebut ke status Not-running
Model Antrian Pada Proses Dengan 2-Status Diagram antrian proses dengan 2-status: Hanya digunakan sebuah antrian di dalam antrian terdapat berbagai macam status proses (siap running, ter-blok, menunggu I/O, dll) Kelemahan: Pemilihan proses selanjutnya yang akan dieksekusi tidak cukup hanya dengan algoritma FIFO Dispatcher harus mencari proses yang siap running diantara proses-proses yang lain yang terblok karena sedang menunggu hasil I/O Butuh algoritma yang lebih rumit
Model Proses Dengan 5-Status Proses yang sedang antri dikelompokkan menjadi 2: Proses yang siap running/ready (misal terhenti karena time out) Proses yang ter-blok (misal butuh memori lebih besar, menunggu I/O device) Terminate
Nama Status pada proses dengan 5-status (1) New: Status untuk proses yang baru saja terbentuk Misal: log on dari user, buka MS-word, dll Program dan data tidak langsung ditaruh ke memori, jika: Jumlah proses yang sedang ditangani sudah maksimum agar performansi sistem terjaga Memori tidak mencukupi Ready: Proses yang siap untuk dieksekusi Sudah berada di memori
Nama Status pada proses dengan 5-status (2) Running: Proses sedang dieksekusi Dalam satu saat hanya satu proses yang boleh running (uniprosesor) Blocked: Proses yang terpaksa berhenti karena sedang menunggu suatu event terjadi Misal: proses yang sedang menunggu selesainya aktifitas di I/O Exit: Proses yang sudah selesai (keluar dari daftar proses yang dapat dieksekusi) Penyebab: program sudah selesai atau dibatalkan
Model Proses Dengan 5-Status Proses yang sedang antri dikelompokkan menjadi 2: Proses yang siap running/ready (misal terhenti karena time out) Proses yang ter-blok (misal butuh memori lebih besar, menunggu I/O device) Terminate
Perpindahan Status Untuk Proses 5-Status (1) Null New: Pembentukan proses baru New Ready: Penambahan proses baru yang siap dieksekusi Proses baru telah ‘diakui’ oleh sistem operasi Proses dipindah dari harddisk ke memori Ready Running: Satu proses terpilih dieksekusi Running Exit: Proses telah selesai atau dibatalkan Running Ready: Proses yang sedang running dipaksa berhenti (preempted) Penyebab: Waktu habis (time out) Datang proses berprioritas lebih tinggi
Perpindahan Status Untuk Proses 5-Status (2) Running Blocked: Proses yang sedang running terpaksa berhenti Penyebab: Sedang menunggu file yang sedang diakses oleh proses lain Sedang menunggu proses di I/O selesai Butuh memori lebih besar Sedang menunggu data hasil eksekusi proses lain Sedang menunggu proses yang akan diajak berkomunikasi tetapi sedang sibuk Blocked Ready: Proses terbebas dari blocked setelah event yang ditunggu telah tersedia
Perpindahan Status Untuk Proses 5-Status (3) Ready Exit: Proses yang siap dieksekusi dipaksa keluar (terminasi) Penyebab: Proses anak yang ‘dibunuh’ oleh proses induk Dihentikan oleh user Blocked Exit: Proses yang terblok diterminasi Penyebab sama dengan penyebab Ready Exit
Eksekusi Proses Dengan Dua Antrian (1) Cara kerja: Proses baru Ready queue Jika tidak ada proses yang running langsung dieksekusi Proses yang sedang running selesai/ter-blok Pilih satu proses di ready queue untuk dieksekusi Jika selesai keluar Jika time out masuk ready queue Jika perlu resource lain masuk blocked queue
Eksekusi Proses Dengan Dua Antrian (2) Apa kelemahan sistem dengan 2 antrian ? Jika proses yang ter-blok sangat banyak dan masing-masing menunggu event yang berbeda-beda Jika datang suatu event, maka OS harus menyeleksi proses yang mana yang sedang membutuhkan event yang datang butuh waktu butuh algoritma lebih rumit Apa kelebihannya ?
Eksekusi Proses Dengan Banyak Antrian (1)
Eksekusi Proses Dengan Banyak Antrian (2) Cara kerja: Sama seperti pada eksekusi proses dengan dua antrian Bedanya untuk setiap event yang berbeda disediakan sebuah antrian tersendiri Kelebihan: Jika suatu event yang ditunggu telah tiba pemilihan proses yang membutuhkan event tersebut lebih mudah dan cepat (algoritmanya lebih sederhana) Pengembangan lebih lanjut: Jika terdapat proses dengan prioritas berbeda untuk setiap prioritas disediakan ready queue masing-masing
Model Proses Dengan 6-Status di harddisk Status yang ditambahkan: suspend state
Mengapa perlu ada suspend state ? (1) Memori telah dipenuhi oleh proses atau bagian proses yang berada pada status blocked akibat sedang menunggu suatu event (I/O, memori, dll), sehingga tidak ada proses yang siap dieksekusi, maka: Semua proses menunggu Prosesor menganggur Semakin lama ukuran program semakin besar, maka: Memori yang dibutuhkan semakin besar Jumlah program yang dapat dieksekusi semakin sedikit
Mengapa perlu ada suspend state ? (2) Tambah memori mahal Lakukan swapping (pindahkan proses yang berada pada status blocked dari memori ke harddisk) Proses berubah status dari blocked menjadi suspend Memori yang kosong bertambah besar: Dapat dimanfaatkan oleh proses yang butuh memori lebih besar, atau Dapat ditambahkan proses baru ke memori, atau Pindahkan proses lain yang ter-suspend dan siap running dari harddisk ke memori
Referensi: [STA09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6th edition. Prentice Hall