Proses Oleh : Wahyu Andhyka Kusuma
Definisi Proses proses merupakan program yang sedang dieksekusi program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjutnya yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.
Status Proses Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan aktivitas atau keadaan dari proses itu sendiri
Status Proses Menurut Silberschatz :
Status Proses New(Baru): status yang dimiliki pada saat proses baru saja dibuat. Running(Berjalan): status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi. Waiting(Menunggu): status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses I/O). Ready(Siap): status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor. Terminated(Terminasi): status yang dimiliki pada saat proses telah selesai dieksekusi.
Status Proses Ada tiga kemungkinan bila sebuah proses memiliki status running: Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request I/O) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.
Status Proses +0 +0 +0 +1 +1 +1 +2 +2 +2 +3 +3 +3 +4 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +10 +11 +11
Status Proses 1 +0 2 +1 3 +2 4 +3 5 +4 6 Time out 7 +0 8 +1 9 I/O Request 17 Time out 29 Time out 41 +11
Status Proses Time Epoch Proses A Proses B Proses C 1-6RunningReadyReady 7-12ReadyReadyReady 13-16ReadyRunningReady 17-22ReadyWaitingReady 23-28ReadyWaitingRunning 29-34ReadyWaitingReady 35-40RunningWaitingReady 41-46ReadyWaitingReady 47-52ReadyWaitingRunning
Swapping Aktivitas I/O menjadi lebih lambat daripada komputasi Sistem operasi perlu membebaskan memori utama untuk dapat membawa proses yang siap untuk dieksekusi ke dalamnya Swapping pemindaan sebagian atau seluruh proses dari memori utama ke dalam disk.
Normal NewReady Running Exit BlockedSuspend admit dispatch timeout release Even menunggu Even terjadi Suspend activate
Swapping New Ready Running Exit Blocked Ready, Suspend admit dispatch timeout release Even menunggu Even terjadi Suspend Activate Blocked, Suspend admit Even menunggu Activate Suspend
Process 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
Process Control Block PCB berisikan informasi dari proses sebagai berikut: ▫Proses State : new, ready, waiting, terminated ▫Program Counter : menunjukkan alamat berikutnya yang akan dieksekusi oleh program tersebut ▫CPU Register : Accumulator, Index Register, Stack Pointer, General Purpose Register, Condition Code Information, Bila terjadi Interupt informasi disimpan dan proses dilanjutkan
Process Control Block ▫Informasi Penjadwalan CPU : Berisi prioritas dari proses ▫Informasi Manajamen Memroy : berisi nilai limit dari register ▫Informasi Accounting : Berisi jumlah CPU dan Real Time yang digunakan ▫Informasi I.O : berisi deretan I.O device yang digunakan untuk proses.
Process Control Block Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi. Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini. 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
Process Control Block Switching Process
Process Control Block Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem 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 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.
Penjadwalan Proses Pada lingkungan multiprograming beberapa proses harus dijadwalkan untuk memaksimalkan kinerja CPU Pada lingkungan time-shared, CPU sering di-switch diantara diantara proses dimana user harus berinteraksi untuk setiap program saat dirunning Pada sistem uniproses, tidak pernah terjadi lebih dari satu proses yang dirunning, bila terdapat banyak proses, harus menunggu sampai CPU bebas dan dapat dijadwalkan ulang
Scheduling Queue Secara umum antrian penjadwalan dapat diklasifikasikan menjadi 3: ▫Job Queue : antrian berisi semua proses yang akan masuk sistem ▫Ready Queue : tempat proses dimemori utama yang menunggu dieksekusi ▫Device queue : deretan proses yang menunggu peralatan I.O Setiap antrian disimpan sebagai linkedlist. Header berisi pointer PCB pertama dan terakhir dari List
Ready Queue dan Device Queue
Diagram Antrian Penjadwalan Proses
Scheduler Scheduler dilibatkan untuk memilih proses dari scheduling queue yang berbeda Secara umum terdapat 3 : ▫Long Term Scheduler (Job Scheduler) ▫Short Term Scheduler (CPU Scheduler) ▫Medium Term Scheduler
Long Term Scheduler Proses pada sistem batch di-spool ke mass- storage (disk) Long Term Scheduler digunakan untuk memilih proses dari pool dan menyimpan ke memory Long term Scheduler tidak sering dmengeksekusi, digunakan hanya jika proses meninggalkan sistem
Short Term Scheduler Short term scheduler digunakan untuk memilih diantara proses yang siap dieksekusi dan salah satunya dialokasikan ke CPU Short term scheduler sering digunakan untuk memilih proses baru untuk CPU, broses dieksekusi hanya beberapa milidetik sebelum menunggu I.O Contoh : Jika Short term membutuhkan 10ms untuk memutuskan mengeksekusi 100ms maka 10/100 : 10% CPU digunakan untuk penjadwalan
Medium term scheduler Beberapa OS seperti time-sharing membutuhkan penjadwalan level tambahan yang disebut medium term scheduler
Pembuatan Proses pada Linux, Unix, Windows Penghentian Proses pada Linux, Unix, Windows Alasan Penghentian Proses Cooperating Proses Direct Communication Indirect Communication Buffering