Transcript 5-Proses
Proses Oleh : Wahyu Andhyka Kusuma 081233148591 [email protected] 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 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +0 +1 +2 +3 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 Status Proses 1 +0 2 +1 3 +2 4 +3 5 +4 6 +5 ------------- Time out 7 +0 8 +1 9 +2 10 +3 11 +4 12 +5 13 +0 14 +1 15 +2 16 +3 ------------ I/O Request 17 +0 18 +1 19 +2 20 +3 21 +4 22 +5 23 +0 24 +1 25 +2 26 +3 27 +4 28 +5 ------------- Time out 29 +0 30 +1 31 +2 32 +3 33 +4 34 +5 35 +6 36 +7 37 +8 38 +9 39 +10 40 +11 ------------- Time out 41 +0 42 +1 43 +2 44 +3 45 +4 46 +5 47 +6 48 +7 49 +8 50 +9 51 +10 52 +11 Status Proses Time Epoch Proses A Proses B Proses C 1-6 7-12 13-16 17-22 Running Ready Ready Ready Ready Ready Running Waiting Ready Ready Ready Ready 23-28 29-34 35-40 Ready Ready Running Waiting Waiting Waiting Running Ready Ready 41-46 47-52 Ready Ready Waiting Waiting Ready Running 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 New admit Ready dispatch timeout Even terjadi activate release Running Even menunggu Suspend Suspend Blocked Exit New Swapping admit Ready, Suspend Suspend admit Activate Suspend Ready dispatch timeout Even menunggu Blocked, Suspend Even terjadi Suspend release Running Even menunggu Activate Blocked Exit 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 massstorage (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